<?php

declare(strict_types=1);

namespace App\Models;

final class DemoData
{
    public static function user(): array
    {
        return [
            'name' => 'Иван Иванов',
            'email' => 'ivan@example.com',
            'score' => 84,
            'level' => 'Активен гражданин',
            'achievements' => ['Първи сигнал', 'ЗДОИ заявител', 'Проследени срокове'],
        ];
    }

    public static function categories(): array
    {
        return [
            'Дупка на пътя',
            'Тротоар',
            'Боклук',
            'Нерегламентирано сметище',
            'Улично осветление',
            'Дървета',
            'Незаконно строителство',
            'Шум',
            'Животни',
            'Вода',
            'Електричество',
            'Замърсяване',
            'Градски транспорт',
            'Корупция',
            'Друго',
        ];
    }

    public static function reports(): array
    {
        return [
            [
                'id' => 1258,
                'tracking_number' => 'CG-2026-1258',
                'title' => 'Дупка на улица',
                'description' => 'Голяма дупка на пътното платно, която създава опасност.',
                'category' => 'Дупка на пътя',
                'address' => 'ул. Иван Вазов 15, Пловдив',
                'municipality' => 'Пловдив',
                'institution' => 'Община Пловдив',
                'status' => 'in_progress',
                'created_at' => '2026-07-01',
                'deadline_at' => '2026-07-17',
                'days_left' => 5,
                'lat' => 42.142,
                'lng' => 24.749,
            ],
            [
                'id' => 1257,
                'tracking_number' => 'CG-2026-1257',
                'title' => 'Неработещо осветление',
                'description' => 'Лампите не работят от седмица.',
                'category' => 'Улично осветление',
                'address' => 'ул. Цар Борис III, Пловдив',
                'municipality' => 'Пловдив',
                'institution' => 'Община Пловдив',
                'status' => 'solved',
                'created_at' => '2026-06-26',
                'deadline_at' => '2026-07-11',
                'days_left' => 0,
                'lat' => 42.149,
                'lng' => 24.731,
            ],
            [
                'id' => 1256,
                'tracking_number' => 'CG-2026-1256',
                'title' => 'Боклук до контейнер',
                'description' => 'Контейнерите не са обслужени.',
                'category' => 'Боклук',
                'address' => 'ж.к. Тракия, до контейнер',
                'municipality' => 'Пловдив',
                'institution' => 'ОП Чистота',
                'status' => 'in_progress',
                'created_at' => '2026-06-25',
                'deadline_at' => '2026-07-14',
                'days_left' => 12,
                'lat' => 42.135,
                'lng' => 24.790,
            ],
            [
                'id' => 1255,
                'tracking_number' => 'CG-2026-1255',
                'title' => 'Незаконно строителство',
                'description' => 'Строеж без видима информационна табела.',
                'category' => 'Незаконно строителство',
                'address' => 'ул. Родопи 10, Пловдив',
                'municipality' => 'Пловдив',
                'institution' => 'ДНСК / Община Пловдив',
                'status' => 'unresolved',
                'created_at' => '2026-06-22',
                'deadline_at' => '2026-07-07',
                'days_left' => -3,
                'lat' => 42.127,
                'lng' => 24.715,
            ],
            [
                'id' => 1002,
                'tracking_number' => 'CG-2026-1002',
                'title' => 'Опасно дърво',
                'description' => 'Клоните са над пешеходна алея.',
                'category' => 'Дървета',
                'address' => 'парк Лаута, Пловдив',
                'municipality' => 'Пловдив',
                'institution' => 'Община Пловдив',
                'status' => 'in_progress',
                'created_at' => '2026-06-18',
                'deadline_at' => '2026-07-22',
                'days_left' => 20,
                'lat' => 42.139,
                'lng' => 24.782,
            ],
        ];
    }

