@platform-modules/civil-aviation-authority 2.3.309 → 2.3.310

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.
@@ -16,6 +16,7 @@ export declare class CancellationRequests extends BaseModel {
16
16
  status: CancellationRequestStatus;
17
17
  workflow_execution_id: string | null;
18
18
  old_request_number: number;
19
+ decision_number: string | null;
19
20
  reason_for_cancellation: string;
20
21
  description: string;
21
22
  /** Optional user IDs for “affected participants” notification fan-out */
@@ -56,6 +56,10 @@ __decorate([
56
56
  (0, typeorm_1.Column)({ type: "integer", nullable: false }),
57
57
  __metadata("design:type", Number)
58
58
  ], CancellationRequests.prototype, "old_request_number", void 0);
59
+ __decorate([
60
+ (0, typeorm_1.Column)({ type: "varchar", length: 255, nullable: true }),
61
+ __metadata("design:type", Object)
62
+ ], CancellationRequests.prototype, "decision_number", void 0);
59
63
  __decorate([
60
64
  (0, typeorm_1.Column)({ type: "varchar", length: 500, nullable: false }),
61
65
  __metadata("design:type", String)
@@ -17,6 +17,9 @@ export declare class ComplaintLostPropertyReportRequest extends BaseModel {
17
17
  location_where_item_was_lost: string;
18
18
  item_description: string;
19
19
  description: string | null;
20
+ lost_item_classification: string | null;
21
+ caa_property_type: string | null;
22
+ lost_card: string | null;
20
23
  created_by: number;
21
24
  reference_number: string | null;
22
25
  constructor();
@@ -74,6 +74,18 @@ __decorate([
74
74
  (0, typeorm_1.Column)({ type: "text", nullable: true }),
75
75
  __metadata("design:type", Object)
76
76
  ], ComplaintLostPropertyReportRequest.prototype, "description", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.Column)({ type: "varchar", length: 100, nullable: true }),
79
+ __metadata("design:type", Object)
80
+ ], ComplaintLostPropertyReportRequest.prototype, "lost_item_classification", void 0);
81
+ __decorate([
82
+ (0, typeorm_1.Column)({ type: "varchar", length: 255, nullable: true }),
83
+ __metadata("design:type", Object)
84
+ ], ComplaintLostPropertyReportRequest.prototype, "caa_property_type", void 0);
85
+ __decorate([
86
+ (0, typeorm_1.Column)({ type: "varchar", length: 10, nullable: true }),
87
+ __metadata("design:type", Object)
88
+ ], ComplaintLostPropertyReportRequest.prototype, "lost_card", void 0);
77
89
  __decorate([
78
90
  (0, typeorm_1.Column)({ type: "int", nullable: false }),
79
91
  __metadata("design:type", Number)
@@ -21,7 +21,7 @@ export interface LegalComplaintIncidentInput {
21
21
  }
22
22
  /** Step 3 — Complainant: Name / Position / Employee ID / Directorate / Department / Section. */
23
23
  export interface LegalComplaintComplainantInput {
24
- name: string;
24
+ name?: string | null;
25
25
  position?: string | null;
26
26
  employee_id?: string | null;
27
27
  directorate?: string | null;
@@ -50,7 +50,7 @@ export interface LegalComplaintStructuredCreateFields {
50
50
  incident_events: string | null;
51
51
  incident_other_details: string | null;
52
52
  incident_description: string;
53
- complainant_name: string;
53
+ complainant_name: string | null;
54
54
  complainant_position: string | null;
55
55
  complainant_employee_id: string | null;
56
56
  complainant_directorate: string | null;
@@ -94,7 +94,7 @@ export declare class LegalComplaintRequest extends BaseModel {
94
94
  /** “Any other details related to complaint”. */
95
95
  incident_other_details: string | null;
96
96
  incident_description: string;
97
- complainant_name: string;
97
+ complainant_name: string | null;
98
98
  complainant_position: string | null;
99
99
  complainant_employee_id: string | null;
100
100
  complainant_directorate: string | null;
@@ -126,12 +126,6 @@ function parseLegalComplaintCreateFields(body) {
126
126
  complainant_section_id = sec.id;
127
127
  complainant_section_name = sec.name;
128
128
  }
129
- if (!complainant_name) {
130
- return {
131
- ok: false,
132
- message: 'complainant.name is required (or legacy complainant_details text)',
133
- };
134
- }
135
129
  const sub = body.complained_employee ?? body.complainedEmployee;
136
130
  let complained_employee_name = '';
137
131
  let complained_employee_position = null;
@@ -238,8 +232,8 @@ __decorate([
238
232
  __metadata("design:type", String)
239
233
  ], LegalComplaintRequest.prototype, "incident_description", void 0);
240
234
  __decorate([
241
- (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: false }),
242
- __metadata("design:type", String)
235
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
236
+ __metadata("design:type", Object)
243
237
  ], LegalComplaintRequest.prototype, "complainant_name", void 0);
244
238
  __decorate([
245
239
  (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
@@ -15,6 +15,14 @@ export declare enum MediaPublicationsRequestStatus {
15
15
  APPROVED = "Approved",
16
16
  REJECTED = "Rejected"
17
17
  }
18
+ export interface MediaPublicationMaterialLine {
19
+ item_type?: string | null;
20
+ item_code?: string | null;
21
+ description?: string | null;
22
+ quantity?: number | null;
23
+ unit_price?: number | null;
24
+ cost?: number | null;
25
+ }
18
26
  export declare class MediaPublicationsRequests extends BaseModel {
19
27
  req_user_department_id: number | null;
20
28
  req_user_section_id: number | null;
@@ -25,14 +33,31 @@ export declare class MediaPublicationsRequests extends BaseModel {
25
33
  requestor_name: string | null;
26
34
  requestor_department: string | null;
27
35
  requestor_designation: string | null;
36
+ job_title: string | null;
37
+ directorate: string | null;
38
+ department: string | null;
39
+ extension_number: string | null;
28
40
  contact_number: string | null;
41
+ phone_number: string | null;
29
42
  email: string | null;
30
43
  request_type: MediaPublicationsRequestType;
31
- item_code: string;
44
+ item_code: string | null;
45
+ item_type: string | null;
32
46
  description: string;
33
47
  cost: number;
34
48
  publication_date: Date;
35
49
  event_type: MediaPublicationsEventType;
50
+ publication_type: string[] | null;
51
+ publication_format: string[] | null;
52
+ purpose_of_publication: string | null;
53
+ intended_use: string | null;
54
+ target_audience: string | null;
55
+ is_new_or_update: string | null;
56
+ approved_budget_available: string | null;
57
+ estimated_quantity: number | null;
58
+ required_languages: string[] | null;
59
+ technical_requirements: string | null;
60
+ material_lines: MediaPublicationMaterialLine[] | null;
36
61
  quantity: number | null;
37
62
  unit_price: number | null;
38
63
  status: MediaPublicationsRequestStatus;
@@ -70,10 +70,30 @@ __decorate([
70
70
  (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
71
71
  __metadata("design:type", Object)
72
72
  ], MediaPublicationsRequests.prototype, "requestor_designation", void 0);
73
+ __decorate([
74
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
75
+ __metadata("design:type", Object)
76
+ ], MediaPublicationsRequests.prototype, "job_title", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
79
+ __metadata("design:type", Object)
80
+ ], MediaPublicationsRequests.prototype, "directorate", void 0);
81
+ __decorate([
82
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
83
+ __metadata("design:type", Object)
84
+ ], MediaPublicationsRequests.prototype, "department", void 0);
85
+ __decorate([
86
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
87
+ __metadata("design:type", Object)
88
+ ], MediaPublicationsRequests.prototype, "extension_number", void 0);
73
89
  __decorate([
74
90
  (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
75
91
  __metadata("design:type", Object)
76
92
  ], MediaPublicationsRequests.prototype, "contact_number", void 0);
93
+ __decorate([
94
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
95
+ __metadata("design:type", Object)
96
+ ], MediaPublicationsRequests.prototype, "phone_number", void 0);
77
97
  __decorate([
78
98
  (0, typeorm_1.Column)({ type: 'varchar', length: 320, nullable: true }),
79
99
  __metadata("design:type", Object)
@@ -88,9 +108,13 @@ __decorate([
88
108
  __metadata("design:type", String)
89
109
  ], MediaPublicationsRequests.prototype, "request_type", void 0);
90
110
  __decorate([
91
- (0, typeorm_1.Column)({ type: 'varchar', length: 120, nullable: false }),
92
- __metadata("design:type", String)
111
+ (0, typeorm_1.Column)({ type: 'varchar', length: 120, nullable: true }),
112
+ __metadata("design:type", Object)
93
113
  ], MediaPublicationsRequests.prototype, "item_code", void 0);
114
+ __decorate([
115
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
116
+ __metadata("design:type", Object)
117
+ ], MediaPublicationsRequests.prototype, "item_type", void 0);
94
118
  __decorate([
95
119
  (0, typeorm_1.Column)({ type: 'text', nullable: false }),
96
120
  __metadata("design:type", String)
@@ -112,6 +136,50 @@ __decorate([
112
136
  }),
113
137
  __metadata("design:type", String)
114
138
  ], MediaPublicationsRequests.prototype, "event_type", void 0);
139
+ __decorate([
140
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
141
+ __metadata("design:type", Object)
142
+ ], MediaPublicationsRequests.prototype, "publication_type", void 0);
143
+ __decorate([
144
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
145
+ __metadata("design:type", Object)
146
+ ], MediaPublicationsRequests.prototype, "publication_format", void 0);
147
+ __decorate([
148
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
149
+ __metadata("design:type", Object)
150
+ ], MediaPublicationsRequests.prototype, "purpose_of_publication", void 0);
151
+ __decorate([
152
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
153
+ __metadata("design:type", Object)
154
+ ], MediaPublicationsRequests.prototype, "intended_use", void 0);
155
+ __decorate([
156
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
157
+ __metadata("design:type", Object)
158
+ ], MediaPublicationsRequests.prototype, "target_audience", void 0);
159
+ __decorate([
160
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
161
+ __metadata("design:type", Object)
162
+ ], MediaPublicationsRequests.prototype, "is_new_or_update", void 0);
163
+ __decorate([
164
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
165
+ __metadata("design:type", Object)
166
+ ], MediaPublicationsRequests.prototype, "approved_budget_available", void 0);
167
+ __decorate([
168
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
169
+ __metadata("design:type", Object)
170
+ ], MediaPublicationsRequests.prototype, "estimated_quantity", void 0);
171
+ __decorate([
172
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
173
+ __metadata("design:type", Object)
174
+ ], MediaPublicationsRequests.prototype, "required_languages", void 0);
175
+ __decorate([
176
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
177
+ __metadata("design:type", Object)
178
+ ], MediaPublicationsRequests.prototype, "technical_requirements", void 0);
179
+ __decorate([
180
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
181
+ __metadata("design:type", Object)
182
+ ], MediaPublicationsRequests.prototype, "material_lines", void 0);
115
183
  __decorate([
116
184
  (0, typeorm_1.Column)({ type: 'int', nullable: true }),
117
185
  __metadata("design:type", Object)
@@ -13,8 +13,10 @@ export declare enum VipHallInternalExternal {
13
13
  export declare enum VipHallMealType {
14
14
  BREAKFAST = "Breakfast",
15
15
  LUNCH = "Lunch",
16
- DINNER = "Dinner"
16
+ DINNER = "Dinner",
17
+ SNACKS = "Snacks"
17
18
  }
19
+ export declare const VIP_HALL_MEAL_TYPE_VALUES: readonly [VipHallMealType.BREAKFAST, VipHallMealType.LUNCH, VipHallMealType.DINNER, VipHallMealType.SNACKS];
18
20
  export declare class VipHallRequests extends BaseModel {
19
21
  req_user_department_id: number | null;
20
22
  req_user_section_id: number | null;
@@ -34,7 +36,7 @@ export declare class VipHallRequests extends BaseModel {
34
36
  /** Purpose of the meeting (mandatory in API validation). */
35
37
  meeting_purpose: string;
36
38
  meal_required: boolean;
37
- meal_type: VipHallMealType | null;
39
+ meal_type: string[] | null;
38
40
  network_support_required: boolean;
39
41
  media_coverage_required: boolean;
40
42
  project_maintenance_support_required: boolean;
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.VipHallRequests = exports.VipHallMealType = exports.VipHallInternalExternal = exports.VipHallRequestStatus = void 0;
12
+ exports.VipHallRequests = exports.VIP_HALL_MEAL_TYPE_VALUES = exports.VipHallMealType = exports.VipHallInternalExternal = exports.VipHallRequestStatus = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const BaseModel_1 = require("./BaseModel");
15
15
  var VipHallRequestStatus;
@@ -30,7 +30,14 @@ var VipHallMealType;
30
30
  VipHallMealType["BREAKFAST"] = "Breakfast";
31
31
  VipHallMealType["LUNCH"] = "Lunch";
32
32
  VipHallMealType["DINNER"] = "Dinner";
33
+ VipHallMealType["SNACKS"] = "Snacks";
33
34
  })(VipHallMealType || (exports.VipHallMealType = VipHallMealType = {}));
35
+ exports.VIP_HALL_MEAL_TYPE_VALUES = [
36
+ VipHallMealType.BREAKFAST,
37
+ VipHallMealType.LUNCH,
38
+ VipHallMealType.DINNER,
39
+ VipHallMealType.SNACKS,
40
+ ];
34
41
  let VipHallRequests = class VipHallRequests extends BaseModel_1.BaseModel {
35
42
  };
36
43
  exports.VipHallRequests = VipHallRequests;
@@ -109,12 +116,7 @@ __decorate([
109
116
  __metadata("design:type", Boolean)
110
117
  ], VipHallRequests.prototype, "meal_required", void 0);
111
118
  __decorate([
112
- (0, typeorm_1.Column)({
113
- type: "enum",
114
- enum: VipHallMealType,
115
- enumName: "vip_hall_meal_type_en",
116
- nullable: true,
117
- }),
119
+ (0, typeorm_1.Column)({ type: "jsonb", nullable: true }),
118
120
  __metadata("design:type", Object)
119
121
  ], VipHallRequests.prototype, "meal_type", void 0);
120
122
  __decorate([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-modules/civil-aviation-authority",
3
- "version": "2.3.309",
3
+ "version": "2.3.310",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -0,0 +1,66 @@
1
+ -- CAA API payload changes batch 2 (Jul 2026)
2
+ -- Run after deploying updated shared_models, services, and Conductor workers.
3
+
4
+ -- 1. Complaint / lost property report
5
+ ALTER TABLE complaint_lost_property_report_requests
6
+ ADD COLUMN IF NOT EXISTS lost_item_classification VARCHAR(100),
7
+ ADD COLUMN IF NOT EXISTS caa_property_type VARCHAR(255),
8
+ ADD COLUMN IF NOT EXISTS lost_card VARCHAR(10);
9
+
10
+ -- 2. Cancellation request
11
+ ALTER TABLE cancellation_requests
12
+ ADD COLUMN IF NOT EXISTS decision_number VARCHAR(255);
13
+
14
+ -- 3. VIP hall — meal_type multi-select (jsonb array)
15
+ DO $$
16
+ BEGIN
17
+ IF EXISTS (
18
+ SELECT 1 FROM information_schema.columns
19
+ WHERE table_name = 'vip_hall_requests' AND column_name = 'meal_type'
20
+ ) THEN
21
+ BEGIN
22
+ ALTER TABLE vip_hall_requests
23
+ ALTER COLUMN meal_type TYPE jsonb
24
+ USING CASE
25
+ WHEN meal_type IS NULL THEN NULL
26
+ WHEN pg_typeof(meal_type)::text = 'jsonb' THEN meal_type
27
+ ELSE to_jsonb(ARRAY[meal_type::text])
28
+ END;
29
+ EXCEPTION WHEN OTHERS THEN
30
+ ALTER TABLE vip_hall_requests
31
+ ADD COLUMN IF NOT EXISTS meal_type_jsonb jsonb;
32
+ UPDATE vip_hall_requests
33
+ SET meal_type_jsonb = to_jsonb(ARRAY[meal_type::text])
34
+ WHERE meal_type IS NOT NULL;
35
+ ALTER TABLE vip_hall_requests DROP COLUMN IF EXISTS meal_type;
36
+ ALTER TABLE vip_hall_requests RENAME COLUMN meal_type_jsonb TO meal_type;
37
+ END;
38
+ END IF;
39
+ END $$;
40
+
41
+ -- 4. Legal complaint — complainant name optional
42
+ ALTER TABLE legal_complaint_requests
43
+ ALTER COLUMN complainant_name DROP NOT NULL;
44
+
45
+ -- 5. Media publications — expanded payload fields
46
+ ALTER TABLE media_publications_requests
47
+ ADD COLUMN IF NOT EXISTS job_title VARCHAR(500),
48
+ ADD COLUMN IF NOT EXISTS directorate VARCHAR(500),
49
+ ADD COLUMN IF NOT EXISTS department VARCHAR(500),
50
+ ADD COLUMN IF NOT EXISTS extension_number VARCHAR(50),
51
+ ADD COLUMN IF NOT EXISTS phone_number VARCHAR(100),
52
+ ADD COLUMN IF NOT EXISTS item_type VARCHAR(255),
53
+ ADD COLUMN IF NOT EXISTS publication_type jsonb,
54
+ ADD COLUMN IF NOT EXISTS publication_format jsonb,
55
+ ADD COLUMN IF NOT EXISTS purpose_of_publication TEXT,
56
+ ADD COLUMN IF NOT EXISTS intended_use TEXT,
57
+ ADD COLUMN IF NOT EXISTS target_audience TEXT,
58
+ ADD COLUMN IF NOT EXISTS is_new_or_update VARCHAR(50),
59
+ ADD COLUMN IF NOT EXISTS approved_budget_available VARCHAR(50),
60
+ ADD COLUMN IF NOT EXISTS estimated_quantity INT,
61
+ ADD COLUMN IF NOT EXISTS required_languages jsonb,
62
+ ADD COLUMN IF NOT EXISTS technical_requirements TEXT,
63
+ ADD COLUMN IF NOT EXISTS material_lines jsonb;
64
+
65
+ ALTER TABLE media_publications_requests
66
+ ALTER COLUMN item_code DROP NOT NULL;
@@ -36,6 +36,9 @@ export class CancellationRequests extends BaseModel {
36
36
  @Column({ type: "integer", nullable: false })
37
37
  old_request_number: number;
38
38
 
39
+ @Column({ type: "varchar", length: 255, nullable: true })
40
+ decision_number: string | null;
41
+
39
42
  @Column({ type: "varchar", length: 500, nullable: false })
40
43
  reason_for_cancellation: string;
41
44
 
@@ -48,6 +48,15 @@ export class ComplaintLostPropertyReportRequest extends BaseModel {
48
48
  @Column({ type: "text", nullable: true })
49
49
  description: string | null;
50
50
 
51
+ @Column({ type: "varchar", length: 100, nullable: true })
52
+ lost_item_classification: string | null;
53
+
54
+ @Column({ type: "varchar", length: 255, nullable: true })
55
+ caa_property_type: string | null;
56
+
57
+ @Column({ type: "varchar", length: 10, nullable: true })
58
+ lost_card: string | null;
59
+
51
60
  @Column({ type: "int", nullable: false })
52
61
  created_by: number;
53
62
 
@@ -25,7 +25,7 @@ export interface LegalComplaintIncidentInput {
25
25
 
26
26
  /** Step 3 — Complainant: Name / Position / Employee ID / Directorate / Department / Section. */
27
27
  export interface LegalComplaintComplainantInput {
28
- name: string;
28
+ name?: string | null;
29
29
  position?: string | null;
30
30
  employee_id?: string | null;
31
31
  directorate?: string | null;
@@ -56,7 +56,7 @@ export interface LegalComplaintStructuredCreateFields {
56
56
  incident_events: string | null;
57
57
  incident_other_details: string | null;
58
58
  incident_description: string;
59
- complainant_name: string;
59
+ complainant_name: string | null;
60
60
  complainant_position: string | null;
61
61
  complainant_employee_id: string | null;
62
62
  complainant_directorate: string | null;
@@ -193,13 +193,6 @@ export function parseLegalComplaintCreateFields(body: Record<string, any>): Lega
193
193
  complainant_section_name = sec.name;
194
194
  }
195
195
 
196
- if (!complainant_name) {
197
- return {
198
- ok: false,
199
- message: 'complainant.name is required (or legacy complainant_details text)',
200
- };
201
- }
202
-
203
196
  const sub = body.complained_employee ?? body.complainedEmployee;
204
197
  let complained_employee_name = '';
205
198
  let complained_employee_position: string | null = null;
@@ -297,8 +290,8 @@ export class LegalComplaintRequest extends BaseModel {
297
290
  @Column({ type: 'text', nullable: false })
298
291
  incident_description: string;
299
292
 
300
- @Column({ type: 'varchar', length: 255, nullable: false })
301
- complainant_name: string;
293
+ @Column({ type: 'varchar', length: 255, nullable: true })
294
+ complainant_name: string | null;
302
295
 
303
296
  @Column({ type: 'varchar', length: 255, nullable: true })
304
297
  complainant_position: string | null;
@@ -20,6 +20,15 @@ export enum MediaPublicationsRequestStatus {
20
20
  REJECTED = 'Rejected',
21
21
  }
22
22
 
23
+ export interface MediaPublicationMaterialLine {
24
+ item_type?: string | null;
25
+ item_code?: string | null;
26
+ description?: string | null;
27
+ quantity?: number | null;
28
+ unit_price?: number | null;
29
+ cost?: number | null;
30
+ }
31
+
23
32
  @Entity({ name: 'media_publications_requests' })
24
33
  export class MediaPublicationsRequests extends BaseModel {
25
34
  @Column({ type: 'int', nullable: true })
@@ -49,9 +58,24 @@ export class MediaPublicationsRequests extends BaseModel {
49
58
  @Column({ type: 'varchar', length: 500, nullable: true })
50
59
  requestor_designation: string | null;
51
60
 
61
+ @Column({ type: 'varchar', length: 500, nullable: true })
62
+ job_title: string | null;
63
+
64
+ @Column({ type: 'varchar', length: 500, nullable: true })
65
+ directorate: string | null;
66
+
67
+ @Column({ type: 'varchar', length: 500, nullable: true })
68
+ department: string | null;
69
+
70
+ @Column({ type: 'varchar', length: 50, nullable: true })
71
+ extension_number: string | null;
72
+
52
73
  @Column({ type: 'varchar', length: 100, nullable: true })
53
74
  contact_number: string | null;
54
75
 
76
+ @Column({ type: 'varchar', length: 100, nullable: true })
77
+ phone_number: string | null;
78
+
55
79
  @Column({ type: 'varchar', length: 320, nullable: true })
56
80
  email: string | null;
57
81
 
@@ -63,8 +87,11 @@ export class MediaPublicationsRequests extends BaseModel {
63
87
  })
64
88
  request_type: MediaPublicationsRequestType;
65
89
 
66
- @Column({ type: 'varchar', length: 120, nullable: false })
67
- item_code: string;
90
+ @Column({ type: 'varchar', length: 120, nullable: true })
91
+ item_code: string | null;
92
+
93
+ @Column({ type: 'varchar', length: 255, nullable: true })
94
+ item_type: string | null;
68
95
 
69
96
  @Column({ type: 'text', nullable: false })
70
97
  description: string;
@@ -83,6 +110,39 @@ export class MediaPublicationsRequests extends BaseModel {
83
110
  })
84
111
  event_type: MediaPublicationsEventType;
85
112
 
113
+ @Column({ type: 'jsonb', nullable: true })
114
+ publication_type: string[] | null;
115
+
116
+ @Column({ type: 'jsonb', nullable: true })
117
+ publication_format: string[] | null;
118
+
119
+ @Column({ type: 'text', nullable: true })
120
+ purpose_of_publication: string | null;
121
+
122
+ @Column({ type: 'text', nullable: true })
123
+ intended_use: string | null;
124
+
125
+ @Column({ type: 'text', nullable: true })
126
+ target_audience: string | null;
127
+
128
+ @Column({ type: 'varchar', length: 50, nullable: true })
129
+ is_new_or_update: string | null;
130
+
131
+ @Column({ type: 'varchar', length: 50, nullable: true })
132
+ approved_budget_available: string | null;
133
+
134
+ @Column({ type: 'int', nullable: true })
135
+ estimated_quantity: number | null;
136
+
137
+ @Column({ type: 'jsonb', nullable: true })
138
+ required_languages: string[] | null;
139
+
140
+ @Column({ type: 'text', nullable: true })
141
+ technical_requirements: string | null;
142
+
143
+ @Column({ type: 'jsonb', nullable: true })
144
+ material_lines: MediaPublicationMaterialLine[] | null;
145
+
86
146
  @Column({ type: 'int', nullable: true })
87
147
  quantity: number | null;
88
148
 
@@ -18,8 +18,16 @@ export enum VipHallMealType {
18
18
  BREAKFAST = "Breakfast",
19
19
  LUNCH = "Lunch",
20
20
  DINNER = "Dinner",
21
+ SNACKS = "Snacks",
21
22
  }
22
23
 
24
+ export const VIP_HALL_MEAL_TYPE_VALUES = [
25
+ VipHallMealType.BREAKFAST,
26
+ VipHallMealType.LUNCH,
27
+ VipHallMealType.DINNER,
28
+ VipHallMealType.SNACKS,
29
+ ] as const;
30
+
23
31
  @Entity({ name: "vip_hall_requests" })
24
32
  export class VipHallRequests extends BaseModel {
25
33
  @Column({ type: "integer", nullable: true })
@@ -82,13 +90,8 @@ export class VipHallRequests extends BaseModel {
82
90
  @Column({ type: "boolean", default: false, nullable: false })
83
91
  meal_required: boolean;
84
92
 
85
- @Column({
86
- type: "enum",
87
- enum: VipHallMealType,
88
- enumName: "vip_hall_meal_type_en",
89
- nullable: true,
90
- })
91
- meal_type: VipHallMealType | null;
93
+ @Column({ type: "jsonb", nullable: true })
94
+ meal_type: string[] | null;
92
95
 
93
96
  @Column({ type: "boolean", default: false, nullable: false })
94
97
  network_support_required: boolean;