import exp from "constants"; export interface Choices { [location: string]: string[], } /** Velikost konkrétní pizzy */ export interface PizzaSize { varId: number, // unikátní ID varianty pizzy 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 { varId: number, // unikátní ID varianty pizzy 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 } /** Stav pizza dne */ export enum PizzaDayState { NOT_CREATED, // Pizza day nebyl založen CREATED, // Pizza day je založen LOCKED, // Objednávky uzamčeny ORDERED, // Pizzy objednány DELIVERED // Pizzy doručeny } /** Informace o pizza day pro dnešní den */ interface PizzaDay { state: PizzaDayState, // stav pizza dne creator: string, // jméno zakladatele orders: Order[], // seznam objednávek jednotlivých lidí } /** Veškerá data pro zobrazení na klientovi */ export interface ClientData { date: string, // dnešní datum pro zobrazení isWeekend: boolean, // příznak, zda je dnes víkend choices: Choices, // seznam voleb pizzaDay?: PizzaDay, // pizza day pro dnešní den, pokud existuje } 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 UdalostEnum{ ZAHAJENA_PIZZA="Zahájen pizza day", OBJEDNANA_PIZZA="Objednána pizza" } export interface NotififaceInput{ udalost:UdalostEnum, user:string, } export interface NotifikaceData{ input:NotififaceInput, gotify?:boolean, teams?:boolean, }