    public static function institutions(): array
    {
        return [
            [
                'name' => 'Община Пловдив',
                'type' => 'Община',
                'email' => 'info@plovdiv.bg',
                'phone' => '032 123 456',
                'working_hours' => 'Понеделник - петък, 09:00 - 17:30',
                'portal' => 'https://plovdiv.bg/signals',
                'address' => 'пл. Стефан Стамболов 1, Пловдив',
                'website' => 'https://plovdiv.bg',
                'responsibilities' => 'Пътища, тротоари, осветление, чистота, зелени площи, общински услуги.',
                'deadline_days' => 30,
                'lat' => 42.141,
                'lng' => 24.749,
            ],
            [
                'name' => 'РИОСВ Пловдив',
                'type' => 'Контролен орган',
                'email' => 'riosv@plovdiv.bg',
                'phone' => '032 643 245',
                'working_hours' => 'Понеделник - петък, 09:00 - 17:00',
                'portal' => 'https://riosv-plovdiv.org',
                'address' => 'бул. Марица 122, Пловдив',
                'website' => 'https://riosv-plovdiv.org',
                'responsibilities' => 'Замърсяване, отпадъци, защитени територии, екологични нарушения.',
                'deadline_days' => 30,
                'lat' => 42.151,
                'lng' => 24.755,
            ],
            [
                'name' => 'Комисия за защита на потребителите',
                'type' => 'Национална институция',
                'email' => 'info@kzp.bg',
                'phone' => '0700 111 22',
                'working_hours' => 'Понеделник - петък, 09:00 - 17:30',
                'portal' => 'https://kzp.bg',
                'address' => 'гр. София',
                'website' => 'https://kzp.bg',
                'responsibilities' => 'Потребителски жалби, нелоялни практики, гаранции и онлайн покупки.',
                'deadline_days' => 30,
                'lat' => 42.697,
                'lng' => 23.321,
            ],
            [
                'name' => 'Агенция Пътна инфраструктура',
                'type' => 'Национална агенция',
                'email' => 'api@api.bg',
                'phone' => '0700 130 20',
                'working_hours' => 'Понеделник - петък, 09:00 - 17:30',
                'portal' => 'https://api.bg',
                'address' => 'бул. Македония 3, София',
                'website' => 'https://api.bg',
                'responsibilities' => 'Републиканска пътна мрежа, магистрали, пътна инфраструктура.',
                'deadline_days' => 30,
                'lat' => 42.692,
                'lng' => 23.319,
            ],
            [
                'name' => 'МВР',
                'type' => 'Министерство',
                'email' => 'press@mvr.bg',
                'phone' => '112',
                'working_hours' => 'Денонощно за спешни случаи',
                'portal' => 'https://mvr.bg',
                'address' => 'ул. 6-ти септември 29, София',
                'website' => 'https://mvr.bg',
                'responsibilities' => 'Обществен ред, спешни сигнали, полиция, нарушения на закона.',
                'deadline_days' => 30,
                'lat' => 42.697,
                'lng' => 23.327,
            ],
        ];
    }

    public static function statistics(): array
    {
        return [
            'overview' => [
                ['label' => 'Подадени сигнали', 'value' => '42 318', 'trend' => '+12% този месец', 'icon' => 'bi-graph-up-arrow', 'tone' => 'green'],
                ['label' => 'Решени сигнали', 'value' => '31 902', 'trend' => '75% от всички', 'icon' => 'bi-check2-circle', 'tone' => 'green'],
                ['label' => 'Просрочени отговори', 'value' => '8 041', 'trend' => '19% от всички', 'icon' => 'bi-clock-history', 'tone' => 'red'],
                ['label' => 'Институции', 'value' => '418', 'trend' => 'Активни в системата', 'icon' => 'bi-bank', 'tone' => 'blue'],
            ],
            'municipalities' => [
                ['name' => 'Пловдив', 'count' => 3241],
                ['name' => 'София', 'count' => 2812],
                ['name' => 'Варна', 'count' => 2341],
                ['name' => 'Бургас', 'count' => 1892],
                ['name' => 'Русе', 'count' => 1234],
            ],
            'categories' => [
                ['name' => 'Пътища', 'count' => 36],
                ['name' => 'Чистота', 'count' => 24],
                ['name' => 'Осветление', 'count' => 18],
                ['name' => 'Строителство', 'count' => 12],
                ['name' => 'Друго', 'count' => 10],
            ],
            'deadlines' => [
                ['label' => 'Сигнал #1258', 'status' => 'Остават 5 дни', 'tone' => 'warning'],
                ['label' => 'ЗДОИ #2241', 'status' => 'Просрочен с 3 дни', 'tone' => 'danger'],
                ['label' => 'Сигнал #1240', 'status' => 'Остават 12 дни', 'tone' => 'warning'],
                ['label' => 'Петиция #11', 'status' => 'Остават 20 дни', 'tone' => 'success'],
            ],
        ];
    }

