// data.jsx — Seed data for ImmoBot prototype
// German real estate listings (Kauf + Miete), AI evaluations, searches, notifications

// ─── Helpers ────────────────────────────────────────────────────────────
const fmtPrice = (n) => n.toLocaleString('de-DE') + ' €';
const fmtPriceShort = (n) => n >= 1000 ? (n/1000).toFixed(0).replace('.', ',') + 'k €' : n + ' €';
const fmtArea = (n) => n.toLocaleString('de-DE') + ' m²';
const fmtDate = (d) => {
  const dt = d instanceof Date ? d : new Date(d);
  return dt.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' });
};
const fmtDateTime = (d) => {
  const dt = d instanceof Date ? d : new Date(d);
  return dt.toLocaleDateString('de-DE') + ', ' + dt.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' });
};
const fmtRelative = (d) => {
  const diff = (Date.now() - new Date(d).getTime()) / 1000;
  if (diff < 60) return 'gerade eben';
  if (diff < 3600) return `vor ${Math.floor(diff/60)} Min.`;
  if (diff < 86400) return `vor ${Math.floor(diff/3600)} Std.`;
  if (diff < 604800) return `vor ${Math.floor(diff/86400)} Tagen`;
  return fmtDate(d);
};

// ─── Listings ───────────────────────────────────────────────────────────
// Real Unsplash photo URLs (apartments, German cities, interiors)
const photoSets = {
  altbau: [
    'https://images.unsplash.com/photo-1505873242700-f289a29e1e0f?w=1200&q=80',
    'https://images.unsplash.com/photo-1493809842364-78817add7ffb?w=1200&q=80',
    'https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=1200&q=80',
    'https://images.unsplash.com/photo-1560448204-e02f11c3d0e2?w=1200&q=80',
  ],
  modern: [
    'https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1200&q=80',
    'https://images.unsplash.com/photo-1560448204-603b3fc33ddc?w=1200&q=80',
    'https://images.unsplash.com/photo-1484154218962-a197022b5858?w=1200&q=80',
    'https://images.unsplash.com/photo-1565183997392-2f6f122e5912?w=1200&q=80',
  ],
  loft: [
    'https://images.unsplash.com/photo-1522708323590-d24dbb6b0267?w=1200&q=80',
    'https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=1200&q=80',
    'https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?w=1200&q=80',
    'https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?w=1200&q=80',
  ],
  cozy: [
    'https://images.unsplash.com/photo-1493809842364-78817add7ffb?w=1200&q=80',
    'https://images.unsplash.com/photo-1554995207-c18c203602cb?w=1200&q=80',
    'https://images.unsplash.com/photo-1502005229762-cf1b2da7c5d6?w=1200&q=80',
    'https://images.unsplash.com/photo-1493809842364-78817add7ffb?w=1200&q=80',
  ],
  villa: [
    'https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=1200&q=80',
    'https://images.unsplash.com/photo-1613977257363-707ba9348227?w=1200&q=80',
    'https://images.unsplash.com/photo-1580587771525-78b9dba3b914?w=1200&q=80',
    'https://images.unsplash.com/photo-1600596542815-ffad4c1539a9?w=1200&q=80',
  ],
  cityview: [
    'https://images.unsplash.com/photo-1480714378408-67cf0d13bc1b?w=1200&q=80',
    'https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1200&q=80',
    'https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?w=1200&q=80',
    'https://images.unsplash.com/photo-1600210491892-03d54c0aaf87?w=1200&q=80',
  ],
};

