93 lines
2.6 KiB
TypeScript
93 lines
2.6 KiB
TypeScript
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
|
|
hasQr?: boolean, // true, pokud je k objednávce vygenerován QR kód pro platbu
|
|
note?: string, // volitelná uživatelská poznámka k objednávce
|
|
}
|
|
|
|
/** 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',
|
|
PIZZA = 'Pizza day',
|
|
OBJEDNAVAM = 'Budu objednávat',
|
|
NEOBEDVAM = 'Mám vlastní/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,
|
|
}
|
|
|
|
export interface GotifyServer {
|
|
server: string;
|
|
api_keys: string[];
|
|
} |