// social-data.jsx — dane warstwy społecznościowej e‑Osiedle
// Typy postów: kolor (hex) + ikona Lucide (kolor nigdy nie jest jedynym nośnikiem znaczenia)
const POST_TYPES = {
  pytanie:    { label: 'Pytanie',         hex: '#2563EB', icon: 'helpCircle' },
  polecam:    { label: 'Polecam',         hex: '#0D9488', icon: 'thumbsUp' },
  dyskusja:   { label: 'Dyskusja',        hex: '#64748B', icon: 'messageCircle' },
  wydarzenie: { label: 'Wydarzenie',      hex: '#7C3AED', icon: 'calendar' },
  zguba:      { label: 'Zguba',           hex: '#D97706', icon: 'search' },
  market:     { label: 'Marketplace',     hex: '#059669', icon: 'shoppingBag' },
  zwierzak:   { label: 'Zwierzaki',       hex: '#FB7185', icon: 'pawPrint' },
  pomoc:      { label: 'Pomoc sąsiedzka', hex: '#E11D48', icon: 'handHeart' },
  live:       { label: 'Na żywo',         hex: '#D97706', icon: 'radio', pulse: true },
};

// Reakcje (ikona + etykieta — dostępne, bez polegania na samym emoji)
const REACTIONS = [
  { id: 'lubie',   icon: 'thumbsUp',  label: 'Lubię' },
  { id: 'dzieki',  icon: 'handHeart', label: 'Dzięki' },
  { id: 'pomocne', icon: 'bulb',      label: 'Pomocne' },
];

const SOC_USER = { name: 'Anna Kowalska', flat: 'klatka B', initials: 'AK' };

// ── FEED ──
const FEED = [
  {
    id: 1, type: 'wydarzenie', pinned: true, author: 'Rada Osiedla', flat: 'zarząd', time: '2 dni temu',
    title: 'Grill sąsiedzki — sobota 7 czerwca, 12:00',
    body: 'Zapraszamy wszystkich na coroczny grill na zielonym dziedzińcu! Będzie muzyka, strefa dla dzieci i wspólne gotowanie. Dołączcie i dopiszcie się, co przynosicie 🙂',
    photos: 1, reactions: { lubie: 32, dzieki: 8, pomocne: 2 }, myReaction: null, comments: 14, eventId: 1,
  },
  {
    id: 2, type: 'pytanie', author: 'Tomasz Wójcik', flat: 'klatka C', time: '3 godz. temu',
    body: 'Czy ktoś wie, kiedy wracają śmieciarki po długim weekendzie? Pojemniki na bio już się przepełniają przy bloku C.',
    photos: 0, reactions: { lubie: 4, dzieki: 1, pomocne: 6 }, myReaction: 'pomocne', comments: 5,
  },
  {
    id: 3, type: 'market', author: 'Magda Lis', flat: 'klatka A', time: '5 godz. temu',
    title: 'Oddam fotelik samochodowy 9–18 kg',
    body: 'Fotelik w bardzo dobrym stanie, dziecko wyrosło. Oddam za darmo komuś z osiedla. Odbiór własny, klatka A.',
    photos: 2, reactions: { lubie: 11, dzieki: 3, pomocne: 0 }, myReaction: null, comments: 8,
    market: { subtype: 'Oddam za darmo', price: null, free: true, status: 'Dostępne' },
  },
  {
    id: 4, type: 'polecam', author: 'Krzysztof Zając', flat: 'klatka B', time: '8 godz. temu',
    body: 'Polecam pana Marka — hydraulik, robił mi wymianę baterii i syfonu. Szybko, czysto i uczciwa cena. Mogę podać kontakt na priv.',
    photos: 0, reactions: { lubie: 18, dzieki: 9, pomocne: 12 }, myReaction: 'lubie', comments: 6,
  },
  {
    id: 5, type: 'zguba', author: 'Ewa Nowak', flat: 'klatka A', time: '1 dzień temu',
    title: 'Znaleziono klucze przy placu zabaw',
    body: 'Leżały na ławce koło piaskownicy — pęk z 3 kluczami i czerwonym brelokiem. Zostawiłam u ochrony bud. A.',
    photos: 1, reactions: { lubie: 7, dzieki: 5, pomocne: 4 }, myReaction: null, comments: 2, resolved: true,
  },
  {
    id: 6, type: 'dyskusja', author: 'Piotr Sokół', flat: 'klatka C', time: '1 dzień temu',
    body: 'Co sądzicie o pomyśle montażu stojaków na rowery od strony dziedzińca? Zbieram opinie zanim napiszę do zarządu.',
    photos: 0, reactions: { lubie: 14, dzieki: 0, pomocne: 3 }, myReaction: null, comments: 21,
  },
];

const LIVE_INFO = [
  { id: 1, text: 'Oblodzone schody przy bloku C — uważajcie rano', time: '40 min temu', flat: 'klatka C', confirms: 5 },
  { id: 2, text: 'Otwarta brama wjazdowa od strony parkingu', time: '1 godz. temu', flat: 'klatka A', confirms: 2 },
];

