// data.jsx — Innehåll för Sandareds Intresseförening

const PROJECTS = [
  { id: 'sandaredsdagen', title: 'Sandaredsdagen', kategori: 'Återkommande event',
    year: 'Första lördagen i september', illu: 'IlluSandaredsdagen', tint: '#FBEBE0', accent: '#E8825A',
    desc: 'Vår stora sommardag med musik, mat, lekar och föreningsliv i parken.' },
  { id: 'hostmarknad', title: 'Höstmarknad', kategori: 'Återkommande event',
    year: 'Tredje lördagen i oktober', illu: 'IlluHostmarknad', tint: '#FBEBE0', accent: '#E8825A',
    desc: 'Lokala odlare, hantverkare och bagare fyller torget med säsong.' },
  { id: 'julbelysning', title: 'Julbelysning', kategori: 'Återkommande event',
    year: 'Fredag innan advent', illu: 'IlluJul', tint: '#E4ECF5', accent: '#4A7BA8',
    desc: 'Vi hänger upp ljus i centrum och på torget från första advent till tjugondag knut.' },
  { id: 'parkbelysning', title: 'Belysning i Sandaredsparken', kategori: 'Trygghet & infrastruktur',
    year: '', illu: 'IlluBelysning', tint: '#EFE8F2', accent: '#8B6BA8',
    desc: 'Nya lyktor längs hela parkstråket — så att fler vågar gå när det mörknar.' },
  { id: 'stranden', title: 'Solbäddar & pingisbord vid stranden', kategori: 'Rekreation',
    year: '', illu: 'IlluStranden', tint: '#E0EFF1', accent: '#5A9FA8',
    desc: 'Två solbäddar och ett betongpingisbord vid badet — alltid öppet, alltid gratis.' },
  { id: 'utegym', title: 'Utegym', kategori: 'Rekreation',
    year: '', illu: 'IlluUtegym', tint: '#E8F1E8', accent: '#4A8B5C',
    desc: 'Utomhusgym vid motionsspåret. Tio stationer för alla nivåer, öppet dygnet runt.' },
  { id: 'laddstolpar', title: 'Laddstolpar i centrum', kategori: 'Trygghet & infrastruktur',
    year: '', illu: 'IlluLadd', tint: '#E8F1E8', accent: '#4A8B5C',
    desc: 'Fyra laddpunkter vid pendlarparkeringen — för Sandaredsbor och besökare.' },
  { id: 'discgolf', title: 'Discgolfbana', kategori: 'Rekreation',
    year: '', illu: 'IlluDisc', tint: '#FBF1D8', accent: '#E8B84A',
    desc: 'Nio korgar i skogen mellan Bosgården och Viaredssjön. Banan är gratis och öppen alltid.' },
  { id: 'blommor', title: 'Blommor i centrum', kategori: 'Trivsel',
    year: 'Vår, sommar, höst', illu: 'IlluBlommor', tint: '#FBEBE0', accent: '#E8825A',
    desc: 'Vi planterar och vattnar amplar och rabatter i centrum hela sommaren.' },
  { id: 'ortsrad', title: 'Ortsråd Väst', kategori: 'Påverkan',
    year: 'Löpande', illu: 'IlluOrtsrad', tint: '#E4ECF5', accent: '#4A7BA8',
    desc: 'Vi är Sandareds röst i Borås stads ortsråd — för bättre kollektivtrafik, skola och service.' },
  { id: 'terrangbana', title: 'Terrängbana', kategori: 'Rekreation',
    year: '', illu: 'IlluTerrang', tint: '#E8F1E8', accent: '#4A8B5C',
    desc: 'Markerad 4 km-slinga genom Rya åsar — bra för löpning, promenad och skidåkning på vintern.' },
  { id: 'bankar', title: 'Bänkar i centrum', kategori: 'Trivsel',
    year: '', illu: 'IlluBank', tint: '#FBF1D8', accent: '#E8B84A',
    desc: 'Sex nya parkbänkar längs gångstråken — för en stunds vila och ett snack med en granne.' },
];

const EVENTS = [
  { date: '2026-09-05', day: '05', month: 'sep', title: 'Sandaredsdagen',                 time: '10:00', place: 'Hela Sandared',  accent: '#4A8B5C' },
  //{ date: '2026-09-12', day: '12', month: 'sep', title: 'Fixardag — höststart',           time: '10:00', place: 'Möte vid skolan',  accent: '#4A8B5C' },
  { date: '2026-10-17', day: '17', month: 'okt', title: 'Höstmarknad',                    time: '11:00', place: 'Magasinet',    accent: '#E8825A' },
  { date: '2026-11-27', day: '27', month: 'nov', title: 'Tända julbelysningen',           time: '17:00', place: 'Magasinet',    accent: '#4A7BA8' },
];

