204 lines
13 KiB
JavaScript
204 lines
13 KiB
JavaScript
/** Handgeschriebene Demo-Daten (vormals src/data/seed.ts).
|
||
*
|
||
* units + transactions kommen maschinell aus seed/generated.json
|
||
* (beispieldaten.py). Verwaltungs-E-Mails sind bewusst echte, zustellbare
|
||
* Postfächer (joseph@hinterstein-immo.de, axel@hocks.eu), damit
|
||
* Benachrichtigungen ankommen; im Portal änderbar (Benutzerverwaltung).
|
||
*/
|
||
|
||
const DEMO_HASH = 'c57a5df4f97ed6914116e5fd1348406064834f22503d890eb571af442ac4b4c3' // sha256("0815")
|
||
|
||
const users = [
|
||
{
|
||
id: 'b-joseph',
|
||
benutzername: 'j.hinterstein',
|
||
name: 'Joseph Hinterstein',
|
||
passwort_hash: DEMO_HASH,
|
||
rolle: 'verwaltung',
|
||
email: 'joseph@hinterstein-immo.de',
|
||
einheit_id: null,
|
||
aktiv: true,
|
||
erstellt_am: '01.03.2024',
|
||
},
|
||
{
|
||
id: 'b-axel',
|
||
benutzername: 'a.hocks',
|
||
name: 'Axel Hocks',
|
||
passwort_hash: DEMO_HASH,
|
||
rolle: 'verwaltung',
|
||
email: 'axel@hocks.eu',
|
||
einheit_id: null,
|
||
aktiv: true,
|
||
erstellt_am: '01.03.2024',
|
||
},
|
||
{
|
||
id: 'b-anna',
|
||
benutzername: 'a.berger',
|
||
name: 'Anna Berger',
|
||
passwort_hash: DEMO_HASH,
|
||
rolle: 'mieter',
|
||
email: 'anna.berger@example.de',
|
||
einheit_id: 'hs-7',
|
||
aktiv: true,
|
||
erstellt_am: '01.03.2024',
|
||
letzter_login: '02.10.2026, 09:12',
|
||
},
|
||
{
|
||
id: 'b-jonas',
|
||
benutzername: 'm.wolf',
|
||
name: 'Jonas Klein',
|
||
passwort_hash: DEMO_HASH,
|
||
rolle: 'mieter',
|
||
email: 'jonas.klein@example.de',
|
||
einheit_id: 'rw-4',
|
||
aktiv: true,
|
||
erstellt_am: '15.08.2025',
|
||
},
|
||
]
|
||
|
||
const registrationCodes = [
|
||
{ code: 'MP-2026-0815', einheit_id: 'ap-2', erstellt_am: '02.10.2026', verwendet_am: null },
|
||
]
|
||
|
||
const tickets = [
|
||
{
|
||
id: 't-1', unit_id: 'hs-7', tenant: 'Anna Berger',
|
||
title: 'Wasserhahn im Bad tropft',
|
||
description: 'Der Wasserhahn am Waschbecken tropft seit einigen Tagen permanent, auch bei ganz zugedrehtem Ventil.',
|
||
category: 'Sanitär', priority: 'mittel', status: 'in Bearbeitung', created_at: '28.09.2026',
|
||
},
|
||
{
|
||
id: 't-2', unit_id: 'hs-7', tenant: 'Anna Berger',
|
||
title: 'Briefkastenschlüssel defekt',
|
||
description: 'Der Schlüssel für den Briefkasten lässt sich nicht mehr drehen, vermutlich Schloss verklebt.',
|
||
category: 'Schlüssel', priority: 'niedrig', status: 'offen', created_at: '30.09.2026',
|
||
},
|
||
{
|
||
id: 't-3', unit_id: 'rw-4', tenant: 'Jonas Klein',
|
||
title: 'Heizkörper wird nicht warm',
|
||
description: 'Der Heizkörper im Wohnzimmer bleibt kalt, obwohl das Thermostat voll aufgedreht ist.',
|
||
category: 'Heizung', priority: 'hoch', status: 'offen', created_at: '01.10.2026',
|
||
},
|
||
{
|
||
id: 't-4', unit_id: 'ap-2', tenant: 'Anja Roth',
|
||
title: 'Rollladen im Schlafzimmer klemmt',
|
||
description: 'Der elektrische Rollladen fährt nur noch zur Hälfte hoch.',
|
||
category: 'Fenster / Rollladen', priority: 'mittel', status: 'in Bearbeitung', created_at: '25.09.2026',
|
||
},
|
||
{
|
||
id: 't-5', unit_id: 'hs-14', tenant: 'Markus Lange',
|
||
title: 'Flurbeleuchtung im Treppenhaus defekt',
|
||
description: 'Im 3. OG ist die Bewegungsmelder-Leuchte ausgefallen.',
|
||
category: 'Elektrik', priority: 'hoch', status: 'erledigt', created_at: '18.09.2026',
|
||
},
|
||
{
|
||
id: 't-6', unit_id: 'rw-9', tenant: 'Sandra Weiß',
|
||
title: 'Schimmel im Bad – Lüftungsproblem?',
|
||
description: 'In der Fensterfalz des Bades sammelt sich Kondenswasser, bitte um Prüfung der Lüftung.',
|
||
category: 'Sanitär', priority: 'hoch', status: 'in Bearbeitung', created_at: '22.09.2026',
|
||
},
|
||
{
|
||
id: 't-7', unit_id: 'ap-11', tenant: 'Thomas Neumann',
|
||
title: 'Markise auf dem Balkon lose',
|
||
description: 'Die Befestigung der Markise wackelt bei Wind deutlich.',
|
||
category: 'Balkon / Außenanlage', priority: 'hoch', status: 'offen', created_at: '29.09.2026',
|
||
},
|
||
{
|
||
id: 't-8', unit_id: 'hs-3', tenant: 'Petra Hoffmann',
|
||
title: 'Spülmaschinen-Anschluss undicht',
|
||
description: 'Unter der Spüle steht Wasser, vermutlich kommt es vom Geräteanschluss.',
|
||
category: 'Sanitär', priority: 'mittel', status: 'erledigt', created_at: '10.09.2026',
|
||
},
|
||
]
|
||
|
||
// Mieter-Namen für tickets der fremden Wohnungen stammen aus generated.json;
|
||
// seed.js ersetzt leere/Platzhalter-Namen beim Einfügen aus der units-Tabelle.
|
||
|
||
const documents = [
|
||
{ id: 'd-1', unit_id: 'hs-7', title: 'Mietvertrag Anna Berger – Hauptstraße 12, Whg. 7', category: 'Mietvertrag', size: '1,8 MB', date: '01.03.2024' },
|
||
{ id: 'd-2', unit_id: 'hs-7', title: 'Nebenkostenabrechnung 2025', category: 'Nebenkostenabrechnung', size: '640 KB', date: '31.05.2026' },
|
||
{ id: 'd-3', unit_id: 'hs-7', title: 'Heizkostenabrechnung 2025', category: 'Nebenkostenabrechnung', size: '410 KB', date: '31.05.2026' },
|
||
{ id: 'd-4', unit_id: null, title: 'Hausordnung – gültige Fassung 2026', category: 'Hausordnung', size: '220 KB', date: '01.01.2026' },
|
||
{ id: 'd-5', unit_id: null, title: 'Protokoll Hausversammlung 14.06.2026', category: 'Protokoll', size: '350 KB', date: '14.06.2026' },
|
||
{ id: 'd-6', unit_id: null, title: 'Mülltonnen-Belegungsplan & Abfuhrtermine 2026', category: 'Sonstiges', size: '180 KB', date: '02.01.2026' },
|
||
{ id: 'd-7', unit_id: 'rw-4', title: 'Mietvertrag – Ringweg 3, Whg. 4', category: 'Mietvertrag', size: '1,6 MB', date: '15.08.2025' },
|
||
{ id: 'd-8', unit_id: 'ap-2', title: 'Mietvertrag – Am Park 5, Whg. 2', category: 'Mietvertrag', size: '1,7 MB', date: '01.06.2024' },
|
||
]
|
||
|
||
const threads = [
|
||
{
|
||
id: 'm-1', unit_id: 'hs-7', tenant: 'Anna Berger',
|
||
subject: 'Mietkaution – Rückzahlungsnachweis',
|
||
unread_by_admin: false, unread_by_tenant: true,
|
||
messages: [
|
||
{ id: 'm-1-a', from_role: 'tenant', author: 'Anna Berger', text: 'Guten Tag, könnten Sie mir bitte den aktuellen Stand meiner Mietkaution mit Nachweis der Verzinsung zusenden?', at: '27.09.2026, 10:12' },
|
||
{ id: 'm-1-b', from_role: 'admin', author: 'Joseph Hinterstein', text: 'Guten Tag Frau Berger, die Kaution wurde mit 1.500,00 € auf dem Treuhandkonto verbucht. Die Verzinsung für 2025 beträgt 18,40 € – den Nachweis finden Sie ab sofort auch unter Dokumente.', at: '29.09.2026, 09:03' },
|
||
],
|
||
},
|
||
{
|
||
id: 'm-2', unit_id: 'rw-9', tenant: 'Sandra Weiß',
|
||
subject: 'Terminabstimmung Wohnungsbegehung (Schimmel)',
|
||
unread_by_admin: true, unread_by_tenant: false,
|
||
messages: [
|
||
{ id: 'm-2-a', from_role: 'tenant', author: 'Sandra Weiß', text: 'Aufgrund der Schadensmeldung schlage ich einen Begehungstermin nächste Woche vor. Passt Mittwoch oder Freitag Nachmittag?', at: '01.10.2026, 08:45' },
|
||
],
|
||
},
|
||
]
|
||
|
||
const announcements = [
|
||
{ id: 'a-1', title: 'Wasserabschaltung Hauptstraße 12', text: 'Am Donnerstag, 08.10.2026, 09:00–13:00 Uhr findet eine Druckerhöhungs-Pumpen-Wartung statt. In dieser Zeit steht kein Wasser zur Verfügung.', date: '02.10.2026', tag: 'Technik' },
|
||
{ id: 'a-2', title: 'Herbst-Hausbegehung mit Hausmeister', text: 'Am Samstag, 17.10.2026, 10:00 Uhr geht es gemeinsam durch alle Häuser. Anschließend gibt es Kaffee im Hof von Am Park 5.', date: '28.09.2026', tag: 'Termin' },
|
||
{ id: 'a-3', title: 'Tiefgarage Ringweg 3: Reinigung', text: 'Die Tiefgarage wird am 21.10.2026 gereinigt. Bitte Fahrzeuge bis 07:30 Uhr entfernen, sonst erfolgt ein kostenpflichtiges Versetzen.', date: '20.09.2026', tag: 'Hinweis' },
|
||
{ id: 'a-4', title: 'Nebenkostenabrechnungen 2025 versandt', text: 'Alle Abrechnungen liegen digital im Dokumentenbereich vor. Nachzahlungen sind bis 31.10.2026 überwiesen.', date: '31.05.2026', tag: 'Abrechnung' },
|
||
]
|
||
|
||
const meters = [
|
||
// Hauptstraße 12 (hs) – Wohnung hs-7 (Anna Berger)
|
||
{ id: 'z-1', unit_id: 'hs-7', building: 'Hauptstraße 12', nummer: 'ST-0815-4711', art: 'Strom', stand: 48231.4, stand_am: '01.09.2026', geaendert_am: '01.09.2026, 10:15' },
|
||
{ id: 'z-2', unit_id: 'hs-7', building: 'Hauptstraße 12', nummer: 'WA-0815-1024', art: 'Wasser', stand: 903.812, stand_am: '01.09.2026', geaendert_am: '01.09.2026, 10:16' },
|
||
{ id: 'z-3', unit_id: 'hs-7', building: 'Hauptstraße 12', nummer: 'GA-0815-3387', art: 'Gas', stand: 22114.9, stand_am: '01.09.2026', geaendert_am: '01.09.2026, 10:17' },
|
||
// Ringweg 3 (rw) – Wohnung rw-4 (Jonas Klein)
|
||
{ id: 'z-4', unit_id: 'rw-4', building: 'Ringweg 3', nummer: 'ST-2201-8842', art: 'Strom', stand: 31877.2, stand_am: '15.09.2026', geaendert_am: '15.09.2026, 09:40' },
|
||
{ id: 'z-5', unit_id: 'rw-4', building: 'Ringweg 3', nummer: 'WA-2201-5518', art: 'Wasser', stand: 412.095, stand_am: '15.09.2026', geaendert_am: '15.09.2026, 09:41' },
|
||
// Am Park 5 (ap) – Wohnung ap-2
|
||
{ id: 'z-6', unit_id: 'ap-2', building: 'Am Park 5', nummer: 'ST-3307-2210', art: 'Strom', stand: 15002.7, stand_am: '20.09.2026', geaendert_am: '20.09.2026, 14:05' },
|
||
{ id: 'z-7', unit_id: 'ap-2', building: 'Am Park 5', nummer: 'GA-3307-0904', art: 'Gas', stand: 9812.55, stand_am: '20.09.2026', geaendert_am: '20.09.2026, 14:06' },
|
||
// Haus-/Allgemeinzähler ohne Wohnungsbezug
|
||
{ id: 'z-8', unit_id: null, building: 'Hauptstraße 12', nummer: 'WA-HAUS-0001', art: 'Wasser', stand: 12044.6, stand_am: '01.09.2026', geaendert_am: '01.09.2026, 10:20' },
|
||
{ id: 'z-9', unit_id: null, building: 'Ringweg 3', nummer: 'ST-HAUS-0007', art: 'Strom', stand: 88420.3, stand_am: '15.09.2026', geaendert_am: '15.09.2026, 09:45' },
|
||
]
|
||
|
||
const buildings = [
|
||
{ name: 'Hauptstraße 12', adresse: 'Hauptstraße 12', baujahr: 1968, stockwerke: 4, etagenhoehe: 2.65, wohneinheiten: 20, quadratmeter: 1570.0 },
|
||
{ name: 'Ringweg 3', adresse: 'Ringweg 3', baujahr: 1955, stockwerke: 3, etagenhoehe: 2.80, wohneinheiten: 15, quadratmeter: 1110.0 },
|
||
{ name: 'Am Park 5', adresse: 'Am Park 5', baujahr: 2019, stockwerke: 3, etagenhoehe: 2.60, wohneinheiten: 15, quadratmeter: 1110.0 },
|
||
]
|
||
|
||
// Steuermodul: umlegbare und nicht umlegbare Kosten (Demo 2025/2026).
|
||
// unit_id null = hausweite Position, sonst Kosten der konkreten Wohnung.
|
||
const kosten = [
|
||
// Hauptstraße 12 – hausweit
|
||
{ id: 'k-1', building: 'Hauptstraße 12', unit_id: null, jahr: 2025, kostenart: 'Wasser/Abwasser', betrag: 4860.00, umlegbar: true, notiz: 'Verbrauch abrechnungsreif nach Zählern', erfasst_am: '15.01.2026, 09:00' },
|
||
{ id: 'k-2', building: 'Hauptstraße 12', unit_id: null, jahr: 2025, kostenart: 'Müllabfuhr', betrag: 2210.40, umlegbar: true, notiz: 'Stadtwerke, 4-Behälter-Service', erfasst_am: '15.01.2026, 09:02' },
|
||
{ id: 'k-3', building: 'Hauptstraße 12', unit_id: null, jahr: 2025, kostenart: 'Hausreinigung', betrag: 3944.00, umlegbar: true, notiz: 'Treppenhaus wöchentlich', erfasst_am: '15.01.2026, 09:03' },
|
||
{ id: 'k-4', building: 'Hauptstraße 12', unit_id: null, jahr: 2025, kostenart: 'Versicherung', betrag: 1872.00, umlegbar: true, notiz: 'Haus- und Grundbesitzerhaftpflicht', erfasst_am: '15.01.2026, 09:04' },
|
||
{ id: 'k-5', building: 'Hauptstraße 12', unit_id: null, jahr: 2025, kostenart: 'Instandhaltung', betrag: 7380.00, umlegbar: false, notiz: 'Fassadensanierung Südseite (Verrechnung über Rücklage)', erfasst_am: '20.01.2026, 11:30' },
|
||
{ id: 'k-6', building: 'Hauptstraße 12', unit_id: null, jahr: 2025, kostenart: 'Verwaltung', betrag: 5400.00, umlegbar: false, notiz: 'Anteilige Verwaltungskosten (nicht umlegbarer Teil)', erfasst_am: '20.01.2026, 11:31' },
|
||
// Hauptstraße 12 – Wohnung hs-7 (Anna Berger)
|
||
{ id: 'k-7', building: 'Hauptstraße 12', unit_id: 'hs-7', jahr: 2025, kostenart: 'Heizung/Warmwasser', betrag: 912.55, umlegbar: true, notiz: 'Verbrauch 2025 laut Heizkostenrechnung', erfasst_am: '22.01.2026, 14:10' },
|
||
// Ringweg 3 – hausweit
|
||
{ id: 'k-8', building: 'Ringweg 3', unit_id: null, jahr: 2025, kostenart: 'Straßenreinigung/Winterdienst', betrag: 1284.00, umlegbar: true, notiz: '', erfasst_am: '16.01.2026, 10:00' },
|
||
{ id: 'k-9', building: 'Ringweg 3', unit_id: null, jahr: 2025, kostenart: 'Gartenpflege', betrag: 2160.00, umlegbar: true, notiz: 'Hof- und Vorgartenpflege April–Oktober', erfasst_am: '16.01.2026, 10:01' },
|
||
{ id: 'k-10', building: 'Ringweg 3', unit_id: null, jahr: 2025, kostenart: 'Grundsteuer', betrag: 1490.00, umlegbar: true, notiz: '', erfasst_am: '16.01.2026, 10:02' },
|
||
{ id: 'k-11', building: 'Ringweg 3', unit_id: null, jahr: 2025, kostenart: 'Mietausfall', betrag: 2310.00, umlegbar: false, notiz: 'Leerstand Whg. 9 (März–Juli)', erfasst_am: '21.01.2026, 08:45' },
|
||
// Ringweg 3 – Wohnung rw-4
|
||
{ id: 'k-12', building: 'Ringweg 3', unit_id: 'rw-4', jahr: 2025, kostenart: 'Heizung/Warmwasser', betrag: 764.20, umlegbar: true, notiz: '', erfasst_am: '22.01.2026, 14:12' },
|
||
// Am Park 5 – hausweit
|
||
{ id: 'k-13', building: 'Am Park 5', unit_id: null, jahr: 2026, kostenart: 'Aufzug', betrag: 1980.00, umlegbar: true, notiz: 'Wartung + TÜV, vierteljährlich', erfasst_am: '03.10.2026, 09:20' },
|
||
{ id: 'k-14', building: 'Am Park 5', unit_id: null, jahr: 2026, kostenart: 'Kabelanschluss', betrag: 960.00, umlegbar: true, notiz: 'Hausvertrag Kabelnetz', erfasst_am: '03.10.2026, 09:21' },
|
||
{ id: 'k-15', building: 'Am Park 5', unit_id: null, jahr: 2026, kostenart: 'Instandhaltung', betrag: 3150.00, umlegbar: false, notiz: 'Garagentor-Antrieb erneuert', erfasst_am: '03.10.2026, 09:22' },
|
||
{ id: 'k-16', building: 'Am Park 5', unit_id: 'ap-2', jahr: 2026, kostenart: 'Heizung/Warmwasser', betrag: 388.10, umlegbar: true, notiz: 'Abschlag 1. Halbjahr', erfasst_am: '03.10.2026, 09:25' },
|
||
]
|
||
|
||
module.exports = { users, registrationCodes, tickets, documents, threads, announcements, meters, buildings, kosten }
|