Uživatelé mohou v nastavení konfigurovat vlastní webhook URL/topic pro Discord, MS Teams a ntfy, a zvolit události k odběru. Notifikace jsou odesílány pouze uživatelům se stejnou zvolenou lokalitou.
1030 lines
24 KiB
TypeScript
1030 lines
24 KiB
TypeScript
// This file is auto-generated by @hey-api/openapi-ts
|
|
|
|
/**
|
|
* Klientský JWT token pro autentizaci a autorizaci
|
|
*/
|
|
export type JwtToken = {
|
|
/**
|
|
* Přihlašovací jméno uživatele
|
|
*/
|
|
login: string;
|
|
/**
|
|
* Příznak, zda se jedná o uživatele ověřeného doménovým přihlášením
|
|
*/
|
|
trusted: boolean;
|
|
/**
|
|
* Časové razítko vydání tokenu
|
|
*/
|
|
iat: number;
|
|
};
|
|
|
|
/**
|
|
* Klientská data pro jeden konkrétní den. Obsahuje menu všech načtených podniků a volby jednotlivých uživatelů.
|
|
*/
|
|
export type ClientData = {
|
|
todayDayIndex: DayIndex;
|
|
/**
|
|
* Human-readable datum dne
|
|
*/
|
|
date: string;
|
|
/**
|
|
* Příznak, zda je tento den víkend
|
|
*/
|
|
isWeekend: boolean;
|
|
dayIndex?: DayIndex;
|
|
choices: LunchChoices;
|
|
menus?: RestaurantDayMenuMap;
|
|
pizzaDay?: PizzaDay;
|
|
/**
|
|
* Seznam dostupných pizz pro předaný den
|
|
*/
|
|
pizzaList?: Array<Pizza>;
|
|
/**
|
|
* Datum a čas poslední aktualizace pizz
|
|
*/
|
|
pizzaListLastUpdate?: string;
|
|
/**
|
|
* Nevyřízené QR kódy pro platbu z předchozích pizza day
|
|
*/
|
|
pendingQrs?: Array<PendingQr>;
|
|
};
|
|
|
|
/**
|
|
* Konkrétní volba stravování jednoho uživatele v konkrétní den. Může se jednat jak o stravovací podnik, tak možnosti "budu objednávat", "neobědvám" apod.
|
|
*/
|
|
export type UserLunchChoice = {
|
|
/**
|
|
* Příznak, zda byla tato volba provedena uživatelem ověřeným doménovým přihlášením
|
|
*/
|
|
trusted?: boolean;
|
|
/**
|
|
* Pole indexů vybraných jídel v rámci dané restaurace. Index představuje pořadí jídla v menu dané restaurace.
|
|
*/
|
|
selectedFoods?: Array<number>;
|
|
/**
|
|
* Čas preferovaného odchodu do dané restaurace v human-readable formátu (např. 12:00)
|
|
*/
|
|
departureTime?: string;
|
|
/**
|
|
* Volitelná, veřejně viditelná uživatelská poznámka k vybrané volbě
|
|
*/
|
|
note?: string;
|
|
/**
|
|
* Příznak, zda je tento uživatel objednatelem pro stav "Budu objednávat"
|
|
*/
|
|
isBuyer?: boolean;
|
|
};
|
|
|
|
/**
|
|
* Objekt, kde klíčem je možnost stravování ((#LunchChoice)) a hodnotou množina uživatelů s touto volbou ((#LunchChoices)).
|
|
*/
|
|
export type LocationLunchChoicesMap = {
|
|
[key: string]: UserLunchChoice;
|
|
};
|
|
|
|
/**
|
|
* Objekt, představující volby všech uživatelů pro konkrétní den. Klíčem je (#LunchChoice).
|
|
*/
|
|
export type LunchChoices = {
|
|
SLADOVNICKA?: LocationLunchChoicesMap;
|
|
TECHTOWER?: LocationLunchChoicesMap;
|
|
ZASTAVKAUMICHALA?: LocationLunchChoicesMap;
|
|
SENKSERIKOVA?: LocationLunchChoicesMap;
|
|
SPSE?: LocationLunchChoicesMap;
|
|
PIZZA?: LocationLunchChoicesMap;
|
|
OBJEDNAVAM?: LocationLunchChoicesMap;
|
|
NEOBEDVAM?: LocationLunchChoicesMap;
|
|
ROZHODUJI?: LocationLunchChoicesMap;
|
|
};
|
|
|
|
/**
|
|
* Stravovací zařízení (restaurace, jídelna, hospoda, ...)
|
|
*/
|
|
export type Restaurant = 'SLADOVNICKA' | 'TECHTOWER' | 'ZASTAVKAUMICHALA' | 'SENKSERIKOVA';
|
|
|
|
/**
|
|
* Stravovací zařízení (restaurace, jídelna, hospoda, ...)
|
|
*/
|
|
export const Restaurant = {
|
|
SLADOVNICKA: 'SLADOVNICKA',
|
|
TECHTOWER: 'TECHTOWER',
|
|
ZASTAVKAUMICHALA: 'ZASTAVKAUMICHALA',
|
|
SENKSERIKOVA: 'SENKSERIKOVA'
|
|
} as const;
|
|
|
|
/**
|
|
* Konkrétní možnost stravování (konkrétní restaurace, pizza day, objednání, neobědvání, rozhodování se, ...)
|
|
*/
|
|
export type LunchChoice = 'SLADOVNICKA' | 'TECHTOWER' | 'ZASTAVKAUMICHALA' | 'SENKSERIKOVA' | 'SPSE' | 'PIZZA' | 'OBJEDNAVAM' | 'NEOBEDVAM' | 'ROZHODUJI';
|
|
|
|
/**
|
|
* Konkrétní možnost stravování (konkrétní restaurace, pizza day, objednání, neobědvání, rozhodování se, ...)
|
|
*/
|
|
export const LunchChoice = {
|
|
SLADOVNICKA: 'SLADOVNICKA',
|
|
TECHTOWER: 'TECHTOWER',
|
|
ZASTAVKAUMICHALA: 'ZASTAVKAUMICHALA',
|
|
SENKSERIKOVA: 'SENKSERIKOVA',
|
|
SPSE: 'SPSE',
|
|
PIZZA: 'PIZZA',
|
|
OBJEDNAVAM: 'OBJEDNAVAM',
|
|
NEOBEDVAM: 'NEOBEDVAM',
|
|
ROZHODUJI: 'ROZHODUJI'
|
|
} as const;
|
|
|
|
/**
|
|
* Index dne v týdnu (0 = pondělí, 4 = pátek)
|
|
*/
|
|
export type DayIndex = number;
|
|
|
|
/**
|
|
* Pořadový index jídla v menu konkrétní restaurace
|
|
*/
|
|
export type FoodIndex = number;
|
|
|
|
/**
|
|
* Konkrétní jídlo z menu restaurace
|
|
*/
|
|
export type Food = {
|
|
/**
|
|
* Množství standardní porce, např. 0,33l nebo 150g
|
|
*/
|
|
amount?: string;
|
|
/**
|
|
* Název/popis jídla
|
|
*/
|
|
name: string;
|
|
/**
|
|
* Cena ve formátu '135 Kč'
|
|
*/
|
|
price?: string;
|
|
/**
|
|
* Příznak, zda se jedná o polévku
|
|
*/
|
|
isSoup: boolean;
|
|
/**
|
|
* Seznam čísel alergenů obsažených v jídle
|
|
*/
|
|
allergens?: Array<number>;
|
|
};
|
|
|
|
/**
|
|
* Menu restaurace na konkrétní den
|
|
*/
|
|
export type RestaurantDayMenu = {
|
|
/**
|
|
* UNIX timestamp poslední aktualizace menu
|
|
*/
|
|
lastUpdate?: number;
|
|
/**
|
|
* Příznak, zda je daný podnik v daný den zavřený
|
|
*/
|
|
closed?: boolean;
|
|
/**
|
|
* Seznam jídel pro daný den
|
|
*/
|
|
food?: Array<Food>;
|
|
/**
|
|
* Seznam varování o kvalitě/úplnosti dat menu
|
|
*/
|
|
warnings?: Array<string>;
|
|
};
|
|
|
|
/**
|
|
* Objekt, kde klíčem je podnik ((#Restaurant)) a hodnotou denní menu daného podniku ((#RestaurantDayMenu))
|
|
*/
|
|
export type RestaurantDayMenuMap = {
|
|
SLADOVNICKA?: RestaurantDayMenu;
|
|
TECHTOWER?: RestaurantDayMenu;
|
|
ZASTAVKAUMICHALA?: RestaurantDayMenu;
|
|
SENKSERIKOVA?: RestaurantDayMenu;
|
|
};
|
|
|
|
/**
|
|
* Pole týdenních menu jednotlivých podniků. Indexem je den v týdnu (0 = pondělí, 4 = pátek), hodnotou denní menu daného podniku.
|
|
*/
|
|
export type WeekMenu = [
|
|
RestaurantDayMenuMap,
|
|
RestaurantDayMenuMap,
|
|
RestaurantDayMenuMap,
|
|
RestaurantDayMenuMap,
|
|
RestaurantDayMenuMap
|
|
];
|
|
|
|
/**
|
|
* Preferovaný čas odchodu na oběd
|
|
*/
|
|
export type DepartureTime = '10:00' | '10:15' | '10:30' | '10:45' | '11:00' | '11:15' | '11:30' | '11:45' | '12:00' | '12:15' | '12:30' | '12:45' | '13:00';
|
|
|
|
/**
|
|
* Preferovaný čas odchodu na oběd
|
|
*/
|
|
export const DepartureTime = {
|
|
T10_00: '10:00',
|
|
T10_15: '10:15',
|
|
T10_30: '10:30',
|
|
T10_45: '10:45',
|
|
T11_00: '11:00',
|
|
T11_15: '11:15',
|
|
T11_30: '11:30',
|
|
T11_45: '11:45',
|
|
T12_00: '12:00',
|
|
T12_15: '12:15',
|
|
T12_30: '12:30',
|
|
T12_45: '12:45',
|
|
T13_00: '13:00'
|
|
} as const;
|
|
|
|
export type FeatureRequest = 'Ruční generování QR kódů mimo Pizza day (např. při objednávání)' | 'Možnost označovat si jídla jako oblíbená (taková jídla by se uživateli následně zvýrazňovala)' | 'Možnost úhrady v podniku za všechny jednou osobou a následné generování QR ostatním' | 'Zrušení \\"užívejte víkend\\", místo toho umožnit zpětně náhled na uplynulý týden' | 'Umožnění zobrazení vygenerovaného QR kódu i po následující dny (dokud ho uživatel ručně \\"nezavře\\", např. tlačítkem \\"Zaplatil jsem\\")' | 'Zobrazování náhledů (fotografií) pizz v rámci Pizza day' | 'Statistiky (nejoblíbenější podnik, nejpopulárnější jídla, nejobjednávanější pizzy, nejčastější uživatelé, ...)' | 'Vylepšení responzivního designu' | 'Zvýšení zabezpečení aplikace' | 'Zvýšená ochrana proti chybám uživatele (potvrzovací dialogy, překliky, ...)' | 'Celkové vylepšení UI/UX' | 'Zlepšení dokumentace/postupů pro ostatní vývojáře';
|
|
|
|
export const FeatureRequest = {
|
|
CUSTOM_QR: 'Ruční generování QR kódů mimo Pizza day (např. při objednávání)',
|
|
FAVORITES: 'Možnost označovat si jídla jako oblíbená (taková jídla by se uživateli následně zvýrazňovala)',
|
|
SINGLE_PAYMENT: 'Možnost úhrady v podniku za všechny jednou osobou a následné generování QR ostatním',
|
|
NO_WEEKENDS: 'Zrušení \\"užívejte víkend\\", místo toho umožnit zpětně náhled na uplynulý týden',
|
|
QR_FOREVER: 'Umožnění zobrazení vygenerovaného QR kódu i po následující dny (dokud ho uživatel ručně \\"nezavře\\", např. tlačítkem \\"Zaplatil jsem\\")',
|
|
PIZZA_PICTURES: 'Zobrazování náhledů (fotografií) pizz v rámci Pizza day',
|
|
STATISTICS: 'Statistiky (nejoblíbenější podnik, nejpopulárnější jídla, nejobjednávanější pizzy, nejčastější uživatelé, ...)',
|
|
RESPONSIVITY: 'Vylepšení responzivního designu',
|
|
SECURITY: 'Zvýšení zabezpečení aplikace',
|
|
SAFETY: 'Zvýšená ochrana proti chybám uživatele (potvrzovací dialogy, překliky, ...)',
|
|
UI: 'Celkové vylepšení UI/UX',
|
|
DEVELOPMENT: 'Zlepšení dokumentace/postupů pro ostatní vývojáře'
|
|
} as const;
|
|
|
|
/**
|
|
* Statistiky hlasování - klíčem je název funkce, hodnotou počet hlasů
|
|
*/
|
|
export type VotingStats = {
|
|
[key: string]: number;
|
|
};
|
|
|
|
/**
|
|
* Data pro zobrazení easter eggů ssss
|
|
*/
|
|
export type EasterEgg = {
|
|
path: string;
|
|
url: string;
|
|
startOffset: number;
|
|
endOffset: number;
|
|
duration: number;
|
|
width?: string;
|
|
zIndex?: number;
|
|
position?: 'absolute';
|
|
animationName?: string;
|
|
animationDuration?: string;
|
|
animationTimingFunction?: string;
|
|
};
|
|
|
|
/**
|
|
* Objekt, kde klíčem je zvolená možnost a hodnotou počet uživatelů, kteří tuto možnosti zvolili
|
|
*/
|
|
export type LocationStats = {
|
|
SLADOVNICKA?: number;
|
|
TECHTOWER?: number;
|
|
ZASTAVKAUMICHALA?: number;
|
|
SENKSERIKOVA?: number;
|
|
SPSE?: number;
|
|
PIZZA?: number;
|
|
OBJEDNAVAM?: number;
|
|
NEOBEDVAM?: number;
|
|
ROZHODUJI?: number;
|
|
};
|
|
|
|
/**
|
|
* Statistika vybraných možností pro jeden konkrétní den
|
|
*/
|
|
export type DailyStats = {
|
|
/**
|
|
* Datum v human-readable formátu
|
|
*/
|
|
date: string;
|
|
locations: LocationStats;
|
|
};
|
|
|
|
/**
|
|
* Pole statistik vybraných možností pro jeden konkrétní týden. Index představuje den v týdnu (0 = pondělí, 4 = pátek)
|
|
*/
|
|
export type WeeklyStats = [
|
|
DailyStats,
|
|
DailyStats,
|
|
DailyStats,
|
|
DailyStats,
|
|
DailyStats
|
|
];
|
|
|
|
/**
|
|
* Stav pizza day
|
|
*/
|
|
export type PizzaDayState = 'Pizza day nebyl založen' | 'Pizza day je založen' | 'Objednávky uzamčeny' | 'Pizzy objednány' | 'Pizzy doručeny';
|
|
|
|
/**
|
|
* Stav pizza day
|
|
*/
|
|
export const 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'
|
|
} as const;
|
|
|
|
/**
|
|
* Údaje o konkrétní variantě pizzy
|
|
*/
|
|
export type PizzaSize = {
|
|
/**
|
|
* Unikátní identifikátor varianty pizzy
|
|
*/
|
|
varId: number;
|
|
/**
|
|
* Velikost pizzy, např. "30cm"
|
|
*/
|
|
size: string;
|
|
/**
|
|
* Cena samotné pizzy v Kč
|
|
*/
|
|
pizzaPrice: number;
|
|
/**
|
|
* Cena krabice pizzy v Kč
|
|
*/
|
|
boxPrice: number;
|
|
/**
|
|
* Celková cena (pizza + krabice)
|
|
*/
|
|
price: number;
|
|
};
|
|
|
|
/**
|
|
* Údaje o konkrétní pizze.
|
|
*/
|
|
export type Pizza = {
|
|
/**
|
|
* Název pizzy
|
|
*/
|
|
name: string;
|
|
/**
|
|
* Seznam obsažených ingrediencí
|
|
*/
|
|
ingredients: Array<string>;
|
|
/**
|
|
* Dostupné velikosti pizzy
|
|
*/
|
|
sizes: Array<PizzaSize>;
|
|
};
|
|
|
|
/**
|
|
* Konkrétní varianta (velikost) jedné pizzy.
|
|
*/
|
|
export type PizzaVariant = {
|
|
/**
|
|
* Unikátní identifikátor varianty pizzy
|
|
*/
|
|
varId: number;
|
|
/**
|
|
* Název pizzy
|
|
*/
|
|
name: string;
|
|
/**
|
|
* Velikost pizzy (např. "30cm")
|
|
*/
|
|
size: string;
|
|
/**
|
|
* Cena pizzy v Kč, včetně krabice
|
|
*/
|
|
price: number;
|
|
};
|
|
|
|
/**
|
|
* Údaje o objednávce pizzy jednoho uživatele.
|
|
*/
|
|
export type PizzaOrder = {
|
|
/**
|
|
* Jméno objednávajícího uživatele
|
|
*/
|
|
customer: string;
|
|
/**
|
|
* Seznam variant pizz k objednání (typicky bývá jen jedna)
|
|
*/
|
|
pizzaList?: Array<PizzaVariant>;
|
|
/**
|
|
* Příplatek (např. za extra ingredience)
|
|
*/
|
|
fee?: {
|
|
/**
|
|
* Popis příplatku (např. "kuřecí maso navíc")
|
|
*/
|
|
text?: string;
|
|
/**
|
|
* Cena příplatku v Kč
|
|
*/
|
|
price?: number;
|
|
};
|
|
/**
|
|
* Celková cena všech objednaných pizz daného uživatele, včetně krabic a příplatků
|
|
*/
|
|
totalPrice: number;
|
|
/**
|
|
* Příznak, pokud je k této objednávce vygenerován QR kód pro platbu. To je typicky pravda, pokud:
|
|
* - objednávající má v nastavení vyplněno číslo účtu
|
|
* - pizza day je ve stavu DELIVERED (Pizzy byly doručeny)
|
|
*
|
|
*/
|
|
hasQr: unknown;
|
|
/**
|
|
* Volitelná uživatelská poznámka pro objednávajícího (např. "bez oliv")
|
|
*/
|
|
note?: string;
|
|
};
|
|
|
|
/**
|
|
* Data o Pizza day pro konkrétní den
|
|
*/
|
|
export type PizzaDay = {
|
|
state?: PizzaDayState;
|
|
/**
|
|
* Jméno zakladatele pizza day
|
|
*/
|
|
creator?: string;
|
|
/**
|
|
* Pole objednávek jednotlivých uživatelů
|
|
*/
|
|
orders?: Array<PizzaOrder>;
|
|
};
|
|
|
|
export type UdalostEnum = 'Zahájen pizza day' | 'Objednána pizza' | 'Jdeme na oběd';
|
|
|
|
export const UdalostEnum = {
|
|
ZAHAJENA_PIZZA: 'Zahájen pizza day',
|
|
OBJEDNANA_PIZZA: 'Objednána pizza',
|
|
JDEME_NA_OBED: 'Jdeme na oběd'
|
|
} as const;
|
|
|
|
export type NotifikaceInput = {
|
|
udalost: UdalostEnum;
|
|
user: string;
|
|
};
|
|
|
|
export type NotifikaceData = {
|
|
input: NotifikaceInput;
|
|
gotify?: boolean;
|
|
teams?: boolean;
|
|
ntfy?: boolean;
|
|
};
|
|
|
|
export type GotifyServer = {
|
|
server: string;
|
|
api_keys: Array<string>;
|
|
};
|
|
|
|
/**
|
|
* Nastavení notifikací pro konkrétního uživatele
|
|
*/
|
|
export type NotificationSettings = {
|
|
/**
|
|
* Téma (topic) pro ntfy notifikace. Pokud je prázdné, ntfy notifikace jsou vypnuty.
|
|
*/
|
|
ntfyTopic?: string;
|
|
/**
|
|
* URL Discord webhooku. Pokud je prázdné, Discord notifikace jsou vypnuty.
|
|
*/
|
|
discordWebhookUrl?: string;
|
|
/**
|
|
* URL MS Teams webhooku. Pokud je prázdné, Teams notifikace jsou vypnuty.
|
|
*/
|
|
teamsWebhookUrl?: string;
|
|
/**
|
|
* Události, pro které chce uživatel dostávat notifikace
|
|
*/
|
|
enabledEvents?: Array<UdalostEnum>;
|
|
};
|
|
|
|
export type GetNotificationSettingsData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/notifications/settings';
|
|
};
|
|
|
|
export type GetNotificationSettingsResponses = {
|
|
200: NotificationSettings;
|
|
};
|
|
|
|
export type GetNotificationSettingsResponse = GetNotificationSettingsResponses[keyof GetNotificationSettingsResponses];
|
|
|
|
export type UpdateNotificationSettingsData = {
|
|
body: NotificationSettings;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/notifications/settings';
|
|
};
|
|
|
|
export type UpdateNotificationSettingsResponses = {
|
|
200: NotificationSettings;
|
|
};
|
|
|
|
export type LoginData = {
|
|
body?: {
|
|
/**
|
|
* Přihlašovací jméno uživatele. Vyžadováno pouze pokud není předáno pomocí hlaviček.
|
|
*/
|
|
login?: string;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/login';
|
|
};
|
|
|
|
export type LoginResponses = {
|
|
/**
|
|
* Přihlášení bylo úspěšné
|
|
*/
|
|
200: JwtToken;
|
|
};
|
|
|
|
export type LoginResponse = LoginResponses[keyof LoginResponses];
|
|
|
|
export type GetPizzaQrData = {
|
|
body?: never;
|
|
path?: never;
|
|
query: {
|
|
/**
|
|
* Přihlašovací jméno uživatele, pro kterého bude vrácen QR kód
|
|
*/
|
|
login: string;
|
|
};
|
|
url: '/qr';
|
|
};
|
|
|
|
export type GetPizzaQrResponses = {
|
|
/**
|
|
* Vygenerovaný QR kód pro platbu
|
|
*/
|
|
200: Blob | File;
|
|
};
|
|
|
|
export type GetPizzaQrResponse = GetPizzaQrResponses[keyof GetPizzaQrResponses];
|
|
|
|
export type GetDataData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: {
|
|
/**
|
|
* Index dne v týdnu. Pokud není předán, je použit aktuální den.
|
|
*/
|
|
dayIndex?: number;
|
|
};
|
|
url: '/data';
|
|
};
|
|
|
|
export type GetDataResponses = {
|
|
/**
|
|
* Aktuální data pro klienta
|
|
*/
|
|
200: ClientData;
|
|
};
|
|
|
|
export type GetDataResponse = GetDataResponses[keyof GetDataResponses];
|
|
|
|
export type AddChoiceData = {
|
|
body: {
|
|
locationKey: LunchChoice;
|
|
dayIndex?: DayIndex;
|
|
foodIndex?: FoodIndex;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/addChoice';
|
|
};
|
|
|
|
export type AddChoiceResponses = {
|
|
/**
|
|
* Aktuální data pro klienta
|
|
*/
|
|
200: ClientData;
|
|
};
|
|
|
|
export type AddChoiceResponse = AddChoiceResponses[keyof AddChoiceResponses];
|
|
|
|
export type RemoveChoiceData = {
|
|
body: {
|
|
foodIndex: FoodIndex;
|
|
locationKey: LunchChoice;
|
|
dayIndex?: DayIndex;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/removeChoice';
|
|
};
|
|
|
|
export type RemoveChoiceResponses = {
|
|
/**
|
|
* Aktuální data pro klienta
|
|
*/
|
|
200: ClientData;
|
|
};
|
|
|
|
export type RemoveChoiceResponse = RemoveChoiceResponses[keyof RemoveChoiceResponses];
|
|
|
|
export type UpdateNoteData = {
|
|
body: {
|
|
dayIndex?: DayIndex;
|
|
note?: string;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/updateNote';
|
|
};
|
|
|
|
export type UpdateNoteResponses = {
|
|
/**
|
|
* Aktuální data pro klienta
|
|
*/
|
|
200: ClientData;
|
|
};
|
|
|
|
export type UpdateNoteResponse = UpdateNoteResponses[keyof UpdateNoteResponses];
|
|
|
|
export type RemoveChoicesData = {
|
|
body: {
|
|
locationKey: LunchChoice;
|
|
dayIndex?: DayIndex;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/removeChoices';
|
|
};
|
|
|
|
export type RemoveChoicesResponses = {
|
|
/**
|
|
* Aktuální data pro klienta
|
|
*/
|
|
200: ClientData;
|
|
};
|
|
|
|
export type RemoveChoicesResponse = RemoveChoicesResponses[keyof RemoveChoicesResponses];
|
|
|
|
export type ChangeDepartureTimeData = {
|
|
body: {
|
|
dayIndex?: DayIndex;
|
|
time?: DepartureTime;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/changeDepartureTime';
|
|
};
|
|
|
|
export type ChangeDepartureTimeResponses = {
|
|
/**
|
|
* Aktuální data pro klienta
|
|
*/
|
|
200: ClientData;
|
|
};
|
|
|
|
export type ChangeDepartureTimeResponse = ChangeDepartureTimeResponses[keyof ChangeDepartureTimeResponses];
|
|
|
|
export type JdemeObedData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/jdemeObed';
|
|
};
|
|
|
|
export type JdemeObedResponses = {
|
|
/**
|
|
* Notifikace byly odeslány.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type SetBuyerData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/food/updateBuyer';
|
|
};
|
|
|
|
export type SetBuyerResponses = {
|
|
/**
|
|
* Stav byl úspěšně změněn.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type CreatePizzaDayData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/create';
|
|
};
|
|
|
|
export type CreatePizzaDayResponses = {
|
|
/**
|
|
* Pizza day byl založen.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type DeletePizzaDayData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/delete';
|
|
};
|
|
|
|
export type DeletePizzaDayResponses = {
|
|
/**
|
|
* Pizza day byl smazán.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type LockPizzaDayData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/lock';
|
|
};
|
|
|
|
export type LockPizzaDayResponses = {
|
|
/**
|
|
* Pizza day byl uzamčen.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type UnlockPizzaDayData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/unlock';
|
|
};
|
|
|
|
export type UnlockPizzaDayResponses = {
|
|
/**
|
|
* Pizza day byl odemčen.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type FinishOrderData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/finishOrder';
|
|
};
|
|
|
|
export type FinishOrderResponses = {
|
|
/**
|
|
* Pizza day byl přepnut do stavu "Pizzy objednány".
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type FinishDeliveryData = {
|
|
body: {
|
|
/**
|
|
* Číslo bankovního účtu objednávajícího
|
|
*/
|
|
bankAccount?: string;
|
|
/**
|
|
* Jméno majitele bankovního účtu
|
|
*/
|
|
bankAccountHolder?: string;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/finishDelivery';
|
|
};
|
|
|
|
export type FinishDeliveryResponses = {
|
|
/**
|
|
* Pizza day byl přepnut do stavu "Pizzy doručeny".
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type AddPizzaData = {
|
|
body: {
|
|
/**
|
|
* Index pizzy v nabídce
|
|
*/
|
|
pizzaIndex: number;
|
|
/**
|
|
* Index velikosti pizzy v nabídce variant
|
|
*/
|
|
pizzaSizeIndex: number;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/add';
|
|
};
|
|
|
|
export type AddPizzaResponses = {
|
|
/**
|
|
* Přidání pizzy do objednávky proběhlo úspěšně.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type RemovePizzaData = {
|
|
body: {
|
|
pizzaOrder: PizzaVariant;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/remove';
|
|
};
|
|
|
|
export type RemovePizzaResponses = {
|
|
/**
|
|
* Odstranění pizzy z objednávky proběhlo úspěšně.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type UpdatePizzaDayNoteData = {
|
|
body: {
|
|
/**
|
|
* Poznámka k objednávkám pizz, např "bez oliv".
|
|
*/
|
|
note?: string;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/updatePizzaDayNote';
|
|
};
|
|
|
|
export type UpdatePizzaDayNoteResponses = {
|
|
/**
|
|
* Nastavení poznámky k objednávkám pizz proběhlo úspěšně.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type UpdatePizzaFeeData = {
|
|
body: {
|
|
/**
|
|
* Login cíleného uživatele
|
|
*/
|
|
login: string;
|
|
/**
|
|
* Textový popis přirážky/slevy
|
|
*/
|
|
text?: string;
|
|
/**
|
|
* Částka přirážky/slevy v Kč
|
|
*/
|
|
price?: number;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/updatePizzaFee';
|
|
};
|
|
|
|
export type UpdatePizzaFeeResponses = {
|
|
/**
|
|
* Nastavení přirážky/slevy proběhlo úspěšně.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type GetEasterEggData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/easterEggs';
|
|
};
|
|
|
|
export type GetEasterEggResponses = {
|
|
200: EasterEgg;
|
|
};
|
|
|
|
export type GetEasterEggResponse = GetEasterEggResponses[keyof GetEasterEggResponses];
|
|
|
|
export type GetEasterEggImageData = {
|
|
body?: never;
|
|
path: {
|
|
/**
|
|
* URL easter eggu
|
|
*/
|
|
url: string;
|
|
};
|
|
query?: never;
|
|
url: '/easterEggs/{url}';
|
|
};
|
|
|
|
export type GetEasterEggImageResponses = {
|
|
200: Blob | File;
|
|
};
|
|
|
|
export type GetEasterEggImageResponse = GetEasterEggImageResponses[keyof GetEasterEggImageResponses];
|
|
|
|
export type GetStatsData = {
|
|
body?: never;
|
|
path?: never;
|
|
query: {
|
|
/**
|
|
* Počáteční datum pro načtení statistik
|
|
*/
|
|
startDate: string;
|
|
/**
|
|
* Koncové datum pro načtení statistik
|
|
*/
|
|
endDate: string;
|
|
};
|
|
url: '/stats';
|
|
};
|
|
|
|
export type GetStatsResponses = {
|
|
/**
|
|
* Statistiky způsobu stravování. Každý prvek v poli představuje statistiky pro jeden den z předaného rozsahu dat.
|
|
*/
|
|
200: WeeklyStats;
|
|
};
|
|
|
|
export type GetStatsResponse = GetStatsResponses[keyof GetStatsResponses];
|
|
|
|
export type GetVotesData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/voting/getVotes';
|
|
};
|
|
|
|
export type GetVotesResponses = {
|
|
200: Array<FeatureRequest>;
|
|
};
|
|
|
|
export type GetVotesResponse = GetVotesResponses[keyof GetVotesResponses];
|
|
|
|
export type UpdateVoteData = {
|
|
body: {
|
|
option: FeatureRequest;
|
|
/**
|
|
* True, pokud uživatel hlasoval pro, jinak false.
|
|
*/
|
|
active: boolean;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/voting/updateVote';
|
|
};
|
|
|
|
export type UpdateVoteResponses = {
|
|
/**
|
|
* Hlasování bylo úspěšně aktualizováno.
|
|
*/
|
|
200: unknown;
|
|
};
|
|
|
|
export type GetVotingStatsData = {
|
|
body?: never;
|
|
path?: never;
|
|
query?: never;
|
|
url: '/voting/stats';
|
|
};
|
|
|
|
export type GetVotingStatsResponses = {
|
|
200: VotingStats;
|
|
};
|
|
|
|
export type GetVotingStatsResponse = GetVotingStatsResponses[keyof GetVotingStatsResponses];
|
|
|
|
/**
|
|
* Informace o nevyřízeném QR kódu pro platbu
|
|
*/
|
|
export type PendingQr = {
|
|
/**
|
|
* Datum pizza day, ke kterému se QR kód vztahuje
|
|
*/
|
|
date: string;
|
|
/**
|
|
* Jméno zakladatele pizza day (příjemce platby)
|
|
*/
|
|
creator: string;
|
|
/**
|
|
* Celková částka k úhradě
|
|
*/
|
|
totalPrice: number;
|
|
};
|
|
|
|
export type DismissQrData = {
|
|
body: {
|
|
/**
|
|
* Datum pizza day, jehož QR kód se má označit jako uhrazený
|
|
*/
|
|
date: string;
|
|
};
|
|
path?: never;
|
|
query?: never;
|
|
url: '/pizzaDay/dismissQr';
|
|
};
|
|
|
|
export type DismissQrResponses = {
|
|
200: unknown;
|
|
};
|
|
|
|
export type ClientOptions = {
|
|
baseUrl: `${string}://${string}/api` | (string & {});
|
|
}; |