94 lines
1.8 KiB
TypeScript
94 lines
1.8 KiB
TypeScript
|
declare namespace FG {
|
||
|
interface Notification {
|
||
|
id: number;
|
||
|
plugin: string;
|
||
|
text: string;
|
||
|
data?: any;
|
||
|
time: Date;
|
||
|
}
|
||
|
interface User {
|
||
|
userid: string;
|
||
|
display_name: string;
|
||
|
firstname: string;
|
||
|
lastname: string;
|
||
|
mail: string;
|
||
|
birthday?: Date;
|
||
|
roles: Array<string>;
|
||
|
permissions?: Array<string>;
|
||
|
avatar_url?: string;
|
||
|
}
|
||
|
interface Session {
|
||
|
expires: Date;
|
||
|
token: string;
|
||
|
lifetime: number;
|
||
|
browser: string;
|
||
|
platform: string;
|
||
|
userid: string;
|
||
|
}
|
||
|
type Permission = string;
|
||
|
interface Role {
|
||
|
id: number;
|
||
|
name: string;
|
||
|
permissions: Array<Permission>;
|
||
|
}
|
||
|
interface Drink {
|
||
|
id: number;
|
||
|
article_id?: string;
|
||
|
package_size?: number;
|
||
|
name: string;
|
||
|
volume?: number;
|
||
|
cost_per_volume?: number;
|
||
|
cost_per_package?: number;
|
||
|
uuid: string;
|
||
|
receipt?: Array<string>;
|
||
|
tags?: Array<Tag>;
|
||
|
type?: DrinkType;
|
||
|
volumes: Array<DrinkPriceVolume>;
|
||
|
}
|
||
|
interface DrinkIngredient {
|
||
|
id: number;
|
||
|
volume: number;
|
||
|
ingredient_id: number;
|
||
|
cost_per_volume: number;
|
||
|
name: string;
|
||
|
}
|
||
|
interface DrinkPrice {
|
||
|
id: number;
|
||
|
price: number;
|
||
|
volume: DrinkPriceVolume;
|
||
|
public: boolean;
|
||
|
description?: string;
|
||
|
}
|
||
|
interface DrinkPriceVolume {
|
||
|
id: number;
|
||
|
drink: Drink;
|
||
|
volume: number;
|
||
|
min_prices: Array<MinPrices>;
|
||
|
prices: Array<DrinkPrice>;
|
||
|
ingredients: Array<Ingredient>;
|
||
|
}
|
||
|
interface DrinkType {
|
||
|
id: number;
|
||
|
name: string;
|
||
|
}
|
||
|
interface ExtraIngredient {
|
||
|
id: number;
|
||
|
name: string;
|
||
|
price: number;
|
||
|
}
|
||
|
interface Ingredient {
|
||
|
id: number;
|
||
|
drink_ingredient?: DrinkIngredient;
|
||
|
extra_ingredient?: ExtraIngredient;
|
||
|
}
|
||
|
interface MinPrices {
|
||
|
percentage: number;
|
||
|
price: number;
|
||
|
}
|
||
|
interface Tag {
|
||
|
id: number;
|
||
|
name: string;
|
||
|
color: string;
|
||
|
}
|
||
|
}
|