summaryrefslogtreecommitdiff
path: root/src/services/types.ts
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2021-03-26 01:56:04 +0300
committereug-vs <eug-vs@keemail.me>2021-03-26 01:56:04 +0300
commitef742ea9b2f246f74eae74169675a331679ad41c (patch)
tree693e92f3e6c2897038875550a12bbc1191b6d5c0 /src/services/types.ts
parent865b41114060765308d560181f4996c0aa7a3e74 (diff)
downloadcommercel-ui-ef742ea9b2f246f74eae74169675a331679ad41c.tar.gz
feat: add strong typing where possible
Diffstat (limited to 'src/services/types.ts')
-rw-r--r--src/services/types.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/services/types.ts b/src/services/types.ts
new file mode 100644
index 0000000..e6e01db
--- /dev/null
+++ b/src/services/types.ts
@@ -0,0 +1,40 @@
+interface BaseModel {
+ _id: string;
+ createdAt: string;
+ updatedAt: string;
+}
+
+export interface Contractor extends BaseModel {
+ name: string;
+ vatId: string;
+ debt: number;
+}
+
+export interface Product extends BaseModel {
+ name: string;
+ description: string;
+ price: number;
+ quantity: number;
+}
+
+export interface Transfer extends BaseModel {
+ date: string;
+ operation: 'in' | 'out';
+ contractorId: string;
+ amount: number;
+ contractor?: Contractor;
+}
+
+export interface Waybill extends BaseModel {
+ date: string;
+ operation: 'in' | 'out';
+ status: 'waiting' | 'executed' | 'cancelled';
+ contractorId: string;
+ contractor?: Contractor;
+ records: {
+ productId: string;
+ price: number;
+ quantity: number;
+ }[];
+ total: number;
+}