gros-bras-shared
Version:
This holds all shared files such as interfaces or helpers used by Gros Bras, both frontoffices and baackoffices, and backend etc...
74 lines (73 loc) • 1.74 kB
TypeScript
import { IImage, ISeoInfos } from '.';
interface ILabelValue {
value: string;
label: string;
image?: IImage;
meta_infos?: IExtraInformation[];
}
export interface IRadioChoice extends ILabelValue {
default?: boolean;
}
export interface ICheckboxChoice extends ILabelValue {
checked?: boolean;
}
export interface IExtraInformation {
line?: boolean;
select?: {
key: string;
label: string;
inline?: boolean;
helpText?: string;
placeholder?: string;
choices: ILabelValue[];
validation?: any;
};
radio?: {
label: string;
key: string;
in_box?: boolean;
allows_other?: boolean;
choices: IRadioChoice[];
validation?: any;
};
input?: {
key: string;
type: 'text' | 'number' | 'textarea';
label: string;
inline?: boolean;
placeholder?: string;
helpText?: string;
validation?: any;
default?: string | number;
append?: {
label: string;
};
};
checkbox?: {
key: string;
label: string;
in_box?: boolean;
choices: ICheckboxChoice[];
validation?: any;
allows_other?: boolean;
};
}
export interface IService {
image: IImage;
title: string;
slug: string;
has_destination: boolean;
description: string;
pricing: {
intro: string;
text: string;
};
seo: {
defalut: ISeoInfos;
pricing?: ISeoInfos;
booking?: ISeoInfos;
description?: ISeoInfos;
};
extra_informations: IExtraInformation[];
}
export {};