export type Toepassingsgebied = "federaal" | "Vlaanderen" | "Wallonië" | "Brussel";

export type Thema =
  | "vastgoed"
  | "erfrecht"
  | "familie"
  | "vennootschap"
  | "belasting"
  | "hypotheek"
  | "procedure"
  | "beroep"
  | "ereloon";

export const themaLabels: Record<Thema, string> = {
  vastgoed: "Vastgoed",
  erfrecht: "Erfrecht",
  familie: "Familie",
  vennootschap: "Vennootschap",
  belasting: "Belasting",
  hypotheek: "Hypotheek",
  procedure: "Procedure",
  beroep: "Notarieel beroep",
  ereloon: "Ereloon & Kosten",
};

export interface Artikel {
  id: string;
  nummer: string;
  titel?: string;
  tekst: string;
  volledigeTekst?: string;
  trefwoorden: string[];
  gewijzigd?: string;
}

export interface StatischeWet {
  id: string;
  code: string;
  naam: string;
  volledigeNaam: string;
  toepassingsgebied: Toepassingsgebied;
  themas: Thema[];
  bron: string;
  versie: string;
  artikels: Artikel[];
}

export interface GebruikersWet {
  id: string;
  code: string;
  naam: string;
  volledigeNaam: string;
  toepassingsgebied: Toepassingsgebied;
  themas: Thema[];
  bron: string;
  versie: string;
  artikels: Artikel[];
  isGebruiker: true;
}

export type Wet = StatischeWet | GebruikersWet;

export interface Annotatie {
  id: string;
  wetId: string;
  artikelId: string;
  tekst: string;
  aangemaakt: string;
  aangepast: string;
}

export const toepassingsgebiedKleur: Record<Toepassingsgebied, string> = {
  federaal: "bg-indigo-100 text-indigo-700 border-indigo-200",
  Vlaanderen: "bg-yellow-100 text-yellow-700 border-yellow-200",
  Wallonië: "bg-red-100 text-red-700 border-red-200",
  Brussel: "bg-purple-100 text-purple-700 border-purple-200",
};

export const toepassingsgebieden: Toepassingsgebied[] = ["federaal", "Vlaanderen", "Wallonië", "Brussel"];
