"""Seed initial content into SQL tables when they are empty."""
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from models import Pill, TimelineItem, Service, Project, BlogPost, Doctor, Setting

LONG_TEXT = (
    "Birləşmiş Ştatlardakı səhiyyə sistemləri davamlı iqtisadi təzyiqlərlə, o cümlədən "
    "inflyasiya, yüksək əmək xərcləri, qayğı yerlərinin kəskin şəraitdən uzaq yerdəyişməsi "
    "və kompensasiyanın aşağıya doğru təzyiqi ilə mübarizə aparmalı oldu. Bu amillərə "
    "uyğunlaşmaq üçün səhiyyə sisteminin liderləri qayğı keyfiyyətini itirmədən xərcləri "
    "azaltmaq və gəlirləri yaxşılaşdırmaq üçün çoxşaxəli yanaşmalar həyata keçirirlər.\n\n"
    "Təchizat, əczaçılıq və alınmış xidmətlər üçün xarici xərclər tipik səhiyyə sisteminin "
    "ümumi xərclər bazasının 30-40 faizini təşkil edir və klinik təchizat xərclərinin "
    "optimallaşdırılması ümumi xərclərin azaldılması üçün nəzərə alınmalı mühüm üsuldur."
)

PILLS_LEFT = [
    "Hospital Modeli", "Poliklinika Modeli", "Laboratoriya Modeli",
    "Keyfiyyət Standartları", "Marketinq Strategiyaları",
    "Mənfəətlik Anlayışı", "Həkim cəlb etmə anlayışı",
]
PILLS_RIGHT = [
    "Təhcizat Zənciri", "Şöbə yaratma prinsipləri", "Xidmət yaratma",
    "Xidmətlərdən mənfəətlik", "Daxili və xarici satış",
    "Sağlıq turizmi", "Rəhbərlik anlayışı",
]

TIMELINE = [
    {"period": "05.05.2025 - davam edir", "title": "Caspian İnternasional Hospital Baş Director.",
     "bullets": ["Özəl xəstəxanaların qurulması", "Özəl Xəstəxanaların idarə olunması"]},
    {"period": "15.09.2023 - davam edir", "title": "Medical Organization. Təsisçi - Direktor.",
     "bullets": ["Biznes Planın hazırlanması", "Təhcizat zəncirinin qurulması", "Proqram Təminatı"]},
    {"period": "15.09.2020 - 01.08.2023", "title": "Leyla Medical Center. Poliklinika şöbəsinin rəhbəri.", "bullets": []},
    {"period": "15.09.2015 - 01.08.2019", "title": "Ədliyyə Nazirliyi Müalicə Müəssisəsi, Həkim.", "bullets": []},
    {"period": "09.09.2011 - 01.08.2014", "title": "Ədliyyə Nazirliyi İxtisaslaşdırılmış Müalicə Müəssisəsi, Feldşer.", "bullets": []},
    {"period": "09.09.2009 - 01.08.2015", "title": "Azərbaycan Tibb Universiteti, Hərbi Həkim İşi.", "bullets": []},
    {"period": "15.09.1997 - 15.07.2008", "title": "Bərdə Rayonu Telman Qurbanov adına Xan Qaraqoyunlu kənd orta məktəbi.", "bullets": []},
    {"period": "04.09.1991", "title": "Bərdə Rayonu 32-lər kəndində anadan olub.", "bullets": []},
]

SERVICES = [
    "Xəstəxananın qurulması", "Təhcizat Zəncirinin qurulması", "Poliklinikanın qurulması",
    "Şöbələrin qurulması", "Laboratoriyanın qurulması", "Flialların yaradılması",
    "Keyfiyyət Standartlarının qurulması", "Biznes Planın hazırlanması",
    "Marketinq Strategiyalarının qurulması", "Proqram təminatı",
    "Admin Analiz", "İdarəetmə məsləhətləri",
    "Kadr təminatı", "Təhcizat şirkətinin qurulması",
]

