-
Notifications
You must be signed in to change notification settings - Fork 1
/
types.d.ts
81 lines (71 loc) · 1.69 KB
/
types.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
export interface IUserSagraRolesDoc {
name: string;
roles: string[];
}
export interface IStorage {
storageCourses: IStorageCourse[];
}
export interface IStorageCourse extends ICourse {
dishes: IStorageDish[];
isInstant: boolean;
}
export interface ICourse {
courseName: string;
kitchen: string;
}
export interface IInstantOrderCourse extends ICourse {
dishes: IDish[];
}
export interface IOrderCourse extends ICourse {
dishes: IOrderDish[];
note: string;
}
export interface IService {
start: Date | null;
end: Date | null;
totalRevenue: number;
totalInstantRevenue: number;
totalPeople: number; // total number of people
lastOrderNum: number; // progressive counter for orders
totalInstantOrders: number;
totalOrders: number;
startingDishes: IDish[];
}
interface IDish {
shortName: string;
qt: number;
}
export interface IOrderDish extends IDish {
price: number;
}
export interface IStorageDish extends IOrderDish {
name: string;
isInMenu: boolean;
}
export type OrderStatus = "pending" | "active" | "completed" | "deleted";
export interface IOrder {
orderNum: number;
status: OrderStatus;
waiterName: string; // display name of waiter
waiterId: string; // id of waiter to link
tableNum: number;
revenue: number;
note?: string;
}
export interface IDBOrder extends IOrder {
orderId: string;
}
export type CourseStatus = "wait" | "prep" | "ready" | "delivered" | "deleted";
export interface IDBCourse extends ICourse {
courseId?: string;
dishes: IDish[];
orderNum: number;
status: CourseStatus;
note: string;
tableNum: number | null;
waiterId: string | null;
}
interface IInstantOrder {
revenue: number;
courses: IInstantOrderCourse[];
}