diff options
author | eug-vs <eug-vs@keemail.me> | 2021-03-26 01:56:04 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2021-03-26 01:56:04 +0300 |
commit | ef742ea9b2f246f74eae74169675a331679ad41c (patch) | |
tree | 693e92f3e6c2897038875550a12bbc1191b6d5c0 /src/services/types.ts | |
parent | 865b41114060765308d560181f4996c0aa7a3e74 (diff) | |
download | commercel-ui-ef742ea9b2f246f74eae74169675a331679ad41c.tar.gz |
feat: add strong typing where possible
Diffstat (limited to 'src/services/types.ts')
-rw-r--r-- | src/services/types.ts | 40 |
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; +} |