// ── KOMENTARZE (dla szczegółu posta) ──
const COMMENTS = {
  4: [
    { id: 1, author: 'Anna Kowalska', flat: 'klatka B', time: '6 godz. temu', text: 'Też go polecam! Naprawiał mi spłuczkę.', reactions: 3 },
    { id: 2, author: 'Marek Zieliński', flat: 'klatka B', time: '5 godz. temu', text: 'Podasz kontakt? Szukam kogoś do łazienki.', reactions: 1 },
    { id: 3, author: 'Krzysztof Zając', flat: 'klatka B', time: '4 godz. temu', text: 'Już wysłałem na priv 🙂', reactions: 0 },
  ],
};

// ── WYDARZENIE (RSVP + potluck) ──
const SOC_EVENT = {
  id: 1, type: 'wydarzenie', title: 'Grill sąsiedzki', day: '07', month: 'CZE', weekday: 'sobota',
  time: '12:00 – 16:00', place: 'Zielony dziedziniec (między A i C)', organizer: 'Rada Osiedla', organizerFlat: 'zarząd',
  desc: 'Coroczne sąsiedzkie spotkanie przy grillu. Bierzemy coś do jedzenia/picia (dopiszcie się niżej), reszta — dobry humor! Dla dzieci strefa zabaw i malowanie twarzy.',
  rsvp: { ide: 24, moze: 7, nie: 3 }, myRsvp: null,
  attendees: ['Anna Kowalska', 'Tomasz Wójcik', 'Magda Lis', 'Piotr Sokół', 'Ewa Nowak', 'Krzysztof Zając', 'Jan Mak', 'Zofia Bąk'],
  potluck: [
    { item: 'Kiełbaski i karkówka', who: 'Rada Osiedla' },
    { item: 'Sałatka ziemniaczana', who: 'Magda Lis' },
    { item: 'Ciasto drożdżowe', who: 'Ewa Nowak' },
    { item: 'Napoje i woda', who: null },
    { item: 'Pieczywo i sosy', who: null },
  ],
};

const SOC_EVENTS = [
  { id: 1, type: 'wydarzenie', day: '07', month: 'CZE', title: 'Grill sąsiedzki', time: 'sob, 12:00', place: 'Zielony dziedziniec', going: 24, attendees: ['Anna Kowalska','Tomasz Wójcik','Magda Lis','Piotr Sokół'] },
  { id: 2, type: 'wydarzenie', day: '12', month: 'CZE', title: 'Klub książki — spotkanie', time: 'czw, 19:00', place: 'Sala wspólna', going: 9, attendees: ['Ewa Nowak','Zofia Bąk'] },
  { id: 3, type: 'wydarzenie', day: '15', month: 'CZE', title: 'Warsztaty kompostowania', time: 'nd, 11:00', place: 'Ogród społeczny', going: 16, attendees: ['Jan Mak','Piotr Sokół','Magda Lis'] },
];
const ADHOC = { id: 99, title: 'Kto dziś 18:00 gra w piłkę?', place: 'Boisko', need: 6, have: 4, going: ['Piotr Sokół','Jan Mak','Tomasz Wójcik','Krzysztof Zając'] };

// ── MARKETPLACE ──
const MARKET = [
  { id: 1, type: 'market', subtype: 'Oddam', free: true,  title: 'Fotelik samochodowy 9–18 kg', cat: 'Dzieci', status: 'Dostępne', time: '5 godz.', author: 'Magda Lis', flat: 'klatka A', label: 'fotelik' },
  { id: 2, type: 'market', subtype: 'Sprzedam', price: '120 zł', title: 'Rower miejski damka, 26"', cat: 'Sport', status: 'Dostępne', time: '1 dzień', author: 'Ewa Nowak', flat: 'klatka A', label: 'rower' },
  { id: 3, type: 'market', subtype: 'Oddam', free: true, title: 'Doniczki ceramiczne (5 szt.)', cat: 'Dom i ogród', status: 'Zarezerwowane', time: '1 dzień', author: 'Zofia Bąk', flat: 'klatka B', label: 'doniczki' },
  { id: 4, type: 'market', subtype: 'Kupię', price: null, title: 'Kupię wózek spacerowy', cat: 'Dzieci', status: 'Aktywne', time: '2 dni', author: 'Jan Mak', flat: 'klatka C', label: null },
  { id: 5, type: 'market', subtype: 'Pożyczę', free: false, title: 'Wiertarka udarowa — pożyczę', cat: 'Narzędzia', status: 'Dostępne', time: '2 dni', author: 'Piotr Sokół', flat: 'klatka C', label: 'wiertarka' },
  { id: 6, type: 'market', subtype: 'Sprzedam', price: '40 zł', title: 'Książki dla dzieci 3–6 lat', cat: 'Dzieci', status: 'Dostępne', time: '3 dni', author: 'Anna Kowalska', flat: 'klatka B', label: 'książki' },
];
const GROUP_BUY = { id: 1, title: 'Wspólny zakup ziemi ogrodowej', desc: 'Składamy zamówienie na ziemię do skrzynek na dziedzińcu. Im więcej osób, tym taniej za worek.', coordinator: 'Piotr Sokół', have: 8, need: 12, deadline: 'do 5 czerwca' };