const LISTINGS = [
  {
    id: 'l1',
    title: 'Charmante Altbau-Wohnung mit Stuckdecken',
    price: 489000, area: 87, rooms: 3, floor: '2. OG', baujahr: 1908,
    city: 'Berlin', district: 'Prenzlauer Berg', plz: '10405',
    address: 'Knaackstraße 47',
    platform: 'immoscout24',
    type: 'kauf',
    photos: photoSets.altbau,
    nebenkosten: 285, kaltmiete: null,
    provisionsfrei: true,
    energieklasse: 'D',
    description: 'Wunderschöne Altbauwohnung im Herzen von Prenzlauer Berg. Hohe Decken (3,20 m), originaler Dielenboden, Stuckverzierungen erhalten. Helle Räume nach Süd-West, ruhiger Innenhof. Bad mit Wanne und Fenster. Einbauküche neuwertig. Sanierter Altbau, gepflegtes Treppenhaus mit Aufzug. Wohnberechtigungsschein nicht erforderlich.',
    features: ['Altbau', 'Stuckdecken', 'Dielenboden', 'Balkon', 'Aufzug', 'EBK'],
    sourceUrl: 'https://immobilienscout24.de/listing/123456',
    sharedToken: 'a7f3e9',
    posted: '2026-05-11T08:30:00',
    aiScore: 87,
  },
  {
    id: 'l2',
    title: 'Sonnige 4-Zimmer-Whg., Erstbezug nach Sanierung',
    price: 645000, area: 112, rooms: 4, floor: '4. OG', baujahr: 1976,
    city: 'München', district: 'Sendling-Westpark', plz: '81377',
    address: 'Plinganserstraße 22',
    platform: 'immoscout24',
    type: 'kauf',
    photos: photoSets.modern,
    nebenkosten: 340, kaltmiete: null,
    provisionsfrei: false,
    energieklasse: 'B',
    description: 'Komplett kernsanierte Wohnung mit großzügigem Grundriss. Neue Fußbodenheizung, dreifachverglaste Fenster, Tageslichtbad. Großer Westbalkon mit Blick ins Grüne. Tiefgaragenstellplatz inkl. Provision: 3,57% inkl. MwSt.',
    features: ['Saniert', 'Fußbodenheizung', 'Balkon', 'TG-Stellplatz', 'Aufzug'],
    sourceUrl: 'https://immobilienscout24.de/listing/234567',
    sharedToken: 'b2c4f1',
    posted: '2026-05-10T14:12:00',
    aiScore: 71,
  },
  {
    id: 'l3',
    title: 'Loft-Wohnung in alter Schokoladenfabrik',
    price: 539000, area: 94, rooms: 2.5, floor: '3. OG', baujahr: 1925,
    city: 'Hamburg', district: 'Ottensen', plz: '22765',
    address: 'Bahrenfelder Straße 305',
    platform: 'kleinanzeigen',
    type: 'kauf',
    photos: photoSets.loft,
    nebenkosten: 310, kaltmiete: null,
    provisionsfrei: true,
    energieklasse: 'C',
    description: 'Außergewöhnliche Loftwohnung in denkmalgeschützter ehemaliger Schokoladenfabrik. 4 m Deckenhöhe, Industriefenster, Sichtbeton kombiniert mit warmem Holz. Offener Wohn-/Essbereich (62 m²), separates Schlafzimmer mit Galerie. Designerbad. Lastenaufzug.',
    features: ['Loft', 'Denkmalschutz', 'Hohe Decken', 'Industrieflair', 'Galerie'],
    sourceUrl: 'https://kleinanzeigen.de/s-anzeige/345678',
    sharedToken: 'c8d1e5',
    posted: '2026-05-12T11:45:00',
    aiScore: 92,
  },
  {
    id: 'l4',
    title: 'Gemütliche 2-Zimmer-Wohnung in Friedrichshain',
    price: 329000, area: 58, rooms: 2, floor: '1. OG', baujahr: 1898,
    city: 'Berlin', district: 'Friedrichshain', plz: '10245',
    address: 'Wühlischstraße 14',
    platform: 'kleinanzeigen',
    type: 'kauf',
    photos: photoSets.cozy,
    nebenkosten: 195,
    provisionsfrei: true,
    energieklasse: 'E',
    description: 'Charmante kleine Wohnung mit viel Potenzial. Bezugsfrei. Original Holzdielen, Kachelofen funktionstüchtig, Bad neu gefliest. Ruhige Seitenstraße, dennoch zentral.',
    features: ['Altbau', 'Kachelofen', 'Holzdielen', 'Bezugsfrei'],
    sourceUrl: 'https://kleinanzeigen.de/s-anzeige/456789',
    sharedToken: 'd5f9a2',
    posted: '2026-05-09T16:20:00',
    aiScore: 79,
  },
  {
    id: 'l5',
    title: 'Penthouse mit Panoramablick auf den Main',
    price: 1290000, area: 156, rooms: 4, floor: '8. OG', baujahr: 2019,
    city: 'Frankfurt am Main', district: 'Westend-Süd', plz: '60325',
    address: 'Beethovenstraße 64',
    platform: 'immoscout24',
    type: 'kauf',
    photos: photoSets.cityview,
    nebenkosten: 580,
    provisionsfrei: false,
    energieklasse: 'A',
    description: 'Exklusives Penthouse mit umlaufender Dachterrasse (84 m²) und atemberaubendem Skyline-Blick. Smart-Home, KNX, Klimaanlage, elektrische Außenrollläden. 2 TG-Plätze inkl. Concierge-Service.',
    features: ['Penthouse', 'Dachterrasse', 'Skyline-Blick', 'Smart Home', 'Concierge'],
    sourceUrl: 'https://immobilienscout24.de/listing/567890',
    sharedToken: 'e3b7c4',
    posted: '2026-05-08T09:00:00',
    aiScore: 64,
  },
  {
    id: 'l6',
    title: 'Solides Mehrfamilienhaus, vollvermietet, 5,2% Rendite',
    price: 895000, area: 312, rooms: 9, floor: '—', baujahr: 1962,
    city: 'Leipzig', district: 'Lindenau', plz: '04177',
    address: 'Karl-Heine-Straße 89',
    platform: 'kleinanzeigen',
    type: 'kauf',
    photos: photoSets.altbau,
    nebenkosten: null,
    provisionsfrei: true,
    energieklasse: 'D',
    description: '6-Parteien-Haus, alle Einheiten saniert, langfristige Mietverträge. Jahres-Kaltmiete: 46.560 €. Neues Dach 2021, Heizung 2019. Stellplätze im Hof.',
    features: ['Mehrfamilienhaus', '6 Einheiten', 'Vollvermietet', 'Saniert'],
    sourceUrl: 'https://kleinanzeigen.de/s-anzeige/678901',
    sharedToken: 'f1d8e6',
    posted: '2026-05-07T13:45:00',
    aiScore: 84,
  },
  {
    id: 'l7',
    title: 'Reihenmittelhaus mit Garten in Stadtnähe',
    price: 575000, area: 142, rooms: 5, floor: '—', baujahr: 1989,
    city: 'Köln', district: 'Sülz', plz: '50937',
    address: 'Berrenrather Straße 218',
    platform: 'immoscout24',
    type: 'kauf',
    photos: photoSets.villa,
    nebenkosten: 220,
    provisionsfrei: false,
    energieklasse: 'D',
    description: 'Gepflegtes Reihenhaus, 3 Etagen, ausgebauter Keller. Süd-Garten 95 m², Carport. Familienfreundliche Lage, Schule und KiTa fußläufig. Modernisiert 2018.',
    features: ['Reihenhaus', 'Garten', 'Carport', 'Keller'],
    sourceUrl: 'https://immobilienscout24.de/listing/789012',
    sharedToken: 'g9c2b3',
    posted: '2026-05-06T10:15:00',
    aiScore: 76,
  },
  {
    id: 'l8',
    title: 'Stilvolle 3-Zi.-Whg., Jugendstil, Eichendielen',
    price: 410000, area: 95, rooms: 3, floor: 'Hochpartere', baujahr: 1903,
    city: 'Dresden', district: 'Äußere Neustadt', plz: '01099',
    address: 'Alaunstraße 75',
    platform: 'kleinanzeigen',
    type: 'kauf',
    photos: photoSets.altbau,
    nebenkosten: 240,
    provisionsfrei: true,
    energieklasse: 'C',
    description: 'Wunderschöne Jugendstilwohnung, liebevoll restauriert. Originale Eichendielen, Flügeltüren, hohe Decken. Bad mit Tageslicht. Innenhofbalkon. Bezugsfrei zum 01.07.2026.',
    features: ['Jugendstil', 'Eichendielen', 'Flügeltüren', 'Balkon'],
    sourceUrl: 'https://kleinanzeigen.de/s-anzeige/890123',
    sharedToken: 'h4a6f7',
    posted: '2026-05-05T15:50:00',
    aiScore: 88,
  },
  // — Mietangebote (rentals, no AI score) —
  {
    id: 'r1',
    title: '2-Zi.-Whg. Kreuzberg, Balkon, Altbau',
    price: 1450, area: 64, rooms: 2, floor: '3. OG', baujahr: 1910,
    city: 'Berlin', district: 'Kreuzberg', plz: '10961',
    address: 'Bergmannstraße 28',
    platform: 'immoscout24',
    type: 'miete',
    photos: photoSets.altbau,
    nebenkosten: 220, kaltmiete: 1230,
    provisionsfrei: true,
    energieklasse: 'D',
    description: 'Schöne Altbauwohnung mit Südbalkon. Bezugsfrei ab 15.06.2026. WBS nicht erforderlich. Kaution: 3 Kaltmieten.',
    features: ['Altbau', 'Balkon', 'Bezugsfrei'],
    sourceUrl: 'https://immobilienscout24.de/listing/r1',
    sharedToken: 'i7b3d8',
    posted: '2026-05-12T07:15:00',
  },
  {
    id: 'r2',
    title: 'Möblierte Stadtwohnung mit EBK',
    price: 1280, area: 52, rooms: 2, floor: '1. OG', baujahr: 1985,
    city: 'München', district: 'Schwabing-West', plz: '80796',
    address: 'Hohenzollernstraße 112',
    platform: 'immoscout24',
    type: 'miete',
    photos: photoSets.modern,
    nebenkosten: 195, kaltmiete: 1085,
    provisionsfrei: false,
    energieklasse: 'B',
    description: 'Komplett möblierte Wohnung, perfekt für Berufseinsteiger. Hochwertige Küche, Smart TV, Schreibtisch. Befristet auf 12 Monate, verlängerbar.',
    features: ['Möbliert', 'EBK', 'Smart TV', 'Befristet'],
    sourceUrl: 'https://immobilienscout24.de/listing/r2',
    sharedToken: 'j2e5c9',
    posted: '2026-05-11T18:30:00',
  },
  {
    id: 'r3',
    title: '3-Zi.-Whg. Sternschanze, hell, mit Dachterrasse',
    price: 1680, area: 78, rooms: 3, floor: '4. OG', baujahr: 1899,
    city: 'Hamburg', district: 'Sternschanze', plz: '20357',
    address: 'Susannenstraße 19',
    platform: 'kleinanzeigen',
    type: 'miete',
    photos: photoSets.cozy,
    nebenkosten: 280, kaltmiete: 1400,
    provisionsfrei: true,
    energieklasse: 'D',
    description: 'Großzügige Dachgeschosswohnung mit eigener Dachterrasse (18 m²). Offene Küche, zwei Schlafräume, modernes Bad. Ruhige Innenhof-Lage.',
    features: ['Dachterrasse', 'Altbau', 'Offene Küche', 'DG'],
    sourceUrl: 'https://kleinanzeigen.de/s-anzeige/r3',
    sharedToken: 'k6f1a4',
    posted: '2026-05-10T11:00:00',
  },
  {
    id: 'r4',
    title: '1,5-Zi.-Whg. in Uni-Nähe, Erstbezug',
    price: 720, area: 38, rooms: 1.5, floor: '2. OG', baujahr: 2024,
    city: 'Leipzig', district: 'Plagwitz', plz: '04229',
    address: 'Karl-Heine-Straße 32',
    platform: 'immoscout24',
    type: 'miete',
    photos: photoSets.modern,
    nebenkosten: 130, kaltmiete: 590,
    provisionsfrei: true,
    energieklasse: 'A+',
    description: 'Neubauwohnung im Erstbezug. Mini-Balkon, Pantryküche, Tageslichtbad. KfW-55-Effizienzhaus, Fernwärme. Ideal für Studenten und Berufsstarter.',
    features: ['Neubau', 'Erstbezug', 'KfW-55', 'Balkon'],
    sourceUrl: 'https://immobilienscout24.de/listing/r4',
    sharedToken: 'l9g4b7',
    posted: '2026-05-09T09:45:00',
  },
];

