system-praktyk-front/src/data/report.ts
2020-12-30 21:22:23 +01:00

38 lines
896 B
TypeScript

import { Multilingual } from "@/data/common";
interface PredefinedChoices {
choices: Multilingual<string>[];
}
export interface BaseField {
name: string;
description: Multilingual<string>;
label: Multilingual<string>;
}
export interface TextField extends BaseField {
type: "text";
value: string | null;
}
export interface MultiChoiceField extends BaseField, PredefinedChoices {
type: "multi-choice";
value: Multilingual<string>[] | null;
}
export interface SingleChoiceField extends BaseField, PredefinedChoices {
type: "single-choice";
value: Multilingual<string> | null
}
export interface SelectField extends BaseField, PredefinedChoices {
type: "select";
value: Multilingual<string> | null
}
export type ReportField = TextField | MultiChoiceField | SingleChoiceField | SelectField;
export interface Report {
fields: ReportField[];
}