426 lines
12 KiB
Dart
426 lines
12 KiB
Dart
import '../models/customer.dart';
|
|
import '../models/installed_part.dart';
|
|
import '../models/order.dart';
|
|
import '../models/schedule_item.dart';
|
|
|
|
class MockData {
|
|
static final List<Customer> customers = [
|
|
Customer(
|
|
id: 'cust-1',
|
|
customerNumber: 'K-10025',
|
|
name: 'Max Mustermann',
|
|
street: 'Musterweg 12',
|
|
zipCode: '12345',
|
|
city: 'Musterstadt',
|
|
latitude: 50.1135,
|
|
longitude: 8.6790,
|
|
distanceKm: 2.4,
|
|
phone: '0171 1234567',
|
|
email: 'max.mustermann@email.de',
|
|
notes: 'Schlüsselbox an der Garage',
|
|
firstContactDate: DateTime(2022, 3, 10),
|
|
openOrdersCount: 1,
|
|
lastOrderDate: DateTime(2024, 5, 15),
|
|
installedParts: const [
|
|
InstalledPart(
|
|
id: 'part-1',
|
|
customerId: 'cust-1',
|
|
name: 'Buderus Logamax plus GB172-24',
|
|
category: 'Gas-Brennwertgerät',
|
|
serialNumber: '8374747383',
|
|
quantity: 1,
|
|
),
|
|
InstalledPart(
|
|
id: 'part-2',
|
|
customerId: 'cust-1',
|
|
name: 'Bosch EasyControl CT200',
|
|
category: 'Raumthermostat',
|
|
serialNumber: '1234567890',
|
|
quantity: 1,
|
|
),
|
|
InstalledPart(
|
|
id: 'part-3',
|
|
customerId: 'cust-1',
|
|
name: 'Honeywell Hauswasserfilter FF06',
|
|
category: 'Wasserfilter',
|
|
serialNumber: '9876543210',
|
|
quantity: 1,
|
|
),
|
|
],
|
|
orders: [
|
|
WorkOrder(
|
|
id: 'ord-1',
|
|
customerId: 'cust-1',
|
|
title: 'Wartung Heizungsanlage',
|
|
date: DateTime(2024, 5, 15),
|
|
status: OrderStatus.abgeschlossen,
|
|
),
|
|
WorkOrder(
|
|
id: 'ord-2',
|
|
customerId: 'cust-1',
|
|
title: 'Thermostat Einstellung & Kalibrierung',
|
|
date: DateTime(2026, 8, 2),
|
|
status: OrderStatus.offen,
|
|
),
|
|
],
|
|
),
|
|
Customer(
|
|
id: 'cust-2',
|
|
customerNumber: 'K-10026',
|
|
name: 'Sabine Schulze',
|
|
street: 'Nordring 45',
|
|
zipCode: '12347',
|
|
city: 'Musterstadt',
|
|
latitude: 50.1265,
|
|
longitude: 8.6890,
|
|
distanceKm: 4.1,
|
|
phone: '0160 9876543',
|
|
email: 'sabine.schulze@example.com',
|
|
notes: 'Hund im Garten, bitte vorher anrufen.',
|
|
firstContactDate: DateTime(2021, 11, 4),
|
|
openOrdersCount: 0,
|
|
lastOrderDate: DateTime(2024, 4, 10),
|
|
installedParts: const [
|
|
InstalledPart(
|
|
id: 'part-4',
|
|
customerId: 'cust-2',
|
|
name: 'Viessmann Vitodens 200-W',
|
|
category: 'Gas-Brennwertgerät',
|
|
serialNumber: '7632918401',
|
|
quantity: 1,
|
|
),
|
|
],
|
|
orders: [
|
|
WorkOrder(
|
|
id: 'ord-3',
|
|
customerId: 'cust-2',
|
|
title: 'Jahresinspektion',
|
|
date: DateTime(2024, 4, 10),
|
|
status: OrderStatus.abgeschlossen,
|
|
),
|
|
],
|
|
),
|
|
Customer(
|
|
id: 'cust-3',
|
|
customerNumber: 'K-10027',
|
|
name: 'Bäckerei Hoffmann GmbH',
|
|
street: 'Hauptstraße 88',
|
|
zipCode: '12345',
|
|
city: 'Musterstadt',
|
|
latitude: 50.1080,
|
|
longitude: 8.6650,
|
|
distanceKm: 1.8,
|
|
phone: '069 5551234',
|
|
email: 'info@baeckerei-hoffmann.de',
|
|
notes: 'Zufahrt über den Lieferanteneingang Rückseite.',
|
|
firstContactDate: DateTime(2020, 1, 15),
|
|
openOrdersCount: 2,
|
|
lastOrderDate: DateTime(2024, 6, 01),
|
|
installedParts: const [
|
|
InstalledPart(
|
|
id: 'part-5',
|
|
customerId: 'cust-3',
|
|
name: 'Grundfos Magna3 32-120 F',
|
|
category: 'Heizungsumwälzpumpe',
|
|
serialNumber: '983301920',
|
|
quantity: 2,
|
|
),
|
|
],
|
|
orders: [
|
|
WorkOrder(
|
|
id: 'ord-4',
|
|
customerId: 'cust-3',
|
|
title: 'Austausch Umwälzpumpe',
|
|
date: DateTime(2024, 6, 1),
|
|
status: OrderStatus.abgeschlossen,
|
|
),
|
|
],
|
|
),
|
|
Customer(
|
|
id: 'cust-4',
|
|
customerNumber: 'K-10028',
|
|
name: 'Dr. Michael Weber',
|
|
street: 'Goetheallee 3',
|
|
zipCode: '12349',
|
|
city: 'Musterstadt',
|
|
latitude: 50.0980,
|
|
longitude: 8.6720,
|
|
distanceKm: 3.5,
|
|
phone: '0172 4443322',
|
|
email: 'm.weber@praxis-weber.de',
|
|
notes: 'Termine nur mittwochs nachmittags möglich.',
|
|
firstContactDate: DateTime(2023, 7, 20),
|
|
openOrdersCount: 1,
|
|
lastOrderDate: DateTime(2023, 12, 12),
|
|
installedParts: const [],
|
|
orders: [
|
|
WorkOrder(
|
|
id: 'ord-5',
|
|
customerId: 'cust-4',
|
|
title: 'Installationsprüfbericht',
|
|
date: DateTime(2023, 12, 12),
|
|
status: OrderStatus.abgeschlossen,
|
|
),
|
|
],
|
|
),
|
|
Customer(
|
|
id: 'cust-5',
|
|
customerNumber: 'K-10029',
|
|
name: 'Elena Schmidt',
|
|
street: 'Ostendstraße 102',
|
|
zipCode: '12345',
|
|
city: 'Musterstadt',
|
|
latitude: 50.1110,
|
|
longitude: 8.7020,
|
|
distanceKm: 3.1,
|
|
phone: '0151 7766554',
|
|
email: 'elena.schmidt@gmx.de',
|
|
notes: 'Klingel beschriftet mit "Schmidt / OG 2".',
|
|
firstContactDate: DateTime(2024, 2, 1),
|
|
openOrdersCount: 0,
|
|
lastOrderDate: DateTime(2024, 3, 22),
|
|
installedParts: const [],
|
|
orders: [],
|
|
),
|
|
];
|
|
|
|
// Daily Schedule Items matching Auftragsuebersicht.png Day View
|
|
static final List<ScheduleItem> dayScheduleItems = [
|
|
ScheduleItem(
|
|
id: 'sch-1',
|
|
title: 'Team-Besprechung / Material-Laden',
|
|
startTime: '07:00',
|
|
endTime: '09:00',
|
|
type: ScheduleItemType.routine,
|
|
),
|
|
ScheduleItem(
|
|
id: 'sch-2',
|
|
title: 'Max Mustermann - Heizungswartung',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
taskDescription: 'Wartung Gas-Brennwertgerät',
|
|
startTime: '10:30',
|
|
endTime: '13:00',
|
|
type: ScheduleItemType.job,
|
|
isInProgress: true,
|
|
),
|
|
ScheduleItem(
|
|
id: 'sch-3',
|
|
title: 'Mittagspause',
|
|
startTime: '13:00',
|
|
endTime: '13:30',
|
|
type: ScheduleItemType.lunchBreak,
|
|
),
|
|
ScheduleItem(
|
|
id: 'sch-4',
|
|
title: 'Anja Klein - Thermostat-Tausch',
|
|
customerName: 'Anja Klein',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
taskDescription: 'Wartung Gas-Brennwertgerät',
|
|
startTime: '13:30',
|
|
endTime: '15:00',
|
|
type: ScheduleItemType.job,
|
|
),
|
|
ScheduleItem(
|
|
id: 'sch-5',
|
|
title: 'Bauprojekt Neubau - Sanitär-Rohinstallation',
|
|
customerName: 'Bauprojekt Neubau',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '15:30',
|
|
endTime: '17:00',
|
|
type: ScheduleItemType.job,
|
|
),
|
|
ScheduleItem(
|
|
id: 'sch-6',
|
|
title: 'Feierabend',
|
|
startTime: '18:00',
|
|
endTime: '18:00',
|
|
type: ScheduleItemType.feierabend,
|
|
),
|
|
];
|
|
|
|
// Weekly Matrix Summaries matching Auftragsuebersicht.png Week View
|
|
static final List<DaySummary> weekSummaries = [
|
|
DaySummary(
|
|
dayName: 'Mo',
|
|
fullDayName: 'Montag',
|
|
dateString: '13.05',
|
|
ordersCount: 3,
|
|
hoursTotal: 8.5,
|
|
items: [
|
|
ScheduleItem(
|
|
id: 'w-mo-1',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '08:00',
|
|
endTime: '10:30',
|
|
isCompleted: true,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-mo-2',
|
|
title: 'Sabine Schulze',
|
|
customerName: 'Sabine Schulze',
|
|
address: 'Nordring 45, 12347 Musterstadt',
|
|
startTime: '11:00',
|
|
endTime: '14:00',
|
|
isCompleted: true,
|
|
),
|
|
],
|
|
),
|
|
DaySummary(
|
|
dayName: 'Di',
|
|
fullDayName: 'Dienstag',
|
|
dateString: '14.05',
|
|
ordersCount: 4,
|
|
hoursTotal: 9.0,
|
|
items: [
|
|
ScheduleItem(
|
|
id: 'w-di-1',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '08:00',
|
|
endTime: '10:00',
|
|
isCompleted: false,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-di-2',
|
|
title: 'Anja Klein',
|
|
customerName: 'Anja Klein',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '10:30',
|
|
endTime: '12:30',
|
|
isCompleted: false,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-di-3',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
taskDescription: 'Wartertiter',
|
|
startTime: '13:30',
|
|
endTime: '15:30',
|
|
isCompleted: false,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-di-4',
|
|
title: 'Bauprojekt Neubau - Sanitär-Rohinstallation',
|
|
customerName: 'Bauprojekt Neubau',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
taskDescription: 'Bauprüfer',
|
|
startTime: '16:00',
|
|
endTime: '18:00',
|
|
isCompleted: true,
|
|
),
|
|
],
|
|
),
|
|
DaySummary(
|
|
dayName: 'Mi',
|
|
fullDayName: 'Mittwoch',
|
|
dateString: '15.05',
|
|
ordersCount: 2,
|
|
hoursTotal: 7.5,
|
|
items: [
|
|
ScheduleItem(
|
|
id: 'w-mi-1',
|
|
title: 'Bäckerei Hoffmann GmbH',
|
|
customerName: 'Bäckerei Hoffmann GmbH',
|
|
address: 'Hauptstraße 88, 12345 Musterstadt',
|
|
startTime: '08:00',
|
|
endTime: '12:00',
|
|
isCompleted: true,
|
|
),
|
|
],
|
|
),
|
|
DaySummary(
|
|
dayName: 'Do',
|
|
fullDayName: 'Donnerstag',
|
|
dateString: '16.05',
|
|
ordersCount: 2,
|
|
hoursTotal: 7.5,
|
|
items: [
|
|
ScheduleItem(
|
|
id: 'w-do-1',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '09:00',
|
|
endTime: '12:00',
|
|
isCompleted: false,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-do-2',
|
|
title: 'Anja Klein',
|
|
customerName: 'Anja Klein',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '13:30',
|
|
endTime: '16:00',
|
|
isCompleted: false,
|
|
),
|
|
],
|
|
),
|
|
DaySummary(
|
|
dayName: 'Fr',
|
|
fullDayName: 'Freitag',
|
|
dateString: '17.05',
|
|
ordersCount: 5,
|
|
hoursTotal: 9.5,
|
|
items: [
|
|
ScheduleItem(
|
|
id: 'w-fr-1',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '08:00',
|
|
endTime: '10:00',
|
|
isCompleted: true,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-fr-2',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '10:15',
|
|
endTime: '12:00',
|
|
isCompleted: false,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-fr-3',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '13:00',
|
|
endTime: '15:00',
|
|
isCompleted: false,
|
|
),
|
|
ScheduleItem(
|
|
id: 'w-fr-4',
|
|
title: 'Max Mustermann',
|
|
customerName: 'Max Mustermann',
|
|
address: 'Musterweg 12, 12345 Musterstadt',
|
|
startTime: '15:30',
|
|
endTime: '17:30',
|
|
isCompleted: true,
|
|
),
|
|
],
|
|
),
|
|
DaySummary(
|
|
dayName: 'Sa',
|
|
fullDayName: 'Samstag',
|
|
dateString: '18.05',
|
|
ordersCount: 3,
|
|
hoursTotal: 8.0,
|
|
items: [],
|
|
),
|
|
DaySummary(
|
|
dayName: 'So',
|
|
fullDayName: 'Sonntag',
|
|
dateString: '19.05',
|
|
ordersCount: 3,
|
|
hoursTotal: 8.0,
|
|
items: [],
|
|
),
|
|
];
|
|
}
|