-- Nöbetçi Eczane Ekran Sistemi — Veritabanı
-- Çalıştır: psql -U postgres -d nobetci_eczane -f migrations/001_init.sql

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- Ekranlar tablosu
CREATE TABLE IF NOT EXISTS screens (
  id              UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  name            VARCHAR(255) NOT NULL,           -- "Elazığ Merkez Eczanesi Ekranı"
  slug            VARCHAR(255) UNIQUE NOT NULL,    -- "elazig-merkez" → URL'de kullanılır

  -- Lokasyon (API filtreleme için)
  city            VARCHAR(100) NOT NULL,            -- "elazig" (API slug formatı)
  district        VARCHAR(100),                     -- "merkez" veya NULL (tüm il)

  -- Tasarım
  bg_color        VARCHAR(20)  DEFAULT '#c0392b',
  bg_image_url    TEXT,                             -- Arka plan görseli URL
  text_color      VARCHAR(20)  DEFAULT '#ffffff',
  accent_color    VARCHAR(20)  DEFAULT '#ffffff',   -- Telefon kutusu rengi
  title_font      VARCHAR(100) DEFAULT 'Roboto',
  body_font       VARCHAR(100) DEFAULT 'Roboto',
  logo_url        TEXT,                             -- Ekranda gösterilecek logo (opsiyonel)

  -- Davranış
  refresh_seconds INT DEFAULT 300,                  -- Kaç saniyede API'den veri yenilenir
  slide_seconds   INT DEFAULT 8,                    -- Slayt geçiş süresi (saniye)
  show_map        BOOLEAN DEFAULT true,
  show_qr         BOOLEAN DEFAULT true,
  show_phone      BOOLEAN DEFAULT true,
  show_hours      BOOLEAN DEFAULT true,

  -- Durum
  is_active       BOOLEAN DEFAULT true,

  created_at      TIMESTAMP DEFAULT NOW(),
  updated_at      TIMESTAMP DEFAULT NOW()
);

-- Ekran güncellendiğinde updated_at otomatik güncelle
CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN NEW.updated_at = NOW(); RETURN NEW; END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER screens_updated_at
  BEFORE UPDATE ON screens
  FOR EACH ROW EXECUTE FUNCTION update_updated_at();

-- Örnek ekranlar
INSERT INTO screens (name, slug, city, district, bg_color, slide_seconds, refresh_seconds)
VALUES
  ('Elazığ Merkez Ekranı',  'elazig-merkez',  'elazig', 'merkez', '#c0392b', 8, 300),
  ('Elazığ Tüm İl Ekranı',  'elazig-tum',     'elazig', NULL,     '#1a3a5c', 10, 300)
ON CONFLICT (slug) DO NOTHING;
