//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format.
//Copyright (C) 2024 HTWKalender support@htwkalender.de

//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU Affero General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.

//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU Affero General Public License for more details.

//You should have received a copy of the GNU Affero General Public License
//along with this program.  If not, see <https://www.gnu.org/licenses/>.

package model

import "time"

// MODELS

// SportEntry represents the overall event details.
type SportEntry struct {
	Title          string
	Details        EventDetails
	AdditionalNote string
	ID             string
}

// EventDetails represents detailed information about the event.
type EventDetails struct {
	DateRange    DateRange
	Cycle        string
	Gender       string
	CourseLead   CourseLead
	Location     Location
	Participants Participants
	Cost         string
	Type         string
}

// DateRange represents a start and end date.
type DateRange struct {
	Start time.Time
	End   time.Time
}

// CourseLead represents a person with a name and a contact link.
type CourseLead struct {
	Name string
	Link string
}

// Location represents the location of the event.
type Location struct {
	Name    string
	Address string
}

// Participants represents the participants' details.
type Participants struct {
	Bookings    int
	TotalPlaces int
	WaitList    int
}

type SportDayStartEnd struct {
	Start time.Time
	End   time.Time
	Day   time.Weekday
}
