export type TFeeScheduleCountryCode = string; export type TFeeScheduleDataStatus = | 'federal-law-fee-data' | 'federal-law-rules-only' | 'external-source-pending'; export type TFeeScheduleRowType = 'fee-entry' | 'fee-table-row'; export interface IFeeSchedule { id: string; countryCode: TFeeScheduleCountryCode; area: string; abbreviation: string; description: string; } export interface ICountryFeeScheduleCatalog { countryCode: TFeeScheduleCountryCode; countryName: string; schedules: IFeeSchedule[]; } export interface IFeeScheduleSource { name: string; url: string; pageUrl?: string; retrievedAt: string; sourceFileName?: string; officialAbbreviation?: string; legalAbbreviation?: string; title?: string; issuedAt?: string; statusNotes?: string[]; } export interface IFeeScheduleFeeRow { id: string; scheduleId: string; rowType: TFeeScheduleRowType; rowIndex: number; code?: string; description?: string; cells: string[]; points?: number; amountEur?: number; sourceNormId?: string; } export interface IFeeScheduleRuleSection { id: string; scheduleId: string; sourceNormId: string; reference: string; title?: string; text: string; } export interface IFeeScheduleData { scheduleId: string; dataStatus: TFeeScheduleDataStatus; edition: string; source: IFeeScheduleSource; feeRows: IFeeScheduleFeeRow[]; ruleSections: IFeeScheduleRuleSection[]; notes: string[]; } export interface IFeeSchedulePayload { schemaVersion: number; generatedAt?: string; catalogs: ICountryFeeScheduleCatalog[]; scheduleData: IFeeScheduleData[]; }