import type { RiskClass, Role } from '../engine/types';
import type { LText } from '../i18n/types';

/** Checklisten-Item in Quellform (lokalisiert). */
export interface ContentItemSrc {
  readonly id: string;
  readonly label: LText;
  readonly legalRef: string;
  readonly hint?: LText;
}

/** Pflicht in Quellform (lokalisiert). */
export interface ObligationSrc {
  readonly id: string;
  readonly title: LText;
  readonly articles: string;
  readonly description: LText;
  readonly deadline: string;
  readonly roles: readonly Role[];
  readonly riskClasses: readonly RiskClass[];
}

/** Geltungsfrist in Quellform (lokalisiert). */
export interface DeadlineSrc {
  readonly id: string;
  readonly date: string;
  readonly label: LText;
  readonly description: LText;
}

/** Nationales Modul in Quellform (lokalisiert). */
export interface NationalPackSrc {
  readonly code: string;
  readonly country: LText;
  readonly authority: LText;
  readonly items: readonly ObligationSrc[];
}
