export type ReleaseChangeType = 'major' | 'feature' | 'fix'

export interface ReleaseNoteItem {
  type: ReleaseChangeType
  title: string
  description: string
}

export interface ReleaseVersionEntry {
  version: string
  buildVersion?: string
  buildDateLabel: string
  releaseType: ReleaseChangeType
  summary: string
  notes: ReleaseNoteItem[]
}

export interface VersionRule {
  pattern: string
  label: string
  description: string
}

export const semanticVersion = '0.1.0'
export const buildVersion = import.meta.env.VITE_BUILD_VERSION?.trim() || semanticVersion
export const buildDateLabel = import.meta.env.VITE_BUILD_DATE?.trim() || '29.06.2026'

export const versionRules: VersionRule[] = [
  {
    pattern: 'x.0.0',
    label: 'Major Changes',
    description: 'Grosse Umbauten, Breaking Changes oder Releases, die sich wie ein neues Kapitel anfuehlen.',
  },
  {
    pattern: '0.x.0',
    label: 'Neue Features',
    description: 'Neue Funktionen, groessere UI-Flows oder sichtbare Produktverbesserungen.',
  },
  {
    pattern: '0.0.x',
    label: 'Minor & Bugfixes',
    description: 'Kleine Verbesserungen, Bugfixes, Copy-Polish und unkritische Feinschliffe.',
  },
]