// ─── AI Evaluations ─────────────────────────────────────────────────────
const AI_EVALS = {
  l1: {
    score: 87, grade: 'A',
    recommendation: 'Stark kaufen',
    summary: 'Überdurchschnittlich gut bewertet. Lage in P-Berg ist langfristig wertstabil, Sanierungszustand reduziert kurzfristige Modernisierungskosten. Preis liegt 4% unter Marktdurchschnitt für vergleichbare Altbauwohnungen.',
    scorecard: [
      { label: 'Lage & Mikrolage', score: 92, note: 'Top-Lage, hohe Wohnqualität' },
      { label: 'Preis-Leistung', score: 84, note: '5.621 €/m² — unter Marktschnitt' },
      { label: 'Substanz & Zustand', score: 81, note: 'Altbau saniert, einzelne Themen offen' },
      { label: 'Energieeffizienz', score: 58, note: 'Klasse D — Verbesserung sinnvoll' },
      { label: 'Renditeerwartung', score: 79, note: '3,1% Brutto bei realistischer Vermietung' },
      { label: 'Marktdynamik', score: 88, note: 'Stabile Nachfrage, geringes Risiko' },
    ],
    kpis: [
      { label: 'Preis pro m²', value: '5.621 €', delta: '−4% vs. Markt', positive: true },
      { label: 'Brutto-Rendite', value: '3,1%', delta: 'p.a. erwartet' },
      { label: 'Cashflow', value: '+ 142 €', delta: '/Monat bei 30% EK', positive: true },
      { label: 'ROI (10J.)', value: '+ 8,4%', delta: 'inkl. Wertzuwachs', positive: true },
      { label: 'Tilgung bis 0', value: '~ 28 J.', delta: 'bei 2% Tilgung' },
      { label: 'Modernisierung', value: '~ 18k €', delta: 'geschätzte Reserve' },
    ],
    strengths: [
      'Erhaltene Altbausubstanz (Stuck, Dielen) — werterhaltend',
      'Provisionsfrei (Käufer spart ~17.000 €)',
      'Hohe Vermietbarkeit — Wartelisten in der Straße',
      'Aufzug vorhanden — Altersgerecht / Wiederverkauf einfacher',
    ],
    risks: [
      'Energieklasse D — Sanierungspflicht ab 2030 möglich',
      'Eigentümergemeinschaft klein (6 Parteien) — höhere Einzelumlagen bei Reparaturen',
      'Hofzugang über Durchfahrt — Lärm in den Sommermonaten',
    ],
    comparables: [
      { addr: 'Sredzkistr. 32', price: 525000, area: 91, dist: '180m' },
      { addr: 'Knaackstr. 81', price: 472000, area: 84, dist: '320m' },
      { addr: 'Wörther Str. 12', price: 495000, area: 86, dist: '410m' },
    ],
    evaluatedAt: '2026-05-12T22:14:00',
  },
  l3: {
    score: 92, grade: 'A+',
    recommendation: 'Stark kaufen',
    summary: 'Außergewöhnliches Objekt mit hohem Wiedererkennungswert. Denkmalschutz erhöht AfA-Vorteile signifikant. Hamburg-Ottensen zeigt seit 5 Jahren konstantes Wertwachstum (+6,2% p.a.).',
    scorecard: [
      { label: 'Lage & Mikrolage', score: 90, note: 'Ottensen — Trendviertel mit Substanz' },
      { label: 'Preis-Leistung', score: 86, note: '5.734 €/m² für Loft — fair' },
      { label: 'Substanz & Zustand', score: 94, note: 'Denkmalschutz, restauriert' },
      { label: 'Energieeffizienz', score: 70, note: 'Klasse C — gut für Altbestand' },
      { label: 'Renditeerwartung', score: 91, note: '3,8% Brutto + Denkmal-AfA' },
      { label: 'Marktdynamik', score: 95, note: 'Hohe Nachfrage, knappes Angebot' },
    ],
    kpis: [
      { label: 'Preis pro m²', value: '5.734 €', delta: 'fair für Loft' },
      { label: 'Brutto-Rendite', value: '3,8%', delta: 'p.a. erwartet', positive: true },
      { label: 'Denkmal-AfA', value: '9% p.a.', delta: 'für 8 Jahre', positive: true },
      { label: 'ROI (10J.)', value: '+ 11,2%', delta: 'inkl. Steuervorteil', positive: true },
      { label: 'Cashflow', value: '+ 318 €', delta: '/Monat bei 30% EK', positive: true },
      { label: 'Wertzuwachs', value: '+ 6,2%', delta: 'p.a. lokal' },
    ],
    strengths: [
      'Denkmal-AfA — hoher Steuervorteil über 12 Jahre',
      'Einzigartige Architektur — geringe Vergleichbarkeit, Knappheitsprämie',
      'Provisionsfrei — direkter Verkauf vom Eigentümer',
      'Ottensen — eines der stärksten Mikrolagen Hamburgs',
    ],
    risks: [
      'Denkmalschutz limitiert Umbauten (z.B. Fenster, Fassade)',
      'Loft-Heizkosten höher (große Volumen, hohe Decken)',
      'Lastenaufzug ist alt — größere Reparatur in nächsten 5 J. wahrscheinlich',
    ],
    comparables: [
      { addr: 'Friedensallee 7', price: 612000, area: 102, dist: '290m' },
      { addr: 'Bahrenfelder Str. 215', price: 489000, area: 88, dist: '180m' },
    ],
    evaluatedAt: '2026-05-13T08:42:00',
  },
  l8: {
    score: 88, grade: 'A',
    recommendation: 'Kaufen',
    summary: 'Stark unterbewertet im Vergleich zur Mikrolage. Dresden-Neustadt zeigt überdurchschnittliche Mietsteigerung. Sehr guter Zustand reduziert Sanierungsrisiko nahezu auf Null.',
    scorecard: [
      { label: 'Lage & Mikrolage', score: 84, note: 'Beliebtes Szeneviertel' },
      { label: 'Preis-Leistung', score: 95, note: '4.316 €/m² — deutlich unter Markt' },
      { label: 'Substanz & Zustand', score: 88, note: 'Restauriert, bezugsfertig' },
      { label: 'Energieeffizienz', score: 72, note: 'Klasse C — solide' },
      { label: 'Renditeerwartung', score: 86, note: '4,1% Brutto realistisch' },
      { label: 'Marktdynamik', score: 81, note: 'Stetiges Wachstum, weniger spekulativ' },
    ],
    kpis: [
      { label: 'Preis pro m²', value: '4.316 €', delta: '−12% vs. Markt', positive: true },
      { label: 'Brutto-Rendite', value: '4,1%', delta: 'p.a. erwartet', positive: true },
      { label: 'Cashflow', value: '+ 287 €', delta: '/Monat', positive: true },
      { label: 'ROI (10J.)', value: '+ 9,1%', delta: 'inkl. Wertzuwachs', positive: true },
      { label: 'Tilgung bis 0', value: '~ 24 J.', delta: 'bei 2% Tilgung' },
      { label: 'Modernisierung', value: '~ 6k €', delta: 'minimaler Bedarf' },
    ],
    strengths: [
      'Sehr günstiger Quadratmeterpreis für Lage',
      'Bezugsfrei — sofortige Eigennutzung oder Vermietung',
      'Originalsubstanz erhalten — Liebhaberobjekt',
      'Provisionsfrei',
    ],
    risks: [
      'Energetische Modernisierung in 10 J. wahrscheinlich (~ 15k €)',
      'Hochparterre — Geräusche von der Straße bei offenem Fenster',
    ],
    comparables: [
      { addr: 'Louisenstr. 41', price: 458000, area: 92, dist: '210m' },
      { addr: 'Bautzner Str. 18', price: 510000, area: 98, dist: '380m' },
    ],
    evaluatedAt: '2026-05-12T16:08:00',
  },
};

