using Rozpisky.Models;
using Rozpisky.ViewModels;
namespace Rozpisky.Data;
///
/// Ukázková data, aby byl po spuštění vidět styl i tok dat. Rozděleno na dvě části:
/// = výchozí obsah sdílených číselníků (nasází se jen když
/// vedle .exe ještě není ciselniky.json), a = demo zakázka
/// (přílohy, revize) – čistě demo, přepíše se otevřením reálného projektu.
///
public static class DemoData
{
/// Výchozí obsah číselníků pro úplně první spuštění (než vznikne ciselniky.json).
public static void SeedCiselniky(Ciselniky c)
{
c.Organizace.Add(new Organizace { Nazev = "Správa železnic, s.o.", Adresa = "Dlážděná 1003/7, 110 00 Praha 1", Logo = "sprava_zeleznic.dxf" });
c.Organizace.Add(new Organizace { Nazev = "SŽ – Stavební správa západ", Adresa = "Sokolovská 1955/278, 190 00 Praha 9" });
c.Firmy.Add(new Firma { Nazev = "EXPROJEKT a.s.", Adresa = "Nekonečná 8, 182 00 Praha 8", Telefon = "+420 222 333 444", Email = "info@exprojekt.cz", Logo = "exprojekt.dxf" });
c.Firmy.Add(new Firma { Nazev = "SUDOP PRAHA a.s.", Adresa = "Olšanská 2643/1a, 130 80 Praha 3", Telefon = "+420 267 094 111", Email = "sudop@sudop.cz" });
c.Firmy.Add(new Firma { Nazev = "METROPROJEKT Praha a.s.", Adresa = "Argentinská 1621/36, 170 00 Praha 7", Telefon = "+420 296 154 111", Email = "info@metroprojekt.cz" });
foreach (var j in new[] { "Ing. Jan Novák", "Ing. Petr Svoboda", "Ing. Eva Dvořáková", "Ing. Pavel Černý" })
c.Jmena.Add(new Jmeno { Hodnota = j });
foreach (var v in new[] { "DOS", "DUR", "DSP", "PDPS", "DPS", "RDS" })
c.VerzeDokumentace.Add(new VerzeDokumentace { Hodnota = v });
c.Casti.Add(new Cast { Oznaceni = "D", Nazev = "Dokumentace objektů" });
c.Casti.Add(new Cast { Oznaceni = "E", Nazev = "Dokladová část" });
SeedKraje(c);
}
/// Výchozí seznam krajů ČR (14 krajů). Nasází se jen do prázdného číselníku – volá ho
/// jak první spuštění (), tak backfill starších ciselniky.json,
/// které kraje ještě neměly.
public static void SeedKraje(Ciselniky c)
{
if (c.Kraje.Count > 0) return;
foreach (var k in new[]
{
"Hlavní město Praha", "Středočeský", "Jihočeský", "Plzeňský", "Karlovarský",
"Ústecký", "Liberecký", "Královéhradecký", "Pardubický", "Kraj Vysočina",
"Jihomoravský", "Olomoucký", "Zlínský", "Moravskoslezský",
})
c.Kraje.Add(new Kraj { Nazev = k });
}
/// Demo zakázka (údaje projektu + pár příloh + revize). Reference do číselníků se
/// dohledávají podle hodnoty (FirstOrDefault), ať to funguje i s číselníky načtenými ze souboru.
public static void SeedProjekt(MainViewModel vm)
{
var c = vm.Ciselniky;
vm.Projekt.Stavba = "Modernizace traťového úseku Praha – Beroun";
vm.Projekt.HIP = "Ing. Jan Novák";
vm.Projekt.Skod = "S123456789X";
vm.Projekt.CisloZakazky = "2026-014";
vm.SelectedInvestor = c.Organizace.FirstOrDefault();
vm.SelectedSlozkaSZ = c.Organizace.Skip(1).FirstOrDefault() ?? c.Organizace.FirstOrDefault();
vm.SelectedStupen = c.VerzeDokumentace.FirstOrDefault(v => v.Hodnota == "DPS") ?? c.VerzeDokumentace.FirstOrDefault();
vm.SelectedZhotovitelSOD = c.Firmy.FirstOrDefault();
vm.Projekt.SmluvniDatumZpracovani = "2026-03-15";
// Loga financujících institucí (DXF ve složce loga\ vedle .exe).
vm.Projekt.Logo1Soubor = "eu_op_doprava.dxf"; // dotační (vlevo)
vm.Projekt.Logo2Soubor = "md_sfdi.dxf"; // státní (vpravo)
// Demo: navázat loga na vybranou organizaci/firmu, ať se v náhledu ukážou i loga 3/4/5.
// (Stávající ciselniky.json vzniklý před polem Logo ho má prázdný – doplníme, pokud chybí.)
if (vm.SelectedInvestor is { } inv && string.IsNullOrWhiteSpace(inv.Logo)) inv.Logo = "sprava_zeleznic.dxf";
if (vm.SelectedZhotovitelSOD is { } zh && string.IsNullOrWhiteSpace(zh.Logo)) zh.Logo = "exprojekt.dxf";
// Zhotovitel objektu = vybraná firma (aby se logo 5 spárovalo dle Priloha.ZhotovitelCasti).
string zhotovitelCasti = vm.SelectedZhotovitelSOD?.Nazev ?? "EXPROJEKT a.s.";
vm.Prilohy.Add(new Priloha
{
OznaceniCasti = "D", OznaceniDilciCasti = "D110", NazevObjektu = "Železniční svršek", CisloObjektu = "SO131.13.12.01",
TypPrilohy = "D.1", DilciPriloha = "1", PoradiPrilohy = "101",
NazevPrilohy = "Situace", Zkratka = "SIT", Vypracoval = "Ing. Petr Svoboda",
OdpovednyProjektant = "Ing. Jan Novák", R1 = "V00", KontrolovalR1 = "Ing. Pavel Černý",
ZhotovitelCasti = zhotovitelCasti, Meritko = "1:1000", Formaty = "4", Kraj = "Středočeský",
KatastralniUzemi = "viz textová část", Ltscale = "1.0", Ctb = "monochrome.ctb",
});
vm.Prilohy.Add(new Priloha
{
OznaceniCasti = "D", OznaceniDilciCasti = "D110", NazevObjektu = "Most v km 12,345", CisloObjektu = "SO201",
TypPrilohy = "D.1", DilciPriloha = "1", PoradiPrilohy = "201",
NazevPrilohy = "Podélný řez", Zkratka = "PR", Vypracoval = "Ing. Eva Dvořáková",
OdpovednyProjektant = "Ing. Jan Novák", R1 = "V00", KontrolovalR1 = "Ing. Pavel Černý",
ZhotovitelCasti = zhotovitelCasti, Meritko = "1:100", Formaty = "2", Kraj = "Středočeský",
KatastralniUzemi = "viz textová část", Ltscale = "1.0", Ctb = "monochrome.ctb",
});
vm.Revize.Add(new Revize { Cislo = "V00", Datum = "-", Popis = "Vyjádření, stanoviska, připomínky" });
vm.Revize.Add(new Revize { Cislo = "V01", Datum = "2026-03-15", Popis = "První vydání" });
}
}