@platform-modules/foreign-ministry 1.3.9 → 1.3.11

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.
Files changed (69) hide show
  1. package/.env +1 -1
  2. package/dist/data-source.js +12 -0
  3. package/dist/index.d.ts +10 -0
  4. package/dist/index.js +17 -1
  5. package/dist/models/DiplomaticClubCardApprovalModel.d.ts +16 -0
  6. package/dist/models/DiplomaticClubCardApprovalModel.js +58 -0
  7. package/dist/models/DiplomaticClubCardAttachmentModel.d.ts +9 -0
  8. package/dist/models/DiplomaticClubCardAttachmentModel.js +44 -0
  9. package/dist/models/DiplomaticClubCardChatModel.d.ts +7 -0
  10. package/dist/models/DiplomaticClubCardChatModel.js +36 -0
  11. package/dist/models/DiplomaticClubCardMemberModel.d.ts +13 -0
  12. package/dist/models/DiplomaticClubCardMemberModel.js +60 -0
  13. package/dist/models/DiplomaticClubCardRequestModel.d.ts +33 -0
  14. package/dist/models/DiplomaticClubCardRequestModel.js +98 -0
  15. package/dist/models/DiplomaticClubCardWorkFlowModel.d.ts +12 -0
  16. package/dist/models/DiplomaticClubCardWorkFlowModel.js +42 -0
  17. package/dist/models/DiplomaticServiceDetailsModel.d.ts +20 -0
  18. package/dist/models/DiplomaticServiceDetailsModel.js +65 -0
  19. package/dist/models/DiplomaticSettingsModel.d.ts +11 -0
  20. package/dist/models/DiplomaticSettingsModel.js +59 -0
  21. package/dist/models/DiplomaticTitleModel.d.ts +12 -0
  22. package/dist/models/DiplomaticTitleModel.js +45 -0
  23. package/dist/models/GatePassApprovalsModel.d.ts +33 -0
  24. package/dist/models/GatePassApprovalsModel.js +110 -0
  25. package/dist/models/GatePassAttachmentsModel.d.ts +16 -0
  26. package/dist/models/GatePassAttachmentsModel.js +60 -0
  27. package/dist/models/GatePassChatsModel.d.ts +26 -0
  28. package/dist/models/GatePassChatsModel.js +84 -0
  29. package/dist/models/GatePassRequestsModel.d.ts +46 -0
  30. package/dist/models/GatePassRequestsModel.js +148 -0
  31. package/dist/models/GatePassVisitorsModel.d.ts +27 -0
  32. package/dist/models/GatePassVisitorsModel.js +115 -0
  33. package/dist/models/GatePassWorkFlowModel.d.ts +33 -0
  34. package/dist/models/GatePassWorkFlowModel.js +93 -0
  35. package/dist/models/PassportRequestApprovalModel.d.ts +22 -0
  36. package/dist/models/PassportRequestApprovalModel.js +91 -0
  37. package/dist/models/PassportRequestAttachmentModel.d.ts +10 -0
  38. package/dist/models/PassportRequestAttachmentModel.js +54 -0
  39. package/dist/models/PassportRequestChatModel.d.ts +8 -0
  40. package/dist/models/PassportRequestChatModel.js +44 -0
  41. package/dist/models/PassportRequestDependentModel.d.ts +20 -0
  42. package/dist/models/PassportRequestDependentModel.js +85 -0
  43. package/dist/models/PassportRequestModel.d.ts +40 -0
  44. package/dist/models/PassportRequestModel.js +128 -0
  45. package/dist/models/PassportRequestWorkFlowModel.d.ts +15 -0
  46. package/dist/models/PassportRequestWorkFlowModel.js +60 -0
  47. package/dist/models/SubscriptionAmountModel.d.ts +67 -0
  48. package/dist/models/SubscriptionAmountModel.js +114 -0
  49. package/package.json +1 -1
  50. package/src/data-source.ts +12 -0
  51. package/src/index.ts +11 -0
  52. package/src/models/DiplomaticClubSubscriptionMasterModel.ts +26 -26
  53. package/src/models/DiplomaticRequestsModel.ts +157 -157
  54. package/src/models/GatePassApprovalsModel.ts +98 -0
  55. package/src/models/GatePassAttachmentsModel.ts +38 -0
  56. package/src/models/GatePassChatsModel.ts +72 -0
  57. package/src/models/GatePassRequestsModel.ts +139 -0
  58. package/src/models/GatePassVisitorsModel.ts +100 -0
  59. package/src/models/GatePassWorkFlowModel.ts +66 -0
  60. package/src/models/LeaveConfigModel.ts +71 -71
  61. package/src/models/MissionTravelApprovalModel.ts +100 -100
  62. package/src/models/MissionTravelAttachmentModel.ts +56 -56
  63. package/src/models/MissionTravelChatModel.ts +52 -52
  64. package/src/models/MissionTravelPersonModel.ts +105 -105
  65. package/src/models/MissionTravelWorkflowModel.ts +54 -54
  66. package/dist/models/MissionTravelClassConfigModel.d.ts +0 -10
  67. package/dist/models/MissionTravelClassConfigModel.js +0 -50
  68. package/dist/models/MissionTravelPerdiemModel.d.ts +0 -10
  69. package/dist/models/MissionTravelPerdiemModel.js +0 -54
