@platform-modules/foreign-ministry 1.3.319 → 1.3.320
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.
- package/.env +5 -10
- package/dist/models/EmbassyEvaluationWorkflowModel.d.ts +1 -2
- package/dist/models/EmbassyEvaluationWorkflowModel.js +2 -6
- package/dist/models/EmbassyMasterModel.d.ts +16 -0
- package/dist/models/EmbassyMasterModel.js +75 -0
- package/dist/models/EmployeeOfMonthNominationWorkflowModel.d.ts +1 -2
- package/dist/models/EmployeeOfMonthNominationWorkflowModel.js +2 -6
- package/dist/models/EmployeeOfMonthSupportNominationWorkflowModel.d.ts +1 -2
- package/dist/models/EmployeeOfMonthSupportNominationWorkflowModel.js +2 -6
- package/dist/models/InitiatorEmployeeNominationWorkflowModel.d.ts +1 -2
- package/dist/models/InitiatorEmployeeNominationWorkflowModel.js +3 -7
- package/dist/models/InnovativeEmployeeNominationWorkflowModel.d.ts +1 -2
- package/dist/models/InnovativeEmployeeNominationWorkflowModel.js +3 -7
- package/dist/models/IpeGrievanceWorkflowModel.d.ts +1 -2
- package/dist/models/IpeGrievanceWorkflowModel.js +3 -7
- package/dist/models/UserDependentsModel.d.ts +18 -0
- package/dist/models/UserDependentsModel.js +94 -0
- package/package.json +1 -1
- package/src/data-source.ts +686 -686
- package/src/index.ts +598 -598
- package/src/models/AnnualTravelTicketPriceConfigurationItemModel.ts +36 -36
- package/src/models/AnnualTravelTicketPriceConfigurationModel.ts +35 -35
- package/src/models/AnnualTravelTicketRequestModel.ts +42 -42
- package/src/models/DiplomaticAcademyRequestModel.ts +80 -80
- package/src/models/DocumentationFileModel.ts +40 -40
- package/src/models/EmbassyEvaluationCycleModel.ts +38 -38
- package/src/models/EmbassyEvaluationRequestModel.ts +59 -59
- package/src/models/EmbassyEvaluationWorkflowModel.ts +2 -5
- package/src/models/EmployeeEvaluationAnswerModel.ts +26 -26
- package/src/models/EmployeeOfMonthNominationWorkflowModel.ts +2 -5
- package/src/models/EmployeeOfMonthSupportNominationWorkflowModel.ts +47 -50
- package/src/models/EvaluationEligibilitySettingModel.ts +51 -51
- package/src/models/EvaluationFormModel.ts +44 -44
- package/src/models/FinancialWorkFlowModel.ts +15 -15
- package/src/models/GatePassVisitorsModel.ts +7 -7
- package/src/models/InitiatorEmployeeNominationWorkflowModel.ts +2 -5
- package/src/models/InnovativeEmployeeNominationWorkflowModel.ts +2 -5
- package/src/models/IpeGrievanceWorkflowModel.ts +2 -5
- package/src/models/LMSExternalEntityTrainedPersonModel.ts +45 -45
- package/src/models/LanguageCourseRequestModel.ts +67 -67
- package/src/models/LeaveConfigModel.ts +71 -71
- package/src/models/MissionTravelApprovalModel.ts +101 -101
- package/src/models/MissionTravelAttachmentModel.ts +56 -56
- package/src/models/MissionTravelChatModel.ts +52 -52
- package/src/models/MissionTravelPersonModel.ts +105 -105
- package/src/models/MissionTravelWorkflowModel.ts +54 -54
- package/src/models/PollOptionsModel.ts +26 -26
- package/src/models/PollVotesModel.ts +37 -37
- package/src/models/PollsModel.ts +49 -49
- package/src/models/ProjectContactsModel.ts +51 -51
- package/src/models/ProjectFaqModel.ts +36 -36
- package/src/models/ProjectInvoicesModel.ts +41 -41
- package/src/models/ProjectModel.ts +75 -75
- package/src/models/ProjectTasksModel.ts +75 -75
- package/src/models/ResignationTerminationApprovalModel.ts +9 -9
- package/src/models/ResignationTerminationRequestModel.ts +17 -17
- package/src/models/SectionModel.ts +35 -35
- package/src/models/ServiceSlaApprovalModel.ts +63 -63
- package/src/models/ServicesNotificationConfigsModel.ts +55 -55
- package/src/models/TelephoneDirectoryModel.ts +20 -20
- package/dist/models/EmbassyEvaluationDepartmentSettingModel.d.ts +0 -14
- package/dist/models/EmbassyEvaluationDepartmentSettingModel.js +0 -56
- package/dist/models/EvaluationMastersModel.d.ts +0 -16
- package/dist/models/EvaluationMastersModel.js +0 -67
- package/dist/models/EvaluationWorkflowModel.d.ts +0 -60
- package/dist/models/EvaluationWorkflowModel.js +0 -215
- package/dist/models/IneligibleForEvaluationModel.d.ts +0 -8
- package/dist/models/IneligibleForEvaluationModel.js +0 -44
- package/dist/models/MissionTravelClassConfigModel.d.ts +0 -10
- package/dist/models/MissionTravelClassConfigModel.js +0 -50
- package/dist/models/MissionTravelPerdiemModel.d.ts +0 -10
- package/dist/models/MissionTravelPerdiemModel.js +0 -54
- package/dist/models/UuidAuditModel.d.ts +0 -9
- package/dist/models/UuidAuditModel.js +0 -41
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { Column, Entity, JoinColumn, ManyToOne, Unique } from 'typeorm';
|
|
2
|
-
import { BaseModel } from './BaseModel';
|
|
3
|
-
import { AnnualTravelTicketPriceConfiguration } from './AnnualTravelTicketPriceConfigurationModel';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Individual price slab within an annual travel ticket pricing configuration.
|
|
7
|
-
* age_from is inclusive and age_to is exclusive to allow adjacent ranges.
|
|
8
|
-
*/
|
|
9
|
-
@Entity({ name: 'annual_travel_ticket_price_configuration_items' })
|
|
10
|
-
@Unique(['configuration_id', 'ticket_class', 'age_from', 'age_to'])
|
|
11
|
-
export class AnnualTravelTicketPriceConfigurationItem extends BaseModel {
|
|
12
|
-
@Column({ type: 'int', nullable: false })
|
|
13
|
-
configuration_id: number;
|
|
14
|
-
|
|
15
|
-
@ManyToOne(() => AnnualTravelTicketPriceConfiguration, (configuration) => configuration.price_slabs, { onDelete: 'CASCADE' })
|
|
16
|
-
@JoinColumn({ name: 'configuration_id' })
|
|
17
|
-
configuration: AnnualTravelTicketPriceConfiguration;
|
|
18
|
-
|
|
19
|
-
@Column({ type: 'varchar', length: 100, nullable: true })
|
|
20
|
-
ticket_class: string | null;
|
|
21
|
-
|
|
22
|
-
@Column({ type: 'int', nullable: false })
|
|
23
|
-
age_from: number;
|
|
24
|
-
|
|
25
|
-
@Column({ type: 'int', nullable: false })
|
|
26
|
-
age_to: number;
|
|
27
|
-
|
|
28
|
-
@Column({ type: 'decimal', precision: 12, scale: 2, nullable: false })
|
|
29
|
-
price: number | string;
|
|
30
|
-
|
|
31
|
-
@Column({ type: 'varchar', length: 10, nullable: true, default: 'OMR' })
|
|
32
|
-
currency_code: string | null;
|
|
33
|
-
|
|
34
|
-
@Column({ type: 'text', nullable: true })
|
|
35
|
-
notes: string | null;
|
|
36
|
-
}
|
|
1
|
+
import { Column, Entity, JoinColumn, ManyToOne, Unique } from 'typeorm';
|
|
2
|
+
import { BaseModel } from './BaseModel';
|
|
3
|
+
import { AnnualTravelTicketPriceConfiguration } from './AnnualTravelTicketPriceConfigurationModel';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Individual price slab within an annual travel ticket pricing configuration.
|
|
7
|
+
* age_from is inclusive and age_to is exclusive to allow adjacent ranges.
|
|
8
|
+
*/
|
|
9
|
+
@Entity({ name: 'annual_travel_ticket_price_configuration_items' })
|
|
10
|
+
@Unique(['configuration_id', 'ticket_class', 'age_from', 'age_to'])
|
|
11
|
+
export class AnnualTravelTicketPriceConfigurationItem extends BaseModel {
|
|
12
|
+
@Column({ type: 'int', nullable: false })
|
|
13
|
+
configuration_id: number;
|
|
14
|
+
|
|
15
|
+
@ManyToOne(() => AnnualTravelTicketPriceConfiguration, (configuration) => configuration.price_slabs, { onDelete: 'CASCADE' })
|
|
16
|
+
@JoinColumn({ name: 'configuration_id' })
|
|
17
|
+
configuration: AnnualTravelTicketPriceConfiguration;
|
|
18
|
+
|
|
19
|
+
@Column({ type: 'varchar', length: 100, nullable: true })
|
|
20
|
+
ticket_class: string | null;
|
|
21
|
+
|
|
22
|
+
@Column({ type: 'int', nullable: false })
|
|
23
|
+
age_from: number;
|
|
24
|
+
|
|
25
|
+
@Column({ type: 'int', nullable: false })
|
|
26
|
+
age_to: number;
|
|
27
|
+
|
|
28
|
+
@Column({ type: 'decimal', precision: 12, scale: 2, nullable: false })
|
|
29
|
+
price: number | string;
|
|
30
|
+
|
|
31
|
+
@Column({ type: 'varchar', length: 10, nullable: true, default: 'OMR' })
|
|
32
|
+
currency_code: string | null;
|
|
33
|
+
|
|
34
|
+
@Column({ type: 'text', nullable: true })
|
|
35
|
+
notes: string | null;
|
|
36
|
+
}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { Column, Entity, OneToMany, Unique } from 'typeorm';
|
|
2
|
-
import { BaseModel } from './BaseModel';
|
|
3
|
-
import { AnnualTravelTicketPriceConfigurationItem } from './AnnualTravelTicketPriceConfigurationItemModel';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Admin configuration for annual travel ticket pricing.
|
|
7
|
-
* One record per year (and optional service/sub-service pair), with multiple age slabs.
|
|
8
|
-
*/
|
|
9
|
-
@Entity({ name: 'annual_travel_ticket_price_configurations' })
|
|
10
|
-
@Unique(['service_id', 'sub_service_id', 'ticket_year'])
|
|
11
|
-
export class AnnualTravelTicketPriceConfiguration extends BaseModel {
|
|
12
|
-
@Column({ type: 'int', nullable: true })
|
|
13
|
-
service_id: number | null;
|
|
14
|
-
|
|
15
|
-
@Column({ type: 'int', nullable: true })
|
|
16
|
-
sub_service_id: number | null;
|
|
17
|
-
|
|
18
|
-
@Column({ type: 'int', nullable: false })
|
|
19
|
-
ticket_year: number;
|
|
20
|
-
|
|
21
|
-
@Column({ type: 'varchar', length: 255, nullable: true })
|
|
22
|
-
configuration_name: string | null;
|
|
23
|
-
|
|
24
|
-
@Column({ type: 'varchar', length: 10, nullable: true, default: 'OMR' })
|
|
25
|
-
currency_code: string | null;
|
|
26
|
-
|
|
27
|
-
@Column({ type: 'text', nullable: true })
|
|
28
|
-
description: string | null;
|
|
29
|
-
|
|
30
|
-
@Column({ type: 'boolean', default: true, nullable: false })
|
|
31
|
-
is_active: boolean;
|
|
32
|
-
|
|
33
|
-
@OneToMany(() => AnnualTravelTicketPriceConfigurationItem, (item) => item.configuration)
|
|
34
|
-
price_slabs?: AnnualTravelTicketPriceConfigurationItem[];
|
|
35
|
-
}
|
|
1
|
+
import { Column, Entity, OneToMany, Unique } from 'typeorm';
|
|
2
|
+
import { BaseModel } from './BaseModel';
|
|
3
|
+
import { AnnualTravelTicketPriceConfigurationItem } from './AnnualTravelTicketPriceConfigurationItemModel';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Admin configuration for annual travel ticket pricing.
|
|
7
|
+
* One record per year (and optional service/sub-service pair), with multiple age slabs.
|
|
8
|
+
*/
|
|
9
|
+
@Entity({ name: 'annual_travel_ticket_price_configurations' })
|
|
10
|
+
@Unique(['service_id', 'sub_service_id', 'ticket_year'])
|
|
11
|
+
export class AnnualTravelTicketPriceConfiguration extends BaseModel {
|
|
12
|
+
@Column({ type: 'int', nullable: true })
|
|
13
|
+
service_id: number | null;
|
|
14
|
+
|
|
15
|
+
@Column({ type: 'int', nullable: true })
|
|
16
|
+
sub_service_id: number | null;
|
|
17
|
+
|
|
18
|
+
@Column({ type: 'int', nullable: false })
|
|
19
|
+
ticket_year: number;
|
|
20
|
+
|
|
21
|
+
@Column({ type: 'varchar', length: 255, nullable: true })
|
|
22
|
+
configuration_name: string | null;
|
|
23
|
+
|
|
24
|
+
@Column({ type: 'varchar', length: 10, nullable: true, default: 'OMR' })
|
|
25
|
+
currency_code: string | null;
|
|
26
|
+
|
|
27
|
+
@Column({ type: 'text', nullable: true })
|
|
28
|
+
description: string | null;
|
|
29
|
+
|
|
30
|
+
@Column({ type: 'boolean', default: true, nullable: false })
|
|
31
|
+
is_active: boolean;
|
|
32
|
+
|
|
33
|
+
@OneToMany(() => AnnualTravelTicketPriceConfigurationItem, (item) => item.configuration)
|
|
34
|
+
price_slabs?: AnnualTravelTicketPriceConfigurationItem[];
|
|
35
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Column, Entity } from 'typeorm';
|
|
2
|
-
import { BaseModel } from './BaseModel';
|
|
3
|
-
|
|
4
|
-
export enum AnnualTravelTicketPermanentResidence {
|
|
5
|
-
SALALAH = 'Salalah',
|
|
6
|
-
MUSANDAM = 'Musandam',
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface AnnualTravelTicketFamilyDetail {
|
|
10
|
-
person_name: string;
|
|
11
|
-
relation: string;
|
|
12
|
-
age: number;
|
|
13
|
-
age_category: string;
|
|
14
|
-
price: number | string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/** Aligns with mission bank account request lifecycle for shared workflow UI. */
|
|
18
|
-
export enum AnnualTravelTicketRequestStatus {
|
|
19
|
-
PENDING = 'Pending',
|
|
20
|
-
ASSIGNED = 'Assigned',
|
|
1
|
+
import { Column, Entity } from 'typeorm';
|
|
2
|
+
import { BaseModel } from './BaseModel';
|
|
3
|
+
|
|
4
|
+
export enum AnnualTravelTicketPermanentResidence {
|
|
5
|
+
SALALAH = 'Salalah',
|
|
6
|
+
MUSANDAM = 'Musandam',
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface AnnualTravelTicketFamilyDetail {
|
|
10
|
+
person_name: string;
|
|
11
|
+
relation: string;
|
|
12
|
+
age: number;
|
|
13
|
+
age_category: string;
|
|
14
|
+
price: number | string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Aligns with mission bank account request lifecycle for shared workflow UI. */
|
|
18
|
+
export enum AnnualTravelTicketRequestStatus {
|
|
19
|
+
PENDING = 'Pending',
|
|
20
|
+
ASSIGNED = 'Assigned',
|
|
21
21
|
IN_PROGRESS = 'In Progress',
|
|
22
22
|
APPROVED = 'Approved',
|
|
23
23
|
REJECTED = 'Rejected',
|
|
@@ -47,28 +47,28 @@ export class AnnualTravelTicketRequests extends BaseModel {
|
|
|
47
47
|
@Column({ type: 'varchar', length: 120, nullable: false })
|
|
48
48
|
civil_id_or_passport_number: string;
|
|
49
49
|
|
|
50
|
-
@Column({ type: 'enum', enum: AnnualTravelTicketPermanentResidence, nullable: false })
|
|
51
|
-
permanent_residence: AnnualTravelTicketPermanentResidence;
|
|
52
|
-
|
|
53
|
-
/** Traveler list with person name, relation, age, age category, and price. */
|
|
54
|
-
@Column({ type: 'jsonb', nullable: true })
|
|
55
|
-
family_details: AnnualTravelTicketFamilyDetail[] | null;
|
|
56
|
-
|
|
57
|
-
@Column({ type: 'varchar', length: 100, nullable: false })
|
|
58
|
-
bank_account_number: string;
|
|
59
|
-
|
|
60
|
-
@Column({ type: 'varchar', length: 255, nullable: false })
|
|
61
|
-
travel_from: string;
|
|
62
|
-
|
|
63
|
-
@Column({ type: 'varchar', length: 255, nullable: false })
|
|
64
|
-
travel_to: string;
|
|
65
|
-
|
|
66
|
-
@Column({ type: 'date', nullable: false })
|
|
67
|
-
date_of_travel: string;
|
|
68
|
-
|
|
69
|
-
@Column({
|
|
70
|
-
type: 'enum',
|
|
71
|
-
enum: AnnualTravelTicketRequestStatus,
|
|
50
|
+
@Column({ type: 'enum', enum: AnnualTravelTicketPermanentResidence, nullable: false })
|
|
51
|
+
permanent_residence: AnnualTravelTicketPermanentResidence;
|
|
52
|
+
|
|
53
|
+
/** Traveler list with person name, relation, age, age category, and price. */
|
|
54
|
+
@Column({ type: 'jsonb', nullable: true })
|
|
55
|
+
family_details: AnnualTravelTicketFamilyDetail[] | null;
|
|
56
|
+
|
|
57
|
+
@Column({ type: 'varchar', length: 100, nullable: false })
|
|
58
|
+
bank_account_number: string;
|
|
59
|
+
|
|
60
|
+
@Column({ type: 'varchar', length: 255, nullable: false })
|
|
61
|
+
travel_from: string;
|
|
62
|
+
|
|
63
|
+
@Column({ type: 'varchar', length: 255, nullable: false })
|
|
64
|
+
travel_to: string;
|
|
65
|
+
|
|
66
|
+
@Column({ type: 'date', nullable: false })
|
|
67
|
+
date_of_travel: string;
|
|
68
|
+
|
|
69
|
+
@Column({
|
|
70
|
+
type: 'enum',
|
|
71
|
+
enum: AnnualTravelTicketRequestStatus,
|
|
72
72
|
default: AnnualTravelTicketRequestStatus.PENDING,
|
|
73
73
|
nullable: false,
|
|
74
74
|
})
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { Column, Entity } from "typeorm";
|
|
2
|
-
import { BaseModel } from './BaseModel';
|
|
3
|
-
|
|
4
|
-
export enum DiplomaticAcademyStatus {
|
|
5
|
-
SUBMITTED = "Submitted",
|
|
6
|
-
PENDING = "Pending",
|
|
7
|
-
ASSIGNED = "Assigned",
|
|
8
|
-
IN_PROGRESS = "In Progress",
|
|
9
|
-
APPROVED = "Approved",
|
|
10
|
-
REJECTED = "Rejected"
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@Entity({ name: 'diplomatic_academy_requests' })
|
|
14
|
-
export class DiplomaticAcademyRequests extends BaseModel {
|
|
15
|
-
|
|
16
|
-
// Common columns
|
|
17
|
-
@Column({ type: 'int', nullable: true })
|
|
18
|
-
req_user_department_id: number | null;
|
|
19
|
-
|
|
20
|
-
@Column({ type: 'int', nullable: true })
|
|
21
|
-
req_user_section_id: number | null;
|
|
22
|
-
|
|
23
|
-
@Column({ type: 'int', nullable: true })
|
|
24
|
-
service_id: number | null;
|
|
25
|
-
|
|
26
|
-
@Column({ type: 'int', nullable: true })
|
|
27
|
-
sub_service_id: number | null;
|
|
28
|
-
|
|
29
|
-
@Column({ type: 'int', nullable: false })
|
|
30
|
-
user_id: number;
|
|
31
|
-
|
|
32
|
-
// Diplomatic Academy specific columns
|
|
33
|
-
@Column({ type: 'varchar', length: 500, nullable: false })
|
|
34
|
-
course_name: string;
|
|
35
|
-
|
|
36
|
-
@Column({ type: 'jsonb', nullable: true })
|
|
37
|
-
cost_details: {
|
|
38
|
-
material_price?: number;
|
|
39
|
-
transportation?: number;
|
|
40
|
-
accommodation?: number;
|
|
41
|
-
allowances?: number;
|
|
42
|
-
food?: number;
|
|
43
|
-
present?: number;
|
|
44
|
-
} | null;
|
|
45
|
-
|
|
46
|
-
@Column({ type: 'int', nullable: false })
|
|
47
|
-
estimated_participants: number;
|
|
48
|
-
|
|
49
|
-
@Column({ type: 'date', nullable: false })
|
|
50
|
-
timeline_date_from: Date;
|
|
51
|
-
|
|
52
|
-
@Column({ type: 'date', nullable: false })
|
|
53
|
-
timeline_date_to: Date;
|
|
54
|
-
|
|
55
|
-
@Column({ type: 'time', nullable: true })
|
|
56
|
-
timeline_time_from: string | null;
|
|
57
|
-
|
|
58
|
-
@Column({ type: 'time', nullable: true })
|
|
59
|
-
timeline_time_to: string | null;
|
|
60
|
-
|
|
61
|
-
@Column({ type: 'jsonb', nullable: false })
|
|
62
|
-
participants_details: Array<{
|
|
63
|
-
full_name: string;
|
|
64
|
-
passport: string;
|
|
65
|
-
age: number;
|
|
66
|
-
qualifications: string;
|
|
67
|
-
experience: string;
|
|
68
|
-
institution: string;
|
|
69
|
-
}>;
|
|
70
|
-
|
|
71
|
-
@Column({ type: 'enum', enum: DiplomaticAcademyStatus, default: DiplomaticAcademyStatus.PENDING, nullable: false })
|
|
72
|
-
status: DiplomaticAcademyStatus;
|
|
73
|
-
|
|
74
|
-
@Column({ type: 'int', nullable: true })
|
|
75
|
-
course_id: number | null;
|
|
76
|
-
|
|
77
|
-
@Column({ type: 'varchar', nullable: true })
|
|
78
|
-
workflow_execution_id: string | null;
|
|
79
|
-
|
|
80
|
-
}
|
|
1
|
+
import { Column, Entity } from "typeorm";
|
|
2
|
+
import { BaseModel } from './BaseModel';
|
|
3
|
+
|
|
4
|
+
export enum DiplomaticAcademyStatus {
|
|
5
|
+
SUBMITTED = "Submitted",
|
|
6
|
+
PENDING = "Pending",
|
|
7
|
+
ASSIGNED = "Assigned",
|
|
8
|
+
IN_PROGRESS = "In Progress",
|
|
9
|
+
APPROVED = "Approved",
|
|
10
|
+
REJECTED = "Rejected"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@Entity({ name: 'diplomatic_academy_requests' })
|
|
14
|
+
export class DiplomaticAcademyRequests extends BaseModel {
|
|
15
|
+
|
|
16
|
+
// Common columns
|
|
17
|
+
@Column({ type: 'int', nullable: true })
|
|
18
|
+
req_user_department_id: number | null;
|
|
19
|
+
|
|
20
|
+
@Column({ type: 'int', nullable: true })
|
|
21
|
+
req_user_section_id: number | null;
|
|
22
|
+
|
|
23
|
+
@Column({ type: 'int', nullable: true })
|
|
24
|
+
service_id: number | null;
|
|
25
|
+
|
|
26
|
+
@Column({ type: 'int', nullable: true })
|
|
27
|
+
sub_service_id: number | null;
|
|
28
|
+
|
|
29
|
+
@Column({ type: 'int', nullable: false })
|
|
30
|
+
user_id: number;
|
|
31
|
+
|
|
32
|
+
// Diplomatic Academy specific columns
|
|
33
|
+
@Column({ type: 'varchar', length: 500, nullable: false })
|
|
34
|
+
course_name: string;
|
|
35
|
+
|
|
36
|
+
@Column({ type: 'jsonb', nullable: true })
|
|
37
|
+
cost_details: {
|
|
38
|
+
material_price?: number;
|
|
39
|
+
transportation?: number;
|
|
40
|
+
accommodation?: number;
|
|
41
|
+
allowances?: number;
|
|
42
|
+
food?: number;
|
|
43
|
+
present?: number;
|
|
44
|
+
} | null;
|
|
45
|
+
|
|
46
|
+
@Column({ type: 'int', nullable: false })
|
|
47
|
+
estimated_participants: number;
|
|
48
|
+
|
|
49
|
+
@Column({ type: 'date', nullable: false })
|
|
50
|
+
timeline_date_from: Date;
|
|
51
|
+
|
|
52
|
+
@Column({ type: 'date', nullable: false })
|
|
53
|
+
timeline_date_to: Date;
|
|
54
|
+
|
|
55
|
+
@Column({ type: 'time', nullable: true })
|
|
56
|
+
timeline_time_from: string | null;
|
|
57
|
+
|
|
58
|
+
@Column({ type: 'time', nullable: true })
|
|
59
|
+
timeline_time_to: string | null;
|
|
60
|
+
|
|
61
|
+
@Column({ type: 'jsonb', nullable: false })
|
|
62
|
+
participants_details: Array<{
|
|
63
|
+
full_name: string;
|
|
64
|
+
passport: string;
|
|
65
|
+
age: number;
|
|
66
|
+
qualifications: string;
|
|
67
|
+
experience: string;
|
|
68
|
+
institution: string;
|
|
69
|
+
}>;
|
|
70
|
+
|
|
71
|
+
@Column({ type: 'enum', enum: DiplomaticAcademyStatus, default: DiplomaticAcademyStatus.PENDING, nullable: false })
|
|
72
|
+
status: DiplomaticAcademyStatus;
|
|
73
|
+
|
|
74
|
+
@Column({ type: 'int', nullable: true })
|
|
75
|
+
course_id: number | null;
|
|
76
|
+
|
|
77
|
+
@Column({ type: 'varchar', nullable: true })
|
|
78
|
+
workflow_execution_id: string | null;
|
|
79
|
+
|
|
80
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Column, Entity } from 'typeorm';
|
|
2
|
-
import { BaseModel } from './BaseModel';
|
|
3
|
-
|
|
4
|
-
@Entity({ name: 'documentation_files' })
|
|
5
|
-
export class DocumentationFile extends BaseModel {
|
|
6
|
-
@Column({ type: 'int', nullable: true })
|
|
7
|
-
project_id: number | null;
|
|
8
|
-
|
|
9
|
-
@Column({ type: 'int' })
|
|
10
|
-
folder_id: number;
|
|
11
|
-
|
|
12
|
-
@Column({ type: 'text', nullable: true })
|
|
13
|
-
file_path: string;
|
|
14
|
-
|
|
15
|
-
@Column({ type: 'varchar', length: 500, nullable: true })
|
|
16
|
-
filename: string;
|
|
17
|
-
|
|
18
|
-
@Column({ type: 'bigint', nullable: true })
|
|
19
|
-
filesize: number;
|
|
20
|
-
|
|
21
|
-
@Column({ type: 'varchar', length: 100, nullable: true })
|
|
22
|
-
filetype: string;
|
|
23
|
-
|
|
24
|
-
constructor(
|
|
25
|
-
project_id?: number | null,
|
|
26
|
-
folder_id?: number,
|
|
27
|
-
file_path?: string,
|
|
28
|
-
filename?: string,
|
|
29
|
-
filesize?: number,
|
|
30
|
-
filetype?: string
|
|
31
|
-
) {
|
|
32
|
-
super();
|
|
33
|
-
this.project_id = project_id ?? null;
|
|
34
|
-
this.folder_id = folder_id ?? 0;
|
|
35
|
-
this.file_path = file_path ?? '';
|
|
36
|
-
this.filename = filename ?? '';
|
|
37
|
-
this.filesize = filesize ?? 0;
|
|
38
|
-
this.filetype = filetype ?? '';
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
import { Column, Entity } from 'typeorm';
|
|
2
|
+
import { BaseModel } from './BaseModel';
|
|
3
|
+
|
|
4
|
+
@Entity({ name: 'documentation_files' })
|
|
5
|
+
export class DocumentationFile extends BaseModel {
|
|
6
|
+
@Column({ type: 'int', nullable: true })
|
|
7
|
+
project_id: number | null;
|
|
8
|
+
|
|
9
|
+
@Column({ type: 'int' })
|
|
10
|
+
folder_id: number;
|
|
11
|
+
|
|
12
|
+
@Column({ type: 'text', nullable: true })
|
|
13
|
+
file_path: string;
|
|
14
|
+
|
|
15
|
+
@Column({ type: 'varchar', length: 500, nullable: true })
|
|
16
|
+
filename: string;
|
|
17
|
+
|
|
18
|
+
@Column({ type: 'bigint', nullable: true })
|
|
19
|
+
filesize: number;
|
|
20
|
+
|
|
21
|
+
@Column({ type: 'varchar', length: 100, nullable: true })
|
|
22
|
+
filetype: string;
|
|
23
|
+
|
|
24
|
+
constructor(
|
|
25
|
+
project_id?: number | null,
|
|
26
|
+
folder_id?: number,
|
|
27
|
+
file_path?: string,
|
|
28
|
+
filename?: string,
|
|
29
|
+
filesize?: number,
|
|
30
|
+
filetype?: string
|
|
31
|
+
) {
|
|
32
|
+
super();
|
|
33
|
+
this.project_id = project_id ?? null;
|
|
34
|
+
this.folder_id = folder_id ?? 0;
|
|
35
|
+
this.file_path = file_path ?? '';
|
|
36
|
+
this.filename = filename ?? '';
|
|
37
|
+
this.filesize = filesize ?? 0;
|
|
38
|
+
this.filetype = filetype ?? '';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { Column, Entity } from 'typeorm';
|
|
2
|
-
import { BaseModel } from './BaseModel';
|
|
3
|
-
|
|
4
|
-
export enum EmbassyEvaluationCycleStatus {
|
|
5
|
-
DRAFT = 'Draft',
|
|
6
|
-
ACTIVE = 'Active',
|
|
7
|
-
CLOSED = 'Closed',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/** Evaluation period window (month-day stored as MM-DD, year applied at runtime). */
|
|
11
|
-
@Entity({ name: 'embassy_evaluation_cycles' })
|
|
12
|
-
export class EmbassyEvaluationCycle extends BaseModel {
|
|
13
|
-
@Column({ type: 'varchar', length: 255, nullable: false })
|
|
14
|
-
cycle_name: string;
|
|
15
|
-
|
|
16
|
-
/** Start of evaluation window, format MM-DD (e.g. 01-15). */
|
|
17
|
-
@Column({ type: 'varchar', length: 10, nullable: false })
|
|
18
|
-
start_date: string;
|
|
19
|
-
|
|
20
|
-
/** End of evaluation window, format MM-DD. Submissions locked after this date in the active year. */
|
|
21
|
-
@Column({ type: 'varchar', length: 10, nullable: false })
|
|
22
|
-
end_date: string;
|
|
23
|
-
|
|
24
|
-
@Column({
|
|
25
|
-
type: 'enum',
|
|
26
|
-
enum: EmbassyEvaluationCycleStatus,
|
|
27
|
-
enumName: 'embassy_eval_cycle_status_enum',
|
|
28
|
-
default: EmbassyEvaluationCycleStatus.DRAFT,
|
|
29
|
-
nullable: false,
|
|
30
|
-
})
|
|
31
|
-
status: EmbassyEvaluationCycleStatus;
|
|
32
|
-
|
|
33
|
-
@Column({ type: 'int', nullable: true })
|
|
34
|
-
service_id: number | null;
|
|
35
|
-
|
|
36
|
-
@Column({ type: 'int', nullable: true })
|
|
37
|
-
sub_service_id: number | null;
|
|
38
|
-
}
|
|
1
|
+
import { Column, Entity } from 'typeorm';
|
|
2
|
+
import { BaseModel } from './BaseModel';
|
|
3
|
+
|
|
4
|
+
export enum EmbassyEvaluationCycleStatus {
|
|
5
|
+
DRAFT = 'Draft',
|
|
6
|
+
ACTIVE = 'Active',
|
|
7
|
+
CLOSED = 'Closed',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Evaluation period window (month-day stored as MM-DD, year applied at runtime). */
|
|
11
|
+
@Entity({ name: 'embassy_evaluation_cycles' })
|
|
12
|
+
export class EmbassyEvaluationCycle extends BaseModel {
|
|
13
|
+
@Column({ type: 'varchar', length: 255, nullable: false })
|
|
14
|
+
cycle_name: string;
|
|
15
|
+
|
|
16
|
+
/** Start of evaluation window, format MM-DD (e.g. 01-15). */
|
|
17
|
+
@Column({ type: 'varchar', length: 10, nullable: false })
|
|
18
|
+
start_date: string;
|
|
19
|
+
|
|
20
|
+
/** End of evaluation window, format MM-DD. Submissions locked after this date in the active year. */
|
|
21
|
+
@Column({ type: 'varchar', length: 10, nullable: false })
|
|
22
|
+
end_date: string;
|
|
23
|
+
|
|
24
|
+
@Column({
|
|
25
|
+
type: 'enum',
|
|
26
|
+
enum: EmbassyEvaluationCycleStatus,
|
|
27
|
+
enumName: 'embassy_eval_cycle_status_enum',
|
|
28
|
+
default: EmbassyEvaluationCycleStatus.DRAFT,
|
|
29
|
+
nullable: false,
|
|
30
|
+
})
|
|
31
|
+
status: EmbassyEvaluationCycleStatus;
|
|
32
|
+
|
|
33
|
+
@Column({ type: 'int', nullable: true })
|
|
34
|
+
service_id: number | null;
|
|
35
|
+
|
|
36
|
+
@Column({ type: 'int', nullable: true })
|
|
37
|
+
sub_service_id: number | null;
|
|
38
|
+
}
|