38 lines
896 B
TypeScript
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[];
|
|
}
|