// ─── Saved Searches ─────────────────────────────────────────────────────
const SEARCHES = [
  {
    id: 's1', name: 'Altbau Berlin Ost',
    category: 'kauf', city: 'Berlin', radius: 5,
    priceMin: 250000, priceMax: 550000,
    roomsMin: 2, roomsMax: 4,
    areaMin: 60, areaMax: 110,
    keywords: ['altbau', 'stuck', 'dielen'],
    excludeKeywords: ['erbpacht', 'sanierungsbedürftig'],
    platforms: ['immoscout24', 'kleinanzeigen'],
    aiEnabled: true,
    active: true,
    createdAt: '2026-04-22',
    lastRun: '2026-05-13T07:00:00',
    matches: 47,
    newToday: 3,
  },
  {
    id: 's2', name: 'Renditeobjekte Sachsen',
    category: 'kauf', city: 'Leipzig', radius: 50,
    priceMin: 500000, priceMax: 1500000,
    roomsMin: 4, roomsMax: 20,
    areaMin: 150, areaMax: 600,
    keywords: ['mehrfamilienhaus', 'rendite', 'vermietet'],
    excludeKeywords: ['leerstand', 'abriss'],
    platforms: ['immoscout24', 'kleinanzeigen'],
    aiEnabled: true,
    active: true,
    createdAt: '2026-03-10',
    lastRun: '2026-05-13T06:30:00',
    matches: 12,
    newToday: 1,
  },
  {
    id: 's3', name: 'Premium München',
    category: 'kauf', city: 'München', radius: 10,
    priceMin: 800000, priceMax: 2000000,
    roomsMin: 3, roomsMax: 6,
    areaMin: 100, areaMax: 200,
    keywords: ['penthouse', 'dachterrasse', 'neubau'],
    excludeKeywords: [],
    platforms: ['immoscout24'],
    aiEnabled: true,
    active: false,
    createdAt: '2026-02-18',
    lastRun: '2026-05-10T08:00:00',
    matches: 8,
    newToday: 0,
  },
  {
    id: 's4', name: 'Mietwohnung Kreuzberg',
    category: 'miete', city: 'Berlin', radius: 3,
    priceMin: 800, priceMax: 1800,
    roomsMin: 2, roomsMax: 3,
    areaMin: 50, areaMax: 90,
    keywords: ['balkon', 'altbau'],
    excludeKeywords: ['möbliert', 'wbs'],
    platforms: ['immoscout24', 'kleinanzeigen'],
    aiEnabled: false,
    active: true,
    createdAt: '2026-05-01',
    lastRun: '2026-05-13T07:30:00',
    matches: 23,
    newToday: 4,
  },
];