// ── ZWIERZAKI ──
const PET_ALERT = { active: true, name: 'Reksio', species: 'pies', breed: 'kundelek, beżowy', lastSeen: 'parking przy bloku B, dziś ~14:00', owner: 'Jan Mak', flat: 'klatka C', label: 'Reksio' };
const PETS = [
  { id: 1, name: 'Mruczek', species: 'kot', icon: 'pawPrint', owner: 'Ewa Nowak', flat: 'klatka A', label: 'kot' },
  { id: 2, name: 'Luna', species: 'pies', icon: 'pawPrint', owner: 'Anna Kowalska', flat: 'klatka B', label: 'pies' },
  { id: 3, name: 'Tofik', species: 'pies', icon: 'pawPrint', owner: 'Tomasz Wójcik', flat: 'klatka C', label: 'pies' },
  { id: 4, name: 'Kropka', species: 'kot', icon: 'pawPrint', owner: 'Zofia Bąk', flat: 'klatka B', label: 'kot' },
];
const VETS = [
  { name: 'Gabinet „Cztery Łapy"', cat: 'Weterynarz', rating: 4.8, reviews: 23 },
  { name: 'Grooming u Kasi', cat: 'Pielęgnacja', rating: 4.9, reviews: 11 },
];

// ── MODERACJA ──
const MOD_QUEUE = [
  { id: 1, type: 'dyskusja', reports: 3, reasons: ['spam', 'spam', 'niewłaściwe'], author: 'użytkownik usunięty', flat: '—', time: '1 godz. temu', status: 'oczekuje',
    excerpt: 'SUPER OKAZJA!!! Kup teraz suplementy 50% taniej, pisz na priv, dowóz na osiedle 💊💊💊',
    context: 'SUPER OKAZJA!!! Kup teraz suplementy 50% taniej, pisz na priv, dowóz na osiedle 💊💊💊 Tylko dziś! Link w opisie profilu.' },
  { id: 2, type: 'pytanie', reports: 2, reasons: ['hejt', 'niewłaściwe'], author: 'Anonim', flat: 'klatka D', time: '3 godz. temu', status: 'oczekuje',
    excerpt: 'Znowu te dzieciaki z klatki B hałasują pod blokiem, czy ktoś w końcu...',
    context: 'Znowu te dzieciaki z klatki B hałasują pod blokiem, czy ktoś w końcu zrobi z tym porządek? Rodzice chyba ich nie ogarniają.' },
  { id: 3, type: 'market', reports: 1, reasons: ['niewłaściwe'], author: 'Marek N.', flat: 'klatka A', time: '5 godz. temu', status: 'oczekuje',
    excerpt: 'Sprzedam używany sprzęt — szczegóły na priv, cena do uzgodnienia.',
    context: 'Sprzedam używany sprzęt — szczegóły na priv, cena do uzgodnienia. Najlepiej dzwońcie wieczorem.' },
];
const MOD_AUDIT = [
  { action: 'Ukryto post #1248', by: 'Marek Zieliński', time: 'wczoraj, 18:20', reason: 'spam' },
  { action: 'Ostrzeżono autora', by: 'System', time: 'wczoraj, 18:20', reason: 'powtarzający się spam' },
  { action: 'Przywrócono komentarz #882', by: 'Anna (moderator)', time: '2 dni temu', reason: 'zgłoszenie bezzasadne' },
];

// ── REGULAMIN ──
const RULES = [
  { icon: 'handHeart', title: 'Szacunek przede wszystkim', desc: 'Rozmawiamy jak dobrzy sąsiedzi — bez hejtu, wyzwisk i ataków osobistych.' },
  { icon: 'ban', title: 'Bez spamu i reklam', desc: 'To miejsce dla społeczności, nie tablica ogłoszeń komercyjnych spoza osiedla.' },
  { icon: 'shield', title: 'Ostrożność w transakcjach', desc: 'Marketplace to wymiana między sąsiadami. Operator nie pośredniczy w płatnościach.' },
  { icon: 'eyeOff', title: 'Prywatność sąsiadów', desc: 'Nie udostępniamy zdjęć ani danych innych osób bez ich zgody.' },
];

// helper: skala typografii dla trybu seniora.
// Przyjmuje dwie klasy text-[Npx]; tryb seniora dostaje ZAWSZE większy rozmiar,
// tryb zwykły mniejszy — niezależnie od kolejności argumentów.
function sz(senior, a, b) {
  const px = (c) => { const m = /([\d.]+)px/.exec(c || ''); return m ? parseFloat(m[1]) : 0; };
  const pa = px(a), pb = px(b);
  const bigger = pb >= pa ? b : a;
  const smaller = pb >= pa ? a : b;
  return senior ? bigger : smaller;
}

Object.assign(window, {
  POST_TYPES, REACTIONS, SOC_USER, FEED, LIVE_INFO, COMMENTS,
  SOC_EVENT, SOC_EVENTS, ADHOC, MARKET, GROUP_BUY,
  PET_ALERT, PETS, VETS, MOD_QUEUE, MOD_AUDIT, RULES, sz,
});