HOSPITAL_IMGS = [
    "https://images.pexels.com/photos/263402/pexels-photo-263402.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
    "https://images.pexels.com/photos/668300/pexels-photo-668300.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
    "https://images.unsplash.com/photo-1586773860418-d37222d8fce3",
    "https://images.unsplash.com/photo-1586773860383-dab5f3bc1bcc",
    "https://images.unsplash.com/photo-1614713223639-819abc4a7645",
]

BLOG_TITLES = [
    "Net Profit nədir ?", "Admin analizin üsdünlükləri nədir ?",
    "Mənfəətlik necə hesablanmalıdır?", "Təhcizat zəncirində itgi",
    "Rentabellik nədir ?", "Svot analiz nədir ?",
]

DOCTOR_IMG = "https://images.pexels.com/photos/6762866/pexels-photo-6762866.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"

DEFAULT_SETTINGS = {
    "site_title": "Randevu",
    "brand_name": "Cəbrayıl Abbasov",
    "chat_title": "Randevu Dəstək",
    "chat_welcome": "Salam! Sizə necə kömək edə bilərəm?",
    "footer_text": "Cəbrayıl Abbasov — Bütün hüquqlar qorunur.",
    "hero_person_image": "https://images.unsplash.com/photo-1507679799987-c73779587ccf",
    "page_title": "Dr. Cəbrayıl Abbasov",
    "ai_enabled": "true",
    "ai_provider": "gemini",
    "ai_model": "gemini-2.5-flash",
    "ai_system_prompt": "Sən Dr. Cəbrayıl Abbasov-un rəsmi saytının köməkçisisən. Yalnız Azərbaycan dilində və qısa, mehriban cavab ver. Səhiyyə biznesi məsləhətçiliyi, xəstəxana quruluşu, xidmətlər, layihələr və həkimlər haqqında sual verilə bilər. Aşağıda saytın aktual məzmununu tapa bilərsən — mümkün olduğunda ondan istifadə et. Əgər sual sənin bilmədiyin bir mövzudadırsa, müraciəti əlaqə formu vasitəsi ilə göndərməyi təklif et.",
}


async def seed_all(session: AsyncSession) -> None:
    # Settings
    for k, v in DEFAULT_SETTINGS.items():
        res = await session.execute(select(Setting).where(Setting.key == k))
        if res.scalar_one_or_none() is None:
            session.add(Setting(key=k, value=v))

    # Pills
    if (await session.execute(select(Pill))).first() is None:
        for i, label in enumerate(PILLS_LEFT):
            session.add(Pill(side="left", label=label, order=i))
        for i, label in enumerate(PILLS_RIGHT):
            session.add(Pill(side="right", label=label, order=i))

    if (await session.execute(select(TimelineItem))).first() is None:
        for i, t in enumerate(TIMELINE):
            session.add(TimelineItem(period=t["period"], title=t["title"], bullets=t["bullets"], order=i))

    if (await session.execute(select(Service))).first() is None:
        for i, title in enumerate(SERVICES):
            session.add(Service(title=title, content=LONG_TEXT, order=i))

    if (await session.execute(select(Project))).first() is None:
        for i in range(9):
            session.add(Project(
                title="Medi Art Hospital",
                address="Bakı şəhəri. Mərdəkan,",
                street="Yesenin küçəsi 12",
                image=HOSPITAL_IMGS[i % len(HOSPITAL_IMGS)],
                order=i,
            ))

    if (await session.execute(select(BlogPost))).first() is None:
        for i, t in enumerate(BLOG_TITLES):
            session.add(BlogPost(title=t, content=LONG_TEXT,
                                 image=HOSPITAL_IMGS[i % len(HOSPITAL_IMGS)], order=i))

    if (await session.execute(select(Doctor))).first() is None:
        for i in range(8):
            session.add(Doctor(
                name="Abbasov Cəbrayıl", specialty="Terapevt",
                education=LONG_TEXT, diseases=LONG_TEXT, image=DOCTOR_IMG, order=i,
            ))

    await session.commit()