// ─── Notifications ──────────────────────────────────────────────────────
const NOTIFICATIONS = [
  { id: 'n1', kind: 'ai-high', title: 'Neue Top-Bewertung: 92/100', body: 'Loft-Wohnung Hamburg-Ottensen — Score: 92, sehr empfehlenswert.', listingId: 'l3', read: false, at: '2026-05-13T08:42:00' },
  { id: 'n2', kind: 'new-match', title: '4 neue Treffer', body: 'Suche „Mietwohnung Kreuzberg" — 4 neue Angebote in den letzten 12 Std.', searchId: 's4', read: false, at: '2026-05-13T07:32:00' },
  { id: 'n3', kind: 'ai-high', title: 'Neue Top-Bewertung: 88/100', body: 'Jugendstil-Wohnung Dresden — unterbewertet, hohe Rendite-Erwartung.', listingId: 'l8', read: false, at: '2026-05-12T16:08:00' },
  { id: 'n4', kind: 'new-match', title: '3 neue Treffer', body: 'Suche „Altbau Berlin Ost" — 3 neue Inserate.', searchId: 's1', read: true, at: '2026-05-12T07:01:00' },
  { id: 'n5', kind: 'system', title: 'Suche pausiert', body: 'Suche „Premium München" wurde pausiert — Aktivität seit 7 Tagen niedrig.', searchId: 's3', read: true, at: '2026-05-10T18:00:00' },
  { id: 'n6', kind: 'ai-high', title: 'Neue Bewertung: 87/100', body: 'Altbau Prenzlauer Berg — solide Rendite, geringes Risiko.', listingId: 'l1', read: true, at: '2026-05-12T22:14:00' },
];

