63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
// TODO všechno v tomto souboru jsou duplicity se serverem, ale aktuálně nevím jaký je nejlepší způsob jejich sdílení
|
|
|
|
export interface PizzaSize {
|
|
size: string, // velikost pizzy, např. "30cm"
|
|
pizzaPrice: number, // cena samotné pizzy
|
|
boxPrice: number, // cena krabice
|
|
price: number, // celková cena (pizza + krabice)
|
|
}
|
|
|
|
/** Jedna konkrétní pizza */
|
|
export interface Pizza {
|
|
name: string, // název pizzy
|
|
ingredients: string[], // seznam ingrediencí
|
|
sizes: PizzaSize[], // dostupné velikosti pizzy
|
|
}
|
|
|
|
/** Objednávka jedné konkrétní pizzy */
|
|
export interface PizzaOrder {
|
|
name: string, // název pizzy
|
|
size: string, // velikost pizzy jako string (30cm)
|
|
price: number, // cena pizzy v Kč, včetně krabice
|
|
}
|
|
|
|
/** Celková objednávka jednoho člověka */
|
|
export interface Order {
|
|
customer: string, // jméno objednatele
|
|
pizzaList: PizzaOrder[], // seznam objednaných pizz
|
|
totalPrice: number, // celková cena všech objednaných pizz a krabic
|
|
}
|
|
|
|
export interface Choices {
|
|
[location: string]: string[],
|
|
}
|
|
|
|
/** Údaje o Pizza day. */
|
|
export interface PizzaDay {
|
|
state: State,
|
|
creator: string,
|
|
orders: Order[]
|
|
}
|
|
|
|
export interface ClientData {
|
|
date: string, // dnešní datum pro zobrazení
|
|
isWeekend: boolean, // příznak zda je dnešní den víkend
|
|
choices: Choices, // seznam voleb
|
|
pizzaDay?: PizzaDay, // údaje o pizza day, pokud je pro dnešek založen
|
|
}
|
|
|
|
export enum Locations {
|
|
SLADOVNICKA = 'Sladovnická',
|
|
UMOTLIKU = 'U Motlíků',
|
|
TECHTOWER = 'TechTower',
|
|
SPSE = 'SPŠE',
|
|
VLASTNI = 'Mám vlastní',
|
|
OBJEDNAVAM = 'Objednávám',
|
|
NEOBEDVAM = 'Neobědvám',
|
|
}
|
|
|
|
export enum State {
|
|
NOT_CREATED, // Pizza day nebyl založen
|
|
CREATED, // Pizza day je založen
|
|
LOCKED // Objednávky uzamčeny
|
|
} |