export const releaseVersions: ReleaseVersionEntry[] = [
  {
    version: semanticVersion,
    buildVersion,
    buildDateLabel,
    releaseType: 'feature',
    summary: 'Feature-Release mit neuem Admin-Cockpit, Voting- und Gewinner-Workflows, Landingpage-Polish, Workflow-Regeln und robusterer Deploy-Basis.',
    notes: [
      {
        type: 'feature',
        title: 'Admin-Dashboard als Cockpit ausgebaut',
        description: 'Das Dashboard zeigt jetzt Readiness, Public Health, Queue-Lage, Timeline und Top-Kategorien kompakter an einem Ort.',
      },
      {
        type: 'feature',
        title: 'Voting hat eine eigene Admin-Seite',
        description: 'Der neue Voting-Bereich bringt Kategoriebaum, Vote-Status und Leaderboard-Modal in einen klareren Arbeitsfluss.',
      },
      {
        type: 'feature',
        title: 'Gewinnerverwaltung wurde neu strukturiert',
        description: 'Gewinner lassen sich in einem Baum-Workspace setzen, pruefen und mit Workflow-Status besser fuer die Veroeffentlichung vorbereiten.',
      },
      {
        type: 'feature',
        title: 'Workflow-Regeln pro Saison sind sichtbarer',
        description: 'Award-Workflow-Regeln fuer Kandidaturen, Gewinnerplaetze, Clip-Link-Pflicht und Hinweise werden einheitlicher dargestellt und gesteuert.',
      },
      {
        type: 'feature',
        title: 'Content Hub erweitert',
        description: 'Awards, Stream-Banner, Social Links, Landing-Extras, Footer-Inhalte und Datenschutztexte sind klarer im Adminbereich gepflegt.',
      },
      {
        type: 'feature',
        title: 'Showact-Bewerbungen sind flexibler',
        description: 'Der Showact-Flow unterstuetzt dynamische Formularfelder, Zeitfenster und bessere Admin-Konfiguration.',
      },
      {
        type: 'feature',
        title: 'Landingpage wirkt fertiger',
        description: 'Hero, Kategorien, Timeline, Extras, Support-Footer und Gewinner-Showcase wurden visuell ueberarbeitet und staerker mit Backend-Daten verbunden.',
      },
      {
        type: 'feature',
        title: 'Voting-Animation fuehlt sich lebendiger an',
        description: 'Beim Vote gleitet nun eine laengere Lichtwelle ueber die ganze Card, begleitet von mehr Sternen und weicheren Kurven.',
      },
      {
        type: 'feature',
        title: 'Archiv-Cards verlinken direkt weiter',
        description: 'Gewinner im Archiv koennen direkt ueber die Card geoeffnet werden, waehrend die Plattform weiterhin sichtbar bleibt.',
      },
      {
        type: 'feature',
        title: 'Team-Rechte sind genauer steuerbar',
        description: 'Teamrollen koennen ueber eine eigene Rechte-Ansicht besser nachvollzogen und verwaltet werden.',
      },
      {
        type: 'feature',
        title: 'Twitch Login ist live',
        description: 'Login und Account-Verknuepfung laufen jetzt ueber den offiziellen Twitch OAuth Flow.',
      },
      {
        type: 'feature',
        title: 'Team-Accounts koennen Twitch verbinden',
        description: 'Teammitglieder koennen ihren Account mit Twitch verknuepfen, wieder loesen und danach sauber ueber Twitch einsteigen.',
      },
      {
        type: 'feature',
        title: 'Team-Status aktualisiert sich automatisch',
        description: 'In der Teamverwaltung siehst du regelmaessig, wer online ist. Die Ansicht aktualisiert sich alle 30 Sekunden.',
      },
      {
        type: 'feature',
        title: 'Moderation ist schneller bedienbar',
        description: 'Reviewed Nominierungen und Risiko-Queues lassen sich angenehmer mit Pfeiltasten und Tastatur bedienen.',
      },
      {
        type: 'feature',
        title: 'Admin-Bereiche wurden aufgeraeumt',
        description: 'Jahre, Landingpage, Risiko, Team, Analytics, Voting und Gewinner sind kompakter, klarer gruppiert und weniger erschlagend.',
      },
      {
        type: 'feature',
        title: 'Season-Setup wurde robuster',
        description: 'Saison-Erstellung, Uebersicht, Phasen, Kategorie-Gesundheit und Workflow-Status sind enger miteinander verbunden.',
      },
      {
        type: 'feature',
        title: 'Tracking- und Review-Hinweise sind besser eingebunden',
        description: 'Review-Notizen, Tracking-Status und optionale Hinweise laufen sichtbarer durch die Admin-Workflows.',
      },
      {
        type: 'feature',
        title: 'User-Profil wurde repariert und ueberarbeitet',
        description: 'Das Profil ist wieder ein echter Teil des Flows, inklusive Twitch-Verknuepfung und sauberem Account-Status.',
      },
      {
        type: 'feature',
        title: 'Besseres Feedback beim Bearbeiten',
        description: 'Buttons haben Animationen, Speichern/Bearbeiten gibt sichtbarere Rueckmeldung und Modals fuehlen sich stabiler an.',
      },
      {
        type: 'fix',
        title: 'Dropdowns sehen wieder korrekt aus',
        description: 'Das Dropdown-Design wurde stabilisiert und passt nun besser zum restlichen Admin-UI.',
      },
      {
        type: 'fix',
        title: 'Admin-Workspaces wurden gesplittet',
        description: 'Grosse Verwaltungsflaechen wurden in kleinere Komponenten und Composables zerlegt, damit sie wartbarer bleiben.',
      },
      {
        type: 'fix',
        title: 'Backend, Auth und Sicherheit wurden gehaertet',
        description: 'Sessions, Team-Rechte, Audit-Logs, Public Writes, Vote-Eindeutigkeit und Runtime-Settings wurden robuster gemacht.',
      },
      {
        type: 'fix',
        title: 'Migrationen und Seed-Daten wurden bereinigt',
        description: 'Die Datenbankbasis wurde konsolidiert, Demo-Szenarien klarer getrennt und alte Bootstrap-Pfade entfernt.',
      },
      {
        type: 'fix',
        title: 'Release- und Smoke-Dokumentation erweitert',
        description: 'Projekt-, Release- und End-to-End-Smoke-Dokumente beschreiben den aktuellen Deploy- und Pruefpfad genauer.',
      },
      {
        type: 'fix',
        title: 'Datenbank- und Deploy-Sicherheit verbessert',
        description: 'Healthchecks, Migrationen, Seed-Verhalten und produktionsnahe Konfiguration sind klarer sichtbar und weniger fehleranfaellig.',
      },
    ],
  },
]

export const releaseNotes: ReleaseNoteItem[] = releaseVersions[0]?.notes ?? []