const PARTNERS = [
  { name: 'ActEve' },
  { name: 'Backabo Byggvaror' },
  { name: 'Borås Truckservice AB' },
  { name: 'Expotex Agenturer AB' },
  { name: 'Feskepöjka, Edvards fisk och skaldjur' },
  { name: 'Gumselids Hantverk AB' },
  { name: 'Jirotex Furudalsgruppen AB' },
  { name: 'Kina Thai Köket' },
  { name: 'Konditori Centrum i Sandared' },
  { name: 'Larssons Fastigheter i Sjuhärad AB' },
  { name: 'Leg. Kiropraktor Martina Barker AB' },
  { name: 'Lindhs Trädgård' },
  { name: 'Ryfab Förvaltning AB' },
  { name: 'Sanda Assistans och Sanda Hem AB' },
  { name: 'Sandareds Kvarterskrog & Pizzeria' },
  { name: 'Sandareds Matmarknad AB, ICA Köpet' },
  { name: 'Sandareds Träningscenter AB' },
  { name: 'Sandhults Pastorat' },
  { name: 'Sandhultsbostäder' },
  { name: 'Sandhults-Sandareds Elektriska Ek. förening' },
  { name: 'Sportson, Stone bikes' },
  { name: 'Stark i Längden' },
  { name: 'Top Line Arrangemang & PR' },
  { name: 'Vikur Sverige AB' },
  { name: 'YogAlive' }
];

const STATS = [
  { num: '539',  label: 'medlemmar 2026' },
  { num: '12',   label: 'projekt levererade' },
  { num: '25',   label: 'företagspartners', auto: true },
  { num: '2006', label: 'året vi grundades' },
];

const BOARD = [
  { name: 'Camilla Johansson', role: 'Ordförande',      color: '#E8825A' },
  { name: 'Anders Lindqvist',  role: 'Vice ordförande',  color: '#2D5F4E' },
  { name: 'Maria Eriksson',    role: 'Kassör',            color: '#E8B84A' },
  { name: 'Jonas Persson',     role: 'Sekreterare',       color: '#7BAEC8' },
  { name: 'Karin Larsson',     role: 'Ledamot',           color: '#8B6BA8' },
  { name: 'Björn Nilsson',     role: 'Ledamot',           color: '#4A8B5C' },
  { name: 'Eva Bergström',     role: 'Ledamot',           color: '#E8825A' },
];

const SIGNUP_EVENTS = [
  {
    id: 'sandaredsdagen',
    title: 'Sandaredsdagen',
    date: '5 september 2026',
    time: '10:00 – 14:00',
    place: 'Sandared',
    illu: 'IlluSandaredsdagen',
    tint: '#FBEBE0',
    accent: '#E8825A',
    intro: 'Höstens bästa dag! — musik, mat, lekar och föreningsliv runt om byn. Sandaredsbor i alla åldrar kommer förbi.',
    audience: '1 500+ besökare',
    deadline: 'Anmäl senast 31 aug',
    signupOpen: true
  },
  {
    id: 'hostmarknad',
    title: 'Höstmarknad',
    date: '17 oktober 2026',
    time: '10:00 – 14:00',
    place: 'Magasinet',
    illu: 'IlluHostmarknad',
    tint: '#FBEBE0',
    accent: '#E8825A',
    intro: 'Marknadsdag med lokala odlare, hantverkare och bagare. Mysig och välbesökt — perfekt för dig som vill möta nya kunder.',
    audience: '600+ besökare',
    deadline: 'Anmäl senast 20 september',
    spotsLeft: '20 platser kvar',
    signupOpen: false,
    opensAt: 'Anmälan öppnar i augusti',
    inkluderar: ['Yta 2×2 m (eget tält)', 'Vatten i närheten', 'Omnämnande på sociala medier'],
  },
];

let STADGAR_URL = 'stadgar.pdf';

// ─── Applicera data från servern (Azure) ──────────────────────────────────────
// Anropas av app.jsx vid sidladdning efter att /api-anropen hämtats.
// Arrayerna ovan fungerar som fallback om API:t inte svarar.
function applyServerData(payload) {
  if (!payload) return;
  try {
    if (Array.isArray(payload.events) && payload.events.length) {
      EVENTS.length = 0;
      payload.events.forEach(e => EVENTS.push(e));
    }
    if (Array.isArray(payload.board) && payload.board.length) {
      BOARD.length = 0;
      payload.board.forEach(m => BOARD.push(m));
    }
    if (payload.settings) {
      SIGNUP_EVENTS.forEach(ev => {
        const s = payload.settings[ev.id];
        if (!s) return;
        if (s.open !== undefined) ev.signupOpen = s.open;
        if (s.max  !== undefined && s.max > 0)  ev.maxSignups = s.max;
        if (s.max  !== undefined && s.max <= 0) delete ev.maxSignups;
      });
    }
    if (payload.stadgarUrl) STADGAR_URL = payload.stadgarUrl;

    // Manuella hero-siffror (företagspartners hanteras separat/automatiskt)
    if (Array.isArray(payload.stats) && payload.stats.length) {
      const manual = payload.stats.filter(s => !/företag/i.test(s.label || ''));
      const editable = STATS.filter(s => !s.auto);
      manual.forEach((s, i) => { if (editable[i]) { editable[i].num = s.num; editable[i].label = s.label; } });
    }

    // Företagsmedlemmar (betalda) — driver både listan och antalet automatiskt
    if (payload.companies && Array.isArray(payload.companies.names) && payload.companies.names.length) {
      PARTNERS.length = 0;
      payload.companies.names.forEach(n => PARTNERS.push({ name: n }));
      const st = STATS.find(s => s.auto);
      if (st) st.num = String(payload.companies.names.length);
    }
  } catch (e) { /* behåll fallback-värden */ }
}

Object.assign(window, { PROJECTS, EVENTS, PARTNERS, STATS, SIGNUP_EVENTS, BOARD, STADGAR_URL, applyServerData });
