Deduplikace typů a sloučení kontejnerů
- Zavedení yarn workspaces - Sloučení klienta a serveru do jednoho Docker kontejneru - Společný dockerfile, builder - Zbavení se nginx (není již potřeba)
This commit is contained in:
106
types/Types.ts
Normal file
106
types/Types.ts
Normal file
@@ -0,0 +1,106 @@
|
||||
/** Výčtový typ pro restaurace, pro které umíme získat a parsovat obědové menu. */
|
||||
export enum Restaurants {
|
||||
SLADOVNICKA = 'sladovnicka',
|
||||
UMOTLIKU = 'uMotliku',
|
||||
TECHTOWER = 'techTower',
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
/** Jídlo z obědového menu restaurace. */
|
||||
export interface Food {
|
||||
amount?: string, // množství standardní porce, např. 0,33l nebo 150g
|
||||
name: string, // název/popis jídla
|
||||
price: string, // cena ve formátu '135 Kč'
|
||||
isSoup: boolean, // příznak, zda se jedná o polévku
|
||||
}
|
||||
|
||||
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[];
|
||||
}
|
||||
1
types/index.ts
Normal file
1
types/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './Types';
|
||||
15
types/tsconfig.json
Normal file
15
types/tsconfig.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
// "emitDeclarationOnly": true,
|
||||
// "outDir": "./dist",
|
||||
"noEmit": true
|
||||
},
|
||||
"include": [
|
||||
"index.ts",
|
||||
"Types.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user