From ef742ea9b2f246f74eae74169675a331679ad41c Mon Sep 17 00:00:00 2001
From: eug-vs <eug-vs@keemail.me>
Date: Fri, 26 Mar 2021 01:56:04 +0300
Subject: feat: add strong typing where possible

---
 src/services/types.ts | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 src/services/types.ts

(limited to 'src/services/types.ts')

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;
+}
-- 
cgit v1.2.3