// ─── Admin Jobs ─────────────────────────────────────────────────────────
const JOBS = [
  { id: 'j1', kind: 'scrape',   target: 'ImmoScout24',     search: 'Altbau Berlin Ost',     status: 'running',   progress: 67, started: '2026-05-13T08:55:00', items: '47/70' },
  { id: 'j2', kind: 'scrape',   target: 'Kleinanzeigen',   search: 'Mietwohnung Kreuzberg', status: 'queued',    progress: 0,  started: '—', items: '0/—' },
  { id: 'j3', kind: 'ai-eval',  target: 'Codex 5.3 Spark', search: 'Renditeobjekte Sachsen',status: 'running',   progress: 41, started: '2026-05-13T08:48:00', items: '5/12' },
  { id: 'j4', kind: 'scrape',   target: 'ImmoScout24',     search: 'Renditeobjekte Sachsen',status: 'completed', progress: 100, started: '2026-05-13T08:30:00', items: '12/12' },
  { id: 'j5', kind: 'ai-eval',  target: 'Codex 5.3 Spark', search: 'Altbau Berlin Ost',     status: 'completed', progress: 100, started: '2026-05-13T07:32:00', items: '47/47' },
  { id: 'j6', kind: 'scrape',   target: 'Kleinanzeigen',   search: 'Premium München',       status: 'failed',    progress: 12, started: '2026-05-13T06:20:00', items: '1/8', error: 'Rate-Limit erreicht' },
  { id: 'j7', kind: 'ai-eval',  target: 'Codex 5.3 Spark', search: 'Mietwohnung Kreuzberg', status: 'skipped',   progress: 0,  started: '—', items: '0/0', error: 'AI für Mieten deaktiviert' },
];

// Expose all on window for cross-script access
Object.assign(window, {
  LISTINGS, AI_EVALS, SEARCHES, NOTIFICATIONS, JOBS,
  fmtPrice, fmtPriceShort, fmtArea, fmtDate, fmtDateTime, fmtRelative,
});