@@ -0,0 +1,100 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Gate Pass Visitors Table
6
+ * Stores visitor information for each gate pass request
7
+ * One request can have multiple visitors
8
+ */
9
+ @Entity({ name: 'gate_pass_visitors' })
10
+ export class GatePassVisitors extends BaseModel {
11
+
12
+ @Column({ type: 'int', nullable: false })
13
+ gate_pass_request_id: number; // Foreign key to gate_pass_requests
14
+
15
+ @Column({ type: 'int', nullable: true })
16
+ service_id: number | null;
17
+
18
+ @Column({ type: 'int', nullable: true })
19
+ sub_service_id: number | null;
20
+
21
+ // Visitor Information Fields (from requirements)
22
+ @Column({ type: 'varchar', length: 255, nullable: false })
23
+ visitor_name: string; // اسم الزائر (Visitor Name)
24
+
25
+ @Column({ type: 'varchar', length: 255, nullable: true })
26
+ visitor_id_passport_no: string | null; // رقم هوية الزائر / جواز السفر (Visitor ID / Passport No)
27
+
28
+ @Column({ type: 'varchar', length: 255, nullable: true })
29
+ nationality: string | null; // الجنسية (Nationality)
30
+
31
+ @Column({ type: 'varchar', length: 255, nullable: true })
32
+ job_title: string | null; // الوظيفة (The Job)
33
+
34
+ @Column({ type: 'varchar', length: 255, nullable: true })
35
+ represented_entity: string | null; // الجهة التي يمثلها (The Represented Entity)
36
+
37
+ @Column({ type: 'varchar', length: 255, nullable: true })
38
+ visitor_email_address: string | null; // عنوان البريد الإلكتروني للزائر (Visitor email Address)
39
+
40
+ @Column({ type: 'varchar', length: 50, nullable: true })
41
+ visitor_mobile_number: string | null; // رقم هاتف الزائر (Visitor Mobile Number)
42
+
43
+ @Column({ type: 'varchar', length: 500, nullable: true })
44
+ visitor_photo_url: string | null; // صورة الزائر (Visitor Photo) - Required for Long Term Gate pass
45
+
46
+ @Column({ type: 'varchar', length: 255, nullable: true })
47
+ visitor_photo_file_name: string | null;
48
+
49
+ // QR Code for Gate Pass
50
+ @Column({ type: 'text', nullable: true })
51
+ qr_code_url: string | null; // QR code URL for this visitor (data URL can be 6000+ characters)
52
+
53
+ @Column({ type: 'text', nullable: true })
54
+ qr_code_data: string | null; // QR code data (JSON string)
55
+
56
+ // Gate Pass Generation
57
+ @Column({ type: 'boolean', default: false, nullable: false })
58
+ gate_pass_generated: boolean; // Whether gate pass has been generated
59
+
60
+ @Column({ type: 'timestamptz', nullable: true })
61
+ gate_pass_generated_at: Date | null; // When gate pass was generated
62
+
63
+ @Column({ type: 'boolean', default: false, nullable: false })
64
+ email_sent: boolean; // Whether email has been sent to visitor
65
+
66
+ @Column({ type: 'timestamptz', nullable: true })
67
+ email_sent_at: Date | null; // When email was sent
68
+
69
+ constructor(
70
+ gate_pass_request_id: number,
71
+ visitor_name: string,
72
+ service_id: number | null,
73
+ sub_service_id: number | null,
74
+ visitor_id_passport_no: string | null,
75
+ nationality: string | null,
76
+ job_title: string | null,
77
+ represented_entity: string | null,
78
+ visitor_email_address: string | null,
79
+ visitor_mobile_number: string | null,
80
+ visitor_photo_url: string | null,
81
+ visitor_photo_file_name: string | null
82
+ ) {
83
+ super();
84
+ this.gate_pass_request_id = gate_pass_request_id;
85
+ this.service_id = service_id;
86
+ this.sub_service_id = sub_service_id;
87
+ this.visitor_name = visitor_name;
88
+ this.visitor_id_passport_no = visitor_id_passport_no;
89
+ this.nationality = nationality;
90
+ this.job_title = job_title;
91
+ this.represented_entity = represented_entity;
92
+ this.visitor_email_address = visitor_email_address;
93
+ this.visitor_mobile_number = visitor_mobile_number;
94
+ this.visitor_photo_url = visitor_photo_url;
95
+ this.visitor_photo_file_name = visitor_photo_file_name;
96
+ this.gate_pass_generated = false;
97
+ this.email_sent = false;
98
+ }
99
+ }
100
+
@@ -0,0 +1,66 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Gate Pass Workflow Status Enum
6
+ */
7
+ export enum GatePassWorkFlowStatus {
8
+ COMPLETED = "Completed",
9
+ NOT_YET_STARTED = "Not Yet Started",
10
+ PENDING = "Pending",
11
+ IN_PROGRESS = "In Progress"
12
+ }
13
+
14
+ /**
15
+ * Gate Pass Workflow Table
16
+ * Tracks the progress of the request through different workflow stages
17
+ * Provides a timeline/audit trail of the process
18
+ *
19
+ * Workflow: Employee → Department Admin Office → Security Department
20
+ */
21
+ @Entity({ name: 'gate_pass_workflows' })
22
+ export class GatePassWorkFlow extends BaseModel {
23
+
24
+ @Column({ type: 'int', nullable: false })
25
+ gate_pass_request_id: number; // Foreign key to gate_pass_requests
26
+
27
+ @Column({ type: 'int', nullable: false, default: 0 })
28
+ gate_pass_approval_details_id: number; // Foreign key to gate_pass_approvals
29
+
30
+ @Column({ type: 'varchar', length: 255, nullable: false })
31
+ content: string; // Description of the workflow step
32
+
33
+ @Column({ type: 'enum', enum: GatePassWorkFlowStatus, default: GatePassWorkFlowStatus.NOT_YET_STARTED, nullable: false })
34
+ status: GatePassWorkFlowStatus; // Current status of this workflow step
35
+
36
+ @Column({ type: 'integer', nullable: true })
37
+ user_id: number | null; // User responsible for this step
38
+
39
+ @Column({ type: 'integer', nullable: true })
40
+ role_id: number | null; // Role responsible for this step
41
+
42
+ @Column({ type: 'integer', nullable: true })
43
+ department_id: number | null; // Department involved in this step
44
+
45
+ @Column({ type: 'integer', nullable: true })
46
+ section_id: number | null; // Section involved in this step
47
+
48
+ @Column({ type: 'integer', nullable: false, default: 1 })
49
+ level: number; // Workflow level
50
+
51
+ @Column({ type: 'varchar', length: 50, nullable: true })
52
+ access_type: string | null; // Normal - to track workflow path
53
+
54
+ @Column({ type: 'varchar', length: 255, nullable: true })
55
+ action_taken: string | null; // Action taken
56
+
57
+ @Column({ type: 'timestamptz', nullable: true })
58
+ action_date: Date | null; // Date when action was taken
59
+
60
+ @Column({ type: 'integer', nullable: true })
61
+ service_id: number | null;
62
+
63
+ @Column({ type: 'integer', nullable: true })
64
+ sub_service_id: number | null;
65
+ }
66
+
@@ -1,72 +1,72 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum enumFrequency {
5
- Monthly = 'Monthly',
6
- Yearly = 'Yearly',
7
- }
8
-
9
- //This model is used to store the Financial Grade declaration on the Admin Side
10
- @Entity({ name: 'leave_configuration' })
11
- export class LeaveConfiguration extends BaseModel {
12
-
13
- @Column({ type: 'varchar', nullable: true })
14
- category: string;
15
-
16
- @Column({ type: 'int', nullable: true })
17
- MandC_id: number;
18
-
19
- @Column({ type: 'int', nullable: true })
20
- leave_type_id: number;
21
-
22
- @Column({ type: 'varchar', nullable: true })
23
- frequency: enumFrequency;
24
-
25
- @Column({ type: 'varchar', nullable: true })
26
- region: string;
27
-
28
- @Column({ type: 'varchar', nullable: true })
29
- country: string;
30
-
31
- @Column({ type: 'varchar', nullable: true })
32
- location: string;
33
-
34
- @Column({ nullable: true, default: false })
35
- is_carryforward: boolean;
36
-
37
- @Column({ type: 'int', nullable: true, default: 0 })
38
- carryforward_limit: number;
39
-
40
- @Column({ type: 'date', nullable: true })
41
- from_date: Date;
42
-
43
- @Column({ type: 'date', nullable: true })
44
- to_date: Date;
45
-
46
- @Column({ type: 'varchar', nullable: true })
47
- reason: string;
48
-
49
- @Column({ type: 'int', nullable: true })
50
- emergency_balance_days: number | null;
51
-
52
- @Column({ type: 'date', nullable: true })
53
- last_credited: Date | null;
54
-
55
- constructor(category: string, MandC_id: number, leave_type_id: number, frequency: enumFrequency, region: string, country: string, location: string, is_carryforward: boolean, carryforward_limit: number, from_date: Date, to_date: Date, reason: string, emergency_balance_days?: number|null, last_credited?: Date|null) {
56
- super();
57
- this.category = category;
58
- this.MandC_id = MandC_id;
59
- this.leave_type_id = leave_type_id;
60
- this.frequency = frequency;
61
- this.region = region;
62
- this.country = country;
63
- this.location = location;
64
- this.is_carryforward = is_carryforward;
65
- this.carryforward_limit = carryforward_limit;
66
- this.from_date = from_date;
67
- this.to_date = to_date;
68
- this.reason = reason;
69
- this.emergency_balance_days = emergency_balance_days ?? null;
70
- this.last_credited = last_credited ?? null;
71
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum enumFrequency {
5
+ Monthly = 'Monthly',
6
+ Yearly = 'Yearly',
7
+ }
8
+
9
+ //This model is used to store the Financial Grade declaration on the Admin Side
10
+ @Entity({ name: 'leave_configuration' })
11
+ export class LeaveConfiguration extends BaseModel {
12
+
13
+ @Column({ type: 'varchar', nullable: true })
14
+ category: string;
15
+
16
+ @Column({ type: 'int', nullable: true })
17
+ MandC_id: number;
18
+
19
+ @Column({ type: 'int', nullable: true })
20
+ leave_type_id: number;
21
+
22
+ @Column({ type: 'varchar', nullable: true })
23
+ frequency: enumFrequency;
24
+
25
+ @Column({ type: 'varchar', nullable: true })
26
+ region: string;
27
+
28
+ @Column({ type: 'varchar', nullable: true })
29
+ country: string;
30
+
31
+ @Column({ type: 'varchar', nullable: true })
32
+ location: string;
33
+
34
+ @Column({ nullable: true, default: false })
35
+ is_carryforward: boolean;
36
+
37
+ @Column({ type: 'int', nullable: true, default: 0 })
38
+ carryforward_limit: number;
39
+
40
+ @Column({ type: 'date', nullable: true })
41
+ from_date: Date;
42
+
43
+ @Column({ type: 'date', nullable: true })
44
+ to_date: Date;
45
+
46
+ @Column({ type: 'varchar', nullable: true })
47
+ reason: string;
48
+
49
+ @Column({ type: 'int', nullable: true })
50
+ emergency_balance_days: number | null;
51
+
52
+ @Column({ type: 'date', nullable: true })
53
+ last_credited: Date | null;
54
+
55
+ constructor(category: string, MandC_id: number, leave_type_id: number, frequency: enumFrequency, region: string, country: string, location: string, is_carryforward: boolean, carryforward_limit: number, from_date: Date, to_date: Date, reason: string, emergency_balance_days?: number|null, last_credited?: Date|null) {
56
+ super();
57
+ this.category = category;
58
+ this.MandC_id = MandC_id;
59
+ this.leave_type_id = leave_type_id;
60
+ this.frequency = frequency;
61
+ this.region = region;
62
+ this.country = country;
63
+ this.location = location;
64
+ this.is_carryforward = is_carryforward;
65
+ this.carryforward_limit = carryforward_limit;
66
+ this.from_date = from_date;
67
+ this.to_date = to_date;
68
+ this.reason = reason;
69
+ this.emergency_balance_days = emergency_balance_days ?? null;
70
+ this.last_credited = last_credited ?? null;
71
+ }
72
72
  }
@@ -1,100 +1,100 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum MissionTravelApprovalStatus {
5
- PENDING = "Pending",
6
- APPROVED = "Approved",
7
- REJECTED = "Rejected",
8
- RFC = "RFC", // Request for Change
9
- IN_PROGRESS = "In Progress"
10
- }
11
-
12
- @Entity({ name: 'mission_travel_approvals' })
13
- export class MissionTravelApprovalDetails extends BaseModel {
14
- @Column({ type: 'integer', nullable: false })
15
- request_id: number;
16
-
17
- @Column({ type: 'integer', nullable: true })
18
- service_id: number | null;
19
-
20
- @Column({ type: 'integer', nullable: true })
21
- sub_service_id: number | null;
22
-
23
- @Column({ type: 'integer', nullable: false })
24
- level: number;
25
-
26
- @Column({ type: 'integer', nullable: true })
27
- approver_role_id: number;
28
-
29
- @Column({ type: 'integer', nullable: true })
30
- department_id: number | null;
31
-
32
- @Column({ type: 'integer', nullable: true })
33
- section_id: number | null;
34
-
35
- @Column({ type: 'integer', nullable: true })
36
- approver_user_id: number | null;
37
-
38
- @Column({ type: 'integer', nullable: true })
39
- delegate_user_id: number | null;
40
-
41
- @Column({ type: 'integer', nullable: true })
42
- approved_by: number | null;
43
-
44
- @Column({ type: 'varchar', length: 500, nullable: true, default: '' })
45
- comment: string;
46
-
47
- @Column({ type: 'enum', enum: MissionTravelApprovalStatus, default: MissionTravelApprovalStatus.PENDING, nullable: false })
48
- approval_status: MissionTravelApprovalStatus;
49
-
50
- @Column({ type: 'boolean', default: true, nullable: false })
51
- is_allowed: boolean;
52
-
53
- @Column({ type: 'boolean', default: false, nullable: false })
54
- is_reassign: boolean;
55
-
56
- @Column({ type: 'boolean', default: true, nullable: false })
57
- is_approval: boolean;
58
-
59
- @Column({ type: 'boolean', default: false, nullable: false })
60
- is_review: boolean;
61
-
62
- constructor(
63
- request_id: number,
64
- service_id: number | null,
65
- sub_service_id: number | null,
66
- level: number,
67
- approver_role_id: number,
68
- department_id: number | null,
69
- section_id: number | null,
70
- approver_user_id: number | null,
71
- delegate_user_id: number | null,
72
- approved_by: number | null,
73
- comment: string,
74
- approval_status: MissionTravelApprovalStatus,
75
- is_allowed: boolean,
76
- is_reassign: boolean,
77
- is_approval: boolean,
78
- is_review?: boolean
79
- ) {
80
- super();
81
- this.request_id = request_id;
82
- this.service_id = service_id;
83
- this.sub_service_id = sub_service_id;
84
- this.level = level;
85
- this.approver_role_id = approver_role_id;
86
- this.department_id = department_id;
87
- this.section_id = section_id;
88
- this.approver_user_id = approver_user_id;
89
- this.delegate_user_id = delegate_user_id;
90
- this.approved_by = approved_by;
91
- this.comment = comment;
92
- this.approval_status = approval_status;
93
- this.is_allowed = is_allowed;
94
- this.is_reassign = is_reassign;
95
- this.is_approval = is_approval;
96
- this.is_review = is_review ?? false;
97
- }
98
- }
99
-
100
-
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MissionTravelApprovalStatus {
5
+ PENDING = "Pending",
6
+ APPROVED = "Approved",
7
+ REJECTED = "Rejected",
8
+ RFC = "RFC", // Request for Change
9
+ IN_PROGRESS = "In Progress"
10
+ }
11
+
12
+ @Entity({ name: 'mission_travel_approvals' })
13
+ export class MissionTravelApprovalDetails extends BaseModel {
14
+ @Column({ type: 'integer', nullable: false })
15
+ request_id: number;
16
+
17
+ @Column({ type: 'integer', nullable: true })
18
+ service_id: number | null;
19
+
20
+ @Column({ type: 'integer', nullable: true })
21
+ sub_service_id: number | null;
22
+
23
+ @Column({ type: 'integer', nullable: false })
24
+ level: number;
25
+
26
+ @Column({ type: 'integer', nullable: true })
27
+ approver_role_id: number;
28
+
29
+ @Column({ type: 'integer', nullable: true })
30
+ department_id: number | null;
31
+
32
+ @Column({ type: 'integer', nullable: true })
33
+ section_id: number | null;
34
+
35
+ @Column({ type: 'integer', nullable: true })
36
+ approver_user_id: number | null;
37
+
38
+ @Column({ type: 'integer', nullable: true })
39
+ delegate_user_id: number | null;
40
+
41
+ @Column({ type: 'integer', nullable: true })
42
+ approved_by: number | null;
43
+
44
+ @Column({ type: 'varchar', length: 500, nullable: true, default: '' })
45
+ comment: string;
46
+
47
+ @Column({ type: 'enum', enum: MissionTravelApprovalStatus, default: MissionTravelApprovalStatus.PENDING, nullable: false })
48
+ approval_status: MissionTravelApprovalStatus;
49
+
50
+ @Column({ type: 'boolean', default: true, nullable: false })
51
+ is_allowed: boolean;
52
+
53
+ @Column({ type: 'boolean', default: false, nullable: false })
54
+ is_reassign: boolean;
55
+
56
+ @Column({ type: 'boolean', default: true, nullable: false })
57
+ is_approval: boolean;
58
+
59
+ @Column({ type: 'boolean', default: false, nullable: false })
60
+ is_review: boolean;
61
+
62
+ constructor(
63
+ request_id: number,
64
+ service_id: number | null,
65
+ sub_service_id: number | null,
66
+ level: number,
67
+ approver_role_id: number,
68
+ department_id: number | null,
69
+ section_id: number | null,
70
+ approver_user_id: number | null,
71
+ delegate_user_id: number | null,
72
+ approved_by: number | null,
73
+ comment: string,
74
+ approval_status: MissionTravelApprovalStatus,
75
+ is_allowed: boolean,
76
+ is_reassign: boolean,
77
+ is_approval: boolean,
78
+ is_review?: boolean
79
+ ) {
80
+ super();
81
+ this.request_id = request_id;
82
+ this.service_id = service_id;
83
+ this.sub_service_id = sub_service_id;
84
+ this.level = level;
85
+ this.approver_role_id = approver_role_id;
86
+ this.department_id = department_id;
87
+ this.section_id = section_id;
88
+ this.approver_user_id = approver_user_id;
89
+ this.delegate_user_id = delegate_user_id;
90
+ this.approved_by = approved_by;
91
+ this.comment = comment;
92
+ this.approval_status = approval_status;
93
+ this.is_allowed = is_allowed;
94
+ this.is_reassign = is_reassign;
95
+ this.is_approval = is_approval;
96
+ this.is_review = is_review ?? false;
97
+ }
98
+ }
99
+
100
+
@@ -1,56 +1,56 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- @Entity({ name: 'mission_travel_attachments' })
5
- export class MissionTravelRequestAttachment extends BaseModel {
6
- @Column({ type: 'integer', nullable: false })
7
- request_id: number;
8
-
9
- @Column({ type: 'integer', nullable: true })
10
- service_id: number | null;
11
-
12
- @Column({ type: 'integer', nullable: true })
13
- sub_service_id: number | null;
14
-
15
- @Column({ type: 'integer', nullable: false })
16
- uploaded_by: number;
17
-
18
- @Column({ type: 'varchar', length: 500, nullable: false })
19
- file_url: string;
20
-
21
- @Column({ type: 'varchar', length: 255, nullable: true })
22
- file_name: string;
23
-
24
- @Column({ type: 'varchar', length: 100, nullable: true })
25
- file_type: string;
26
-
27
- @Column({ type: 'bigint', nullable: true })
28
- file_size: number | null;
29
-
30
- @Column({ type: 'text', nullable: true })
31
- description: string;
32
-
33
- constructor(
34
- request_id: number,
35
- uploaded_by: number,
36
- file_url: string,
37
- file_name?: string,
38
- file_type?: string,
39
- file_size?: number,
40
- description?: string,
41
- service_id?: number | null,
42
- sub_service_id?: number | null
43
- ) {
44
- super();
45
- this.request_id = request_id;
46
- this.uploaded_by = uploaded_by;
47
- this.file_url = file_url;
48
- this.file_name = file_name || '';
49
- this.file_type = file_type || '';
50
- this.file_size = file_size || null;
51
- this.description = description || '';
52
- this.service_id = service_id ?? null;
53
- this.sub_service_id = sub_service_id ?? null;
54
- }
55
- }
56
-
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'mission_travel_attachments' })
5
+ export class MissionTravelRequestAttachment extends BaseModel {
6
+ @Column({ type: 'integer', nullable: false })
7
+ request_id: number;
8
+
9
+ @Column({ type: 'integer', nullable: true })
10
+ service_id: number | null;
11
+
12
+ @Column({ type: 'integer', nullable: true })
13
+ sub_service_id: number | null;
14
+
15
+ @Column({ type: 'integer', nullable: false })
16
+ uploaded_by: number;
17
+
18
+ @Column({ type: 'varchar', length: 500, nullable: false })
19
+ file_url: string;
20
+
21
+ @Column({ type: 'varchar', length: 255, nullable: true })
22
+ file_name: string;
23
+
24
+ @Column({ type: 'varchar', length: 100, nullable: true })
25
+ file_type: string;
26
+
27
+ @Column({ type: 'bigint', nullable: true })
28
+ file_size: number | null;
29
+
30
+ @Column({ type: 'text', nullable: true })
31
+ description: string;
32
+
33
+ constructor(
34
+ request_id: number,
35
+ uploaded_by: number,
36
+ file_url: string,
37
+ file_name?: string,
38
+ file_type?: string,
39
+ file_size?: number,
40
+ description?: string,
41
+ service_id?: number | null,
42
+ sub_service_id?: number | null
43
+ ) {
44
+ super();
45
+ this.request_id = request_id;
46
+ this.uploaded_by = uploaded_by;
47
+ this.file_url = file_url;
48
+ this.file_name = file_name || '';
49
+ this.file_type = file_type || '';
50
+ this.file_size = file_size || null;
51
+ this.description = description || '';
52
+ this.service_id = service_id ?? null;
53
+ this.sub_service_id = sub_service_id ?? null;
54
+ }
55
+ }
56
+