    public static function transparency(): array
    {
        return [
            ['institution' => 'Район Тракия, Пловдив', 'avg_response' => '8 дни', 'late_rate' => '6%', 'resolution_rate' => '91%', 'satisfaction' => '4.8'],
            ['institution' => 'Община Бургас', 'avg_response' => '12 дни', 'late_rate' => '10%', 'resolution_rate' => '86%', 'satisfaction' => '4.5'],
            ['institution' => 'Община Варна', 'avg_response' => '14 дни', 'late_rate' => '12%', 'resolution_rate' => '82%', 'satisfaction' => '4.2'],
            ['institution' => 'РИОСВ - Пловдив', 'avg_response' => '18 дни', 'late_rate' => '18%', 'resolution_rate' => '74%', 'satisfaction' => '3.8'],
            ['institution' => 'Община София', 'avg_response' => '22 дни', 'late_rate' => '23%', 'resolution_rate' => '68%', 'satisfaction' => '3.4'],
        ];
    }

    public static function handbook(): array
    {
        return [
            ['title' => 'Как да подадеш сигнал', 'category' => 'Сигнали', 'summary' => 'Опиши точно мястото, проблема, риска и какво действие очакваш.', 'icon' => 'bi-megaphone'],
            ['title' => 'Как да поискаш ЗДОИ', 'category' => 'Информация', 'summary' => 'Посочи институция, конкретна обществена информация и предпочитан канал за отговор.', 'icon' => 'bi-file-earmark-text'],
            ['title' => 'Административна жалба', 'category' => 'Обжалване', 'summary' => 'Използвай я при отказ, липса на действие или незаконосъобразен акт.', 'icon' => 'bi-shield-check'],
            ['title' => 'Мълчалив отказ', 'category' => 'Срокове', 'summary' => 'Следи срока и генерирай жалба, когато институцията не отговори навреме.', 'icon' => 'bi-hourglass-split'],
            ['title' => 'Петиции', 'category' => 'Общност', 'summary' => 'Създай ясна цел, събери подкрепа и следи публичен прогрес.', 'icon' => 'bi-people'],
            ['title' => 'Шаблони и образци', 'category' => 'Документи', 'summary' => 'Жалба, сигнал, заявление, възражение, декларация и пълномощно.', 'icon' => 'bi-folder2-open'],
        ];
    }

    public static function qrLinks(): array
    {
        return [
            ['label' => 'Община Пловдив', 'url' => 'https://plovdiv.bg/signals'],
            ['label' => 'РИОСВ Пловдив', 'url' => 'https://riosv-plovdiv.org'],
            ['label' => 'КЗП', 'url' => 'https://kzp.bg'],
            ['label' => 'МВР', 'url' => 'https://mvr.bg'],
            ['label' => 'НАП', 'url' => 'https://nra.bg'],
            ['label' => 'НОИ', 'url' => 'https://nssi.bg'],
        ];
    }

    public static function documentTemplates(): array
    {
        return [
            'Сигнал',
            'Жалба',
            'Петиция',
            'Възражение',
            'Административна жалба',
            'Съдебна жалба',
            'Жалба при мълчалив отказ',
            'Искане за информация',
            'Становище',
            'Пълномощно',
            'Декларация',
        ];
    }
}
