diff --git a/src/database/entities/package-detail.entity.ts b/src/database/entities/package-detail.entity.ts index 56333e2..2e1e12e 100644 --- a/src/database/entities/package-detail.entity.ts +++ b/src/database/entities/package-detail.entity.ts @@ -65,15 +65,27 @@ export class PackageDetail { @Property({ type: "decimal", unsigned: true }) quadPrice!: number; + @Property({ type: "decimal", unsigned: true }) + quadDiscount!: number; + @Property({ type: "decimal", unsigned: true }) triplePrice!: number; + @Property({ type: "decimal", unsigned: true }) + tripleDiscount!: number; + @Property({ type: "decimal", unsigned: true }) doublePrice!: number; + @Property({ type: "decimal", unsigned: true }) + doubleDiscount!: number; + @Property({ type: "decimal", nullable: true, unsigned: true }) infantPrice!: number | null; + @Property({ type: "decimal", nullable: true, unsigned: true }) + infantDiscount!: number | null; + @ManyToOne(() => PackageItinerary, { cascade: [Cascade.REMOVE], }) diff --git a/src/database/migrations/.snapshot-goumrah.json b/src/database/migrations/.snapshot-goumrah.json new file mode 100644 index 0000000..46bcbbf --- /dev/null +++ b/src/database/migrations/.snapshot-goumrah.json @@ -0,0 +1,3504 @@ +{ + "namespaces": [ + "public" + ], + "name": "public", + "tables": [ + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "code": { + "name": "code", + "type": "varchar(10)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 10, + "mappedType": "string" + }, + "logo": { + "name": "logo", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "skytrax_rating": { + "name": "skytrax_rating", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "skytrax_type": { + "name": "skytrax_type", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "full_service", + "low_cost" + ], + "mappedType": "enum" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "airline", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "code" + ], + "composite": false, + "keyName": "airline_code_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "airline_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "thumbnail": { + "name": "thumbnail", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "slug": { + "name": "slug", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "title": { + "name": "title", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "content": { + "name": "content", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "views": { + "name": "views", + "type": "int", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "article", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "slug" + ], + "composite": false, + "keyName": "article_slug_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "article_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "country", + "schema": "public", + "indexes": [ + { + "keyName": "country_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "country_id": { + "name": "country_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "city", + "schema": "public", + "indexes": [ + { + "keyName": "city_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "city_country_id_foreign": { + "constraintName": "city_country_id_foreign", + "columnNames": [ + "country_id" + ], + "localTableName": "public.city", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.country", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "code": { + "name": "code", + "type": "varchar(10)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 10, + "mappedType": "string" + }, + "city_id": { + "name": "city_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "airport", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "code" + ], + "composite": false, + "keyName": "airport_code_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "airport_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "airport_city_id_foreign": { + "constraintName": "airport_city_id_foreign", + "columnNames": [ + "city_id" + ], + "localTableName": "public.airport", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.city", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "airline_id": { + "name": "airline_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "number": { + "name": "number", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "departure_airport_id": { + "name": "departure_airport_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "departure_terminal": { + "name": "departure_terminal", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "departure_gate": { + "name": "departure_gate", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "departure_time": { + "name": "departure_time", + "type": "time(0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 0, + "mappedType": "time" + }, + "arrival_airport_id": { + "name": "arrival_airport_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "arrival_terminal": { + "name": "arrival_terminal", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "arrival_gate": { + "name": "arrival_gate", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "duration": { + "name": "duration", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "aircraft": { + "name": "aircraft", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "flight", + "schema": "public", + "indexes": [ + { + "keyName": "flight_airline_id_number_unique", + "columnNames": [ + "airline_id", + "number" + ], + "composite": true, + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "flight_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "flight_airline_id_foreign": { + "constraintName": "flight_airline_id_foreign", + "columnNames": [ + "airline_id" + ], + "localTableName": "public.flight", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.airline", + "updateRule": "cascade" + }, + "flight_departure_airport_id_foreign": { + "constraintName": "flight_departure_airport_id_foreign", + "columnNames": [ + "departure_airport_id" + ], + "localTableName": "public.flight", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.airport", + "updateRule": "cascade" + }, + "flight_arrival_airport_id_foreign": { + "constraintName": "flight_arrival_airport_id_foreign", + "columnNames": [ + "arrival_airport_id" + ], + "localTableName": "public.flight", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.airport", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "flight_id": { + "name": "flight_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "class": { + "name": "class", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "seat_layout": { + "name": "seat_layout", + "type": "varchar(10)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 10, + "mappedType": "string" + }, + "baggage": { + "name": "baggage", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "cabin_baggage": { + "name": "cabin_baggage", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "flight_class", + "schema": "public", + "indexes": [ + { + "keyName": "flight_class_flight_id_class_unique", + "columnNames": [ + "flight_id", + "class" + ], + "composite": true, + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "flight_class_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "flight_class_flight_id_foreign": { + "constraintName": "flight_class_flight_id_foreign", + "columnNames": [ + "flight_id" + ], + "localTableName": "public.flight_class", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.flight", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "flight_id": { + "name": "flight_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "next_id": { + "name": "next_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "flight_schedule", + "schema": "public", + "indexes": [ + { + "keyName": "flight_schedule_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "flight_schedule_flight_id_foreign": { + "constraintName": "flight_schedule_flight_id_foreign", + "columnNames": [ + "flight_id" + ], + "localTableName": "public.flight_schedule", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.flight_class", + "updateRule": "cascade" + }, + "flight_schedule_next_id_foreign": { + "constraintName": "flight_schedule_next_id_foreign", + "columnNames": [ + "next_id" + ], + "localTableName": "public.flight_schedule", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.flight_schedule", + "deleteRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "city_id": { + "name": "city_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "star": { + "name": "star", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "google_maps_link": { + "name": "google_maps_link", + "type": "varchar(1000)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 1000, + "mappedType": "string" + }, + "google_maps_embed": { + "name": "google_maps_embed", + "type": "varchar(1000)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 1000, + "mappedType": "string" + }, + "google_reviews_link": { + "name": "google_reviews_link", + "type": "varchar(1000)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 1000, + "mappedType": "string" + }, + "description": { + "name": "description", + "type": "varchar(1000)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 1000, + "mappedType": "string" + }, + "address": { + "name": "address", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "landmark": { + "name": "landmark", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "distance_to_landmark": { + "name": "distance_to_landmark", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "food_type": { + "name": "food_type", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "food_amount": { + "name": "food_amount", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "food_menu": { + "name": "food_menu", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "hotel", + "schema": "public", + "indexes": [ + { + "keyName": "hotel_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "hotel_city_id_foreign": { + "constraintName": "hotel_city_id_foreign", + "columnNames": [ + "city_id" + ], + "localTableName": "public.hotel", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.city", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "icon": { + "name": "icon", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "hotel_facility", + "schema": "public", + "indexes": [ + { + "keyName": "hotel_facility_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "hotel_id": { + "name": "hotel_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "hotel_facility_id": { + "name": "hotel_facility_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + } + }, + "name": "hotel_facilities", + "schema": "public", + "indexes": [ + { + "keyName": "hotel_facilities_pkey", + "columnNames": [ + "hotel_id", + "hotel_facility_id" + ], + "composite": true, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "hotel_facilities_hotel_id_foreign": { + "constraintName": "hotel_facilities_hotel_id_foreign", + "columnNames": [ + "hotel_id" + ], + "localTableName": "public.hotel_facilities", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel", + "deleteRule": "cascade", + "updateRule": "cascade" + }, + "hotel_facilities_hotel_facility_id_foreign": { + "constraintName": "hotel_facilities_hotel_facility_id_foreign", + "columnNames": [ + "hotel_facility_id" + ], + "localTableName": "public.hotel_facilities", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel_facility", + "deleteRule": "cascade", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "hotel_id": { + "name": "hotel_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "src": { + "name": "src", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "hotel_image", + "schema": "public", + "indexes": [ + { + "keyName": "hotel_image_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "hotel_image_hotel_id_foreign": { + "constraintName": "hotel_image_hotel_id_foreign", + "columnNames": [ + "hotel_id" + ], + "localTableName": "public.hotel_image", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "title": { + "name": "title", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "description": { + "name": "description", + "type": "varchar(1000)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 1000, + "mappedType": "string" + }, + "next_id": { + "name": "next_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "package_itinerary_day", + "schema": "public", + "indexes": [ + { + "keyName": "package_itinerary_day_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_itinerary_day_next_id_foreign": { + "constraintName": "package_itinerary_day_next_id_foreign", + "columnNames": [ + "next_id" + ], + "localTableName": "public.package_itinerary_day", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_itinerary_day", + "deleteRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "location": { + "name": "location", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "day_id": { + "name": "day_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "next_id": { + "name": "next_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "package_itinerary", + "schema": "public", + "indexes": [ + { + "keyName": "package_itinerary_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_itinerary_day_id_foreign": { + "constraintName": "package_itinerary_day_id_foreign", + "columnNames": [ + "day_id" + ], + "localTableName": "public.package_itinerary", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_itinerary_day", + "deleteRule": "cascade" + }, + "package_itinerary_next_id_foreign": { + "constraintName": "package_itinerary_next_id_foreign", + "columnNames": [ + "next_id" + ], + "localTableName": "public.package_itinerary", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_itinerary", + "deleteRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "package_itinerary_id": { + "name": "package_itinerary_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "src": { + "name": "src", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "package_itinerary_image", + "schema": "public", + "indexes": [ + { + "keyName": "package_itinerary_image_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_itinerary_image_package_itinerary_id_foreign": { + "constraintName": "package_itinerary_image_package_itinerary_id_foreign", + "columnNames": [ + "package_itinerary_id" + ], + "localTableName": "public.package_itinerary_image", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_itinerary", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "package_itinerary_day_id": { + "name": "package_itinerary_day_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "type": { + "name": "type", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "hotel", + "information", + "transport" + ], + "mappedType": "enum" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "hotel_id": { + "name": "hotel_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "description": { + "name": "description", + "type": "varchar(1000)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 1000, + "mappedType": "string" + }, + "transportation": { + "name": "transportation", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "from": { + "name": "from", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "to": { + "name": "to", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + } + }, + "name": "package_itinerary_widget", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "type" + ], + "composite": false, + "keyName": "package_itinerary_widget_type_index", + "constraint": false, + "primary": false, + "unique": false + }, + { + "keyName": "package_itinerary_widget_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_itinerary_widget_package_itinerary_day_id_foreign": { + "constraintName": "package_itinerary_widget_package_itinerary_day_id_foreign", + "columnNames": [ + "package_itinerary_day_id" + ], + "localTableName": "public.package_itinerary_widget", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_itinerary_day", + "updateRule": "cascade" + }, + "package_itinerary_widget_hotel_id_foreign": { + "constraintName": "package_itinerary_widget_hotel_id_foreign", + "columnNames": [ + "hotel_id" + ], + "localTableName": "public.package_itinerary_widget", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel", + "deleteRule": "set null", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "slug": { + "name": "slug", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "tag", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "slug" + ], + "composite": false, + "keyName": "tag_slug_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "tag_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "article_id": { + "name": "article_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "tag_id": { + "name": "tag_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + } + }, + "name": "article_tags", + "schema": "public", + "indexes": [ + { + "keyName": "article_tags_pkey", + "columnNames": [ + "article_id", + "tag_id" + ], + "composite": true, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "article_tags_article_id_foreign": { + "constraintName": "article_tags_article_id_foreign", + "columnNames": [ + "article_id" + ], + "localTableName": "public.article_tags", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.article", + "deleteRule": "cascade", + "updateRule": "cascade" + }, + "article_tags_tag_id_foreign": { + "constraintName": "article_tags_tag_id_foreign", + "columnNames": [ + "tag_id" + ], + "localTableName": "public.article_tags", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.tag", + "deleteRule": "cascade", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "type": { + "name": "type", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "transportation", + "schema": "public", + "indexes": [ + { + "keyName": "transportation_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "transportation_id": { + "name": "transportation_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "class": { + "name": "class", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "total_seats": { + "name": "total_seats", + "type": "int", + "unsigned": true, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "integer" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "transportation_class", + "schema": "public", + "indexes": [ + { + "keyName": "transportation_class_transportation_id_class_unique", + "columnNames": [ + "transportation_id", + "class" + ], + "composite": true, + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "transportation_class_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "transportation_class_transportation_id_foreign": { + "constraintName": "transportation_class_transportation_id_foreign", + "columnNames": [ + "transportation_id" + ], + "localTableName": "public.transportation_class", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.transportation", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "transportation_id": { + "name": "transportation_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "src": { + "name": "src", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "transportation_image", + "schema": "public", + "indexes": [ + { + "keyName": "transportation_image_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "transportation_image_transportation_id_foreign": { + "constraintName": "transportation_image_transportation_id_foreign", + "columnNames": [ + "transportation_id" + ], + "localTableName": "public.transportation_image", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.transportation_class", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "code": { + "name": "code", + "type": "char(6)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "character" + }, + "type": { + "name": "type", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "admin:create", + "admin:changeEmail", + "admin:changePassword", + "admin:update", + "partner:create", + "partner:changeEmail", + "partner:changePassword", + "partner:update", + "order:create" + ], + "mappedType": "enum" + }, + "expired_at": { + "name": "expired_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "verification", + "schema": "public", + "indexes": [ + { + "keyName": "verification_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": {}, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "email": { + "name": "email", + "type": "varchar(254)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 254, + "mappedType": "string" + }, + "whatsapp": { + "name": "whatsapp", + "type": "varchar(20)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 20, + "mappedType": "string" + }, + "password": { + "name": "password", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "avatar": { + "name": "avatar", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "verification_id": { + "name": "verification_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "partner", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "email" + ], + "composite": false, + "keyName": "partner_email_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "columnNames": [ + "whatsapp" + ], + "composite": false, + "keyName": "partner_whatsapp_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "partner_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "partner_verification_id_foreign": { + "constraintName": "partner_verification_id_foreign", + "columnNames": [ + "verification_id" + ], + "localTableName": "public.partner", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.verification", + "deleteRule": "set null", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "slug": { + "name": "slug", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "type": { + "name": "type", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "reguler", + "plus" + ], + "mappedType": "enum" + }, + "class": { + "name": "class", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "silver", + "gold", + "platinum" + ], + "mappedType": "enum" + }, + "thumbnail": { + "name": "thumbnail", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "use_fast_train": { + "name": "use_fast_train", + "type": "boolean", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "boolean" + }, + "partner_id": { + "name": "partner_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "package", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "slug" + ], + "composite": false, + "keyName": "package_slug_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "package_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_partner_id_foreign": { + "constraintName": "package_partner_id_foreign", + "columnNames": [ + "partner_id" + ], + "localTableName": "public.package", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.partner", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "package_id": { + "name": "package_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "departure_date": { + "name": "departure_date", + "type": "date", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 0, + "mappedType": "date" + }, + "tour_flight_id": { + "name": "tour_flight_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "outbound_flight_id": { + "name": "outbound_flight_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "inbound_flight_id": { + "name": "inbound_flight_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "makkah_hotel_id": { + "name": "makkah_hotel_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "madinah_hotel_id": { + "name": "madinah_hotel_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "transportation_id": { + "name": "transportation_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "quad_price": { + "name": "quad_price", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "quad_discount": { + "name": "quad_discount", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "triple_price": { + "name": "triple_price", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "triple_discount": { + "name": "triple_discount", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "double_price": { + "name": "double_price", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "double_discount": { + "name": "double_discount", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "infant_price": { + "name": "infant_price", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "infant_discount": { + "name": "infant_discount", + "type": "numeric(10,0)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "precision": 10, + "scale": 0, + "mappedType": "decimal" + }, + "itinerary_id": { + "name": "itinerary_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "package_detail", + "schema": "public", + "indexes": [ + { + "keyName": "package_detail_package_id_departure_date_unique", + "columnNames": [ + "package_id", + "departure_date" + ], + "composite": true, + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "package_detail_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_detail_package_id_foreign": { + "constraintName": "package_detail_package_id_foreign", + "columnNames": [ + "package_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package", + "updateRule": "cascade" + }, + "package_detail_tour_flight_id_foreign": { + "constraintName": "package_detail_tour_flight_id_foreign", + "columnNames": [ + "tour_flight_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.flight_schedule", + "deleteRule": "cascade" + }, + "package_detail_outbound_flight_id_foreign": { + "constraintName": "package_detail_outbound_flight_id_foreign", + "columnNames": [ + "outbound_flight_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.flight_schedule", + "deleteRule": "cascade" + }, + "package_detail_inbound_flight_id_foreign": { + "constraintName": "package_detail_inbound_flight_id_foreign", + "columnNames": [ + "inbound_flight_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.flight_schedule", + "deleteRule": "cascade" + }, + "package_detail_makkah_hotel_id_foreign": { + "constraintName": "package_detail_makkah_hotel_id_foreign", + "columnNames": [ + "makkah_hotel_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel", + "deleteRule": "cascade" + }, + "package_detail_madinah_hotel_id_foreign": { + "constraintName": "package_detail_madinah_hotel_id_foreign", + "columnNames": [ + "madinah_hotel_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel", + "deleteRule": "cascade" + }, + "package_detail_transportation_id_foreign": { + "constraintName": "package_detail_transportation_id_foreign", + "columnNames": [ + "transportation_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.transportation_class", + "updateRule": "cascade" + }, + "package_detail_itinerary_id_foreign": { + "constraintName": "package_detail_itinerary_id_foreign", + "columnNames": [ + "itinerary_id" + ], + "localTableName": "public.package_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_itinerary", + "deleteRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "package_detail_id": { + "name": "package_detail_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "hotel_id": { + "name": "hotel_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + } + }, + "name": "package_detail_tour_hotels", + "schema": "public", + "indexes": [ + { + "keyName": "package_detail_tour_hotels_pkey", + "columnNames": [ + "package_detail_id", + "hotel_id" + ], + "composite": true, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_detail_tour_hotels_package_detail_id_foreign": { + "constraintName": "package_detail_tour_hotels_package_detail_id_foreign", + "columnNames": [ + "package_detail_id" + ], + "localTableName": "public.package_detail_tour_hotels", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_detail", + "deleteRule": "cascade", + "updateRule": "cascade" + }, + "package_detail_tour_hotels_hotel_id_foreign": { + "constraintName": "package_detail_tour_hotels_hotel_id_foreign", + "columnNames": [ + "hotel_id" + ], + "localTableName": "public.package_detail_tour_hotels", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.hotel", + "deleteRule": "cascade", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "code": { + "name": "code", + "type": "varchar(6)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "string" + }, + "package_id": { + "name": "package_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "package_consult_session", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "code" + ], + "composite": false, + "keyName": "package_consult_session_code_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "package_consult_session_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "package_consult_session_package_id_foreign": { + "constraintName": "package_consult_session_package_id_foreign", + "columnNames": [ + "package_id" + ], + "localTableName": "public.package_consult_session", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "package_id": { + "name": "package_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "whatsapp": { + "name": "whatsapp", + "type": "varchar(20)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 20, + "mappedType": "string" + }, + "verification_id": { + "name": "verification_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "partner_id": { + "name": "partner_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "expired_at": { + "name": "expired_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "purchased_at": { + "name": "purchased_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "finished_at": { + "name": "finished_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 6, + "mappedType": "datetime" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "order", + "schema": "public", + "indexes": [ + { + "keyName": "order_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_package_id_foreign": { + "constraintName": "order_package_id_foreign", + "columnNames": [ + "package_id" + ], + "localTableName": "public.order", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.package_detail", + "updateRule": "cascade" + }, + "order_verification_id_foreign": { + "constraintName": "order_verification_id_foreign", + "columnNames": [ + "verification_id" + ], + "localTableName": "public.order", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.verification", + "deleteRule": "set null", + "updateRule": "cascade" + }, + "order_partner_id_foreign": { + "constraintName": "order_partner_id_foreign", + "columnNames": [ + "partner_id" + ], + "localTableName": "public.order", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.partner", + "deleteRule": "set null", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "order_id": { + "name": "order_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "room_type": { + "name": "room_type", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "quad", + "triple", + "double", + "infant" + ], + "mappedType": "enum" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "order_detail", + "schema": "public", + "indexes": [ + { + "keyName": "order_detail_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "order_detail_order_id_foreign": { + "constraintName": "order_detail_order_id_foreign", + "columnNames": [ + "order_id" + ], + "localTableName": "public.order_detail", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.order", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + }, + { + "columns": { + "id": { + "name": "id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 30, + "mappedType": "string" + }, + "name": { + "name": "name", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 100, + "mappedType": "string" + }, + "email": { + "name": "email", + "type": "varchar(254)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 254, + "mappedType": "string" + }, + "password": { + "name": "password", + "type": "text", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "mappedType": "text" + }, + "avatar": { + "name": "avatar", + "type": "varchar(100)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 100, + "mappedType": "string" + }, + "permissions": { + "name": "permissions", + "type": "text[]", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "enumItems": [ + "country:create", + "country:update", + "country:delete", + "city:create", + "city:update", + "city:delete", + "airline:create", + "airline:update", + "airline:delete", + "airport:create", + "airport:update", + "airport:delete", + "flight:create", + "flight:update", + "flight:delete", + "flight-class:create", + "flight-class:update", + "flight-class:delete", + "hotel-facility:create", + "hotel-facility:update", + "hotel-facility:delete", + "hotel:create", + "hotel:update", + "hotel:delete", + "transportation:create", + "transportation:update", + "transportation:delete", + "transportation-class:create", + "transportation-class:update", + "transportation-class:delete", + "package:create", + "package:update", + "package:delete", + "package-detail:create", + "package-detail:update", + "package-detail:delete", + "admin:create", + "admin:update", + "admin:delete", + "partner:create", + "partner:update", + "partner:delete", + "tag:create", + "tag:update", + "tag:delete", + "article:create", + "article:update", + "article:delete" + ], + "mappedType": "array" + }, + "verification_id": { + "name": "verification_id", + "type": "varchar(30)", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": true, + "length": 30, + "mappedType": "string" + }, + "created_at": { + "name": "created_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamptz", + "unsigned": false, + "autoincrement": false, + "primary": false, + "nullable": false, + "length": 6, + "mappedType": "datetime" + } + }, + "name": "admin", + "schema": "public", + "indexes": [ + { + "columnNames": [ + "email" + ], + "composite": false, + "keyName": "admin_email_unique", + "constraint": true, + "primary": false, + "unique": true + }, + { + "keyName": "admin_pkey", + "columnNames": [ + "id" + ], + "composite": false, + "constraint": true, + "primary": true, + "unique": true + } + ], + "checks": [], + "foreignKeys": { + "admin_verification_id_foreign": { + "constraintName": "admin_verification_id_foreign", + "columnNames": [ + "verification_id" + ], + "localTableName": "public.admin", + "referencedColumnNames": [ + "id" + ], + "referencedTableName": "public.verification", + "deleteRule": "set null", + "updateRule": "cascade" + } + }, + "nativeEnums": {} + } + ], + "nativeEnums": {} +} diff --git a/src/database/migrations/Migration20251203114705.ts b/src/database/migrations/Migration20251203114705.ts new file mode 100644 index 0000000..88676e7 --- /dev/null +++ b/src/database/migrations/Migration20251203114705.ts @@ -0,0 +1,25 @@ +import { Migration } from "@mikro-orm/migrations"; + +export class Migration20251203114705 extends Migration { + override async up(): Promise { + const knex = this.getKnex(); + + await knex.schema.alterTable("packages", (table) => { + table.decimal("quad_discount", 10, 2).notNullable().defaultTo(0); + table.decimal("triple_discount", 10, 2).notNullable().defaultTo(0); + table.decimal("double_discount", 10, 2).notNullable().defaultTo(0); + table.decimal("infant_discount", 10, 2).notNullable().defaultTo(0); + }); + } + + override async down(): Promise { + const knex = this.getKnex(); + + await knex.schema.alterTable("packages", (table) => { + table.dropColumn("quad_discount"); + table.dropColumn("triple_discount"); + table.dropColumn("double_discount"); + table.dropColumn("infant_discount"); + }); + } +} diff --git a/src/modules/package/package.controller.ts b/src/modules/package/package.controller.ts index cdfa8f3..0d57f85 100644 --- a/src/modules/package/package.controller.ts +++ b/src/modules/package/package.controller.ts @@ -675,9 +675,13 @@ export class PackageController extends Controller { madinahHotel: madinahHotel, transportation: transportationClass, quadPrice: body.quad_price, + quadDiscount: body.quad_discount, triplePrice: body.triple_price, + tripleDiscount: body.triple_discount, doublePrice: body.double_price, + doubleDiscount: body.double_discount, infantPrice: body.infant_price, + infantDiscount: body.infant_discount, itinerary: itineraryEntity, createdAt: new Date(), updatedAt: new Date(), @@ -1258,9 +1262,13 @@ export class PackageController extends Controller { madinahHotel: madinahHotel, transportation: transportationClass, quadPrice: body.quad_price, + quadDiscount: body.quad_discount, triplePrice: body.triple_price, + tripleDiscount: body.triple_discount, doublePrice: body.double_price, + doubleDiscount: body.double_discount, infantPrice: body.infant_price, + infantDiscount: body.infant_discount, itinerary: itineraryEntity, updatedAt: new Date(), }); diff --git a/src/modules/package/package.mapper.ts b/src/modules/package/package.mapper.ts index ae163d1..085ab06 100644 --- a/src/modules/package/package.mapper.ts +++ b/src/modules/package/package.mapper.ts @@ -173,9 +173,13 @@ export class PackageMapper { packageDetail.transportation, ), quad_price: packageDetail.quadPrice, + quad_discount: packageDetail.quadDiscount, triple_price: packageDetail.triplePrice, + triple_discount: packageDetail.tripleDiscount, double_price: packageDetail.doublePrice, + double_discount: packageDetail.doubleDiscount, infant_price: packageDetail.infantPrice, + infant_discount: packageDetail.infantDiscount, itineraries, created_at: packageDetail.createdAt, updated_at: packageDetail.updatedAt, diff --git a/src/modules/package/package.schemas.ts b/src/modules/package/package.schemas.ts index b0bd775..f5d3aaf 100644 --- a/src/modules/package/package.schemas.ts +++ b/src/modules/package/package.schemas.ts @@ -77,19 +77,36 @@ export const packageDetailRequestSchema = z.object({ .number("Must be number.") .int("Must be integer.") .positive("Must be positive."), + quad_discount: z + .number("Must be number.") + .int("Must be integer.") + .nonnegative("Must be non-negative."), triple_price: z .number("Must be number.") .int("Must be integer.") .positive("Must be positive."), + triple_discount: z + .number("Must be number.") + .int("Must be integer.") + .nonnegative("Must be non-negative."), double_price: z .number("Must be number.") .int("Must be integer.") .positive("Must be positive."), + double_discount: z + .number("Must be number.") + .int("Must be integer.") + .nonnegative("Must be non-negative."), infant_price: z .number("Must be number.") .int("Must be integer.") .positive("Must be positive.") .nullable(), + infant_discount: z + .number("Must be number.") + .int("Must be integer.") + .nonnegative("Must be non-negative.") + .nullable(), itineraries: z.array( z.object( { diff --git a/src/modules/package/package.types.ts b/src/modules/package/package.types.ts index 814cc04..dc2f145 100644 --- a/src/modules/package/package.types.ts +++ b/src/modules/package/package.types.ts @@ -78,9 +78,13 @@ export type PackageDetailResponse = { madinah_hotel: HotelResponse; transportation: TransportationClassResponse; quad_price: number; + quad_discount: number; triple_price: number; + triple_discount: number; double_price: number; + double_discount: number; infant_price: number | null; + infant_discount: number | null; itineraries: PackageItineraryResponse[]; created_at: Date; updated_at: Date;