tt-entities 0.0.49 → 0.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,11 @@
1
1
  import {
2
- Table, Column, Model, ForeignKey, BelongsTo,
3
- HasMany, DataType,
2
+ Table,
3
+ Column,
4
+ Model,
5
+ ForeignKey,
6
+ BelongsTo,
7
+ HasMany,
8
+ DataType,
4
9
  } from 'sequelize-typescript';
5
10
  import { User } from './user.entity';
6
11
  import { Store } from './store.entity';
@@ -143,6 +148,26 @@ export class Order extends Model {
143
148
  @Column({ type: DataType.DATE, allowNull: true })
144
149
  declare deliveredAt?: Date;
145
150
 
151
+ @Column({
152
+ type: DataType.ENUM(
153
+ 'none',
154
+ 'pending_bank_refund',
155
+ 'wallet_credited',
156
+ 'bank_refunded',
157
+ ),
158
+ defaultValue: 'none',
159
+ })
160
+ declare refundStatus: string;
161
+
162
+ @Column({ type: DataType.BOOLEAN, defaultValue: false })
163
+ declare cashCollected: boolean;
164
+
165
+ @Column({ type: DataType.DATE, allowNull: true })
166
+ declare cashCollectedAt?: Date;
167
+
168
+ @Column({ allowNull: true })
169
+ declare cashCollectedBy?: number;
170
+
146
171
  // ── Notes ─────────────────────────────────────────────────────────────────────
147
172
  @Column({ type: DataType.TEXT, allowNull: true })
148
173
  declare customerNotes?: string;
@@ -0,0 +1,75 @@
1
+ import {
2
+ Table,
3
+ Column,
4
+ Model,
5
+ ForeignKey,
6
+ BelongsTo,
7
+ DataType,
8
+ } from 'sequelize-typescript';
9
+ import { Order } from './order.entity';
10
+ import { User } from './user.entity';
11
+ import { SysUser } from './sys.user.entity';
12
+
13
+ export enum RefundMethod {
14
+ WALLET = 'wallet',
15
+ BANK = 'bank',
16
+ }
17
+ export enum RefundStatus {
18
+ PENDING = 'pending',
19
+ PROCESSING = 'processing',
20
+ REFUNDED = 'refunded',
21
+ FAILED = 'failed',
22
+ }
23
+
24
+ @Table
25
+ export class Refund extends Model {
26
+ @ForeignKey(() => Order)
27
+ @Column({ allowNull: false })
28
+ declare orderId: number;
29
+
30
+ @ForeignKey(() => User)
31
+ @Column({ allowNull: true })
32
+ declare userId?: number;
33
+
34
+ @Column({ type: DataType.DECIMAL(10, 3), allowNull: false })
35
+ declare amount: number;
36
+
37
+ @Column({ allowNull: false, defaultValue: 'KWD' })
38
+ declare currency: string;
39
+
40
+ @Column({
41
+ type: DataType.ENUM(...Object.values(RefundMethod)),
42
+ allowNull: false,
43
+ })
44
+ declare method: RefundMethod;
45
+
46
+ @Column({
47
+ type: DataType.ENUM(...Object.values(RefundStatus)),
48
+ defaultValue: RefundStatus.PENDING,
49
+ })
50
+ declare status: RefundStatus;
51
+
52
+ @Column({ allowNull: true })
53
+ declare refundReference?: string;
54
+
55
+ @Column({ type: DataType.TEXT, allowNull: true })
56
+ declare notes?: string;
57
+
58
+ @Column({ type: DataType.DATE, allowNull: true })
59
+ declare processedAt?: Date;
60
+
61
+ @ForeignKey(() => SysUser)
62
+ @Column({ allowNull: true })
63
+ declare processedBy?: number;
64
+
65
+ @ForeignKey(() => SysUser)
66
+ @Column({ allowNull: true })
67
+ declare createdBy?: number;
68
+
69
+ @BelongsTo(() => Order) declare order: Order;
70
+ @BelongsTo(() => User) declare user?: User;
71
+ @BelongsTo(() => SysUser, { foreignKey: 'processedBy', as: 'processor' })
72
+ declare processor?: SysUser;
73
+ @BelongsTo(() => SysUser, { foreignKey: 'createdBy', as: 'creator' })
74
+ declare creator?: SysUser;
75
+ }
@@ -77,6 +77,7 @@ import { UserTransaction } from './entities/user-transaction.entity';
77
77
  import { PurchaseOrderOrderItem } from './entities/purchase-order-order-item.entity';
78
78
  import { RunSheet } from './entities/run-sheet.entity';
79
79
  import { RunSheetOrder } from './entities/run-sheet-order.entity';
80
+ import { Refund } from './entities/refund.entity';
80
81
 
81
82
  // =============================================================================
82
83
  // EXPORTS
@@ -109,6 +110,9 @@ export {
109
110
  RunSheetOrderStatus,
110
111
  } from './entities/run-sheet-order.entity';
111
112
 
113
+ export { Refund, RefundMethod, RefundStatus } from './entities/refund.entity';
114
+
115
+
112
116
  // ─── Catalogue ────────────────────────────────────────────────────────────────
113
117
  export { Category } from './entities/category.entity';
114
118
  export { Brand } from './entities/brand.entity';
@@ -291,5 +295,7 @@ export function getDbModels(): ModelCtor[] {
291
295
 
292
296
  RunSheet,
293
297
  RunSheetOrder,
298
+
299
+ Refund
294
300
  ];
295
301
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tt-entities",
3
- "version": "0.0.49",
3
+ "version": "0.0.50",
4
4
  "description": "Tatayab entities library",
5
5
  "main": "dist/libs/tatayab-entities-library/index.js",
6
6
  "types": "dist/libs/tatayab-entities-library/index.d.ts",