owltide/app/schedule/events.ts
Hornwitser 484c27ece2 Minimally functional schedule rendering
Add timetable and event listing based on transforming a simple input
data structure.
2025-02-26 22:53:56 +01:00

109 lines
1.9 KiB
TypeScript

export interface ScheduleEvent {
name: string,
id: string,
host?: string,
cancelled?: boolean,
description?: string,
slots: TimeSlot[],
}
export interface ScheduleLocation {
name: string,
id: string,
description?: string,
}
export interface TimeSlot {
id: string,
start: string,
end: string,
locations: string[],
}
export const locations: ScheduleLocation[] = [
{
name: "House",
id: "house",
description: "Blue building east of the camping",
},
{
name: "Common House",
id: "common-house",
description: "That big red building in the middle",
},
{
name: "Info Desk",
id: "info-desk",
},
{
name: "Camping Fireplace",
id: "camping-fireplace",
},
];
export const events: ScheduleEvent[] = [
{
name: "Arcade",
id: "arcade",
description: "Play retro games!",
slots: [
{
id: "arcade-1",
start: "2025-07-18T10:00Z",
end: "2025-07-19T01:30Z",
locations: ["house"],
},
{
id: "arcade-2",
start: "2025-07-19T10:00Z",
end: "2025-07-20T01:00Z",
locations: ["house"],
},
{
id: "arcade-3",
start: "2025-07-20T10:00Z",
end: "2025-07-20T18:00Z",
locations: ["house"],
},
],
},
{
name: "Bonfire Stories",
description: "Share your stories as we sit cosily around the bonfire.",
id: "bonfire",
slots: [
{
id: "bonfire-1",
start: "2025-07-19T20:00Z",
end: "2025-07-20T01:00Z",
locations: ["camping-fireplace"],
},
],
},
{
name: "Fursuit Games",
description: "Playful time for the suiters.",
id: "fursuit-games",
slots: [
{
id: "fursuit-games-1",
start: "2025-07-19T19:00Z",
end: "2025-07-19T20:00Z",
locations: ["common-house"],
},
],
},
{
name: "Late Stragglers",
description: "Wait a minute, why are you still here?.",
id: "too-late",
slots: [
{
id: "too-late-1",
start: "2025-07-22T20:00Z",
end: "2025-07-23T01:00Z",
locations: ["camping-fireplace"],
},
],
},
];