implemented a comprehensive client-side demo mode triggered by a "demo@" username prefix, serving curated fixture data for all app modules
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import '../../../state/app/modules/marianum_dates/bloc/marianum_dates_state.dart';
|
||||
import '../demo_persona.dart';
|
||||
|
||||
/// Demo fixtures for the school calendar — a handful of upcoming events built
|
||||
/// relative to "now" and consistent with the demo persona (class 10b).
|
||||
class DemoMarianumDates {
|
||||
const DemoMarianumDates._();
|
||||
|
||||
static List<MarianumDate> events() {
|
||||
final today = DateTime.now();
|
||||
DateTime at(int offset, [int hour = 0, int minute = 0]) => DateTime(
|
||||
today.year,
|
||||
today.month,
|
||||
today.day,
|
||||
hour,
|
||||
minute,
|
||||
).add(Duration(days: offset));
|
||||
|
||||
return [
|
||||
MarianumDate(
|
||||
uid: 'demo-klausur-mathe',
|
||||
title: 'Klausur Mathematik ${DemoPersona.className}',
|
||||
description: 'Erste Klausur bei Herr Müller. Themen: Analysis.',
|
||||
start: at(4, 9, 45),
|
||||
end: at(4, 11, 15),
|
||||
isAllDay: false,
|
||||
),
|
||||
MarianumDate(
|
||||
uid: 'demo-wandertag',
|
||||
title: 'Wandertag',
|
||||
description: 'Gemeinsamer Ausflug der Jahrgangsstufe 10.',
|
||||
start: at(11),
|
||||
end: at(12),
|
||||
isAllDay: true,
|
||||
),
|
||||
MarianumDate(
|
||||
uid: 'demo-elternsprechtag',
|
||||
title: 'Elternsprechtag',
|
||||
description: 'Anmeldung zu den Gesprächen über das Sekretariat.',
|
||||
start: at(18, 14, 0),
|
||||
end: at(18, 19, 0),
|
||||
isAllDay: false,
|
||||
),
|
||||
MarianumDate(
|
||||
uid: 'demo-zeugniskonferenz',
|
||||
title: 'Zeugniskonferenz',
|
||||
description: 'Unterrichtsfrei ab der 4. Stunde.',
|
||||
start: at(32),
|
||||
end: at(33),
|
||||
isAllDay: true,
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user