// 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
}