masters data done
This commit is contained in:
+345
-300
@@ -3,22 +3,15 @@
|
||||
-- PostgreSQL 14+
|
||||
-- Generated from TypeORM entities (aeroresolve_backend)
|
||||
-- =============================================================================
|
||||
--
|
||||
-- Usage:
|
||||
-- psql -h <host> -U <user> -d <database> -f database/schema.sql
|
||||
--
|
||||
-- Notes:
|
||||
-- - Column names use camelCase to match TypeORM entity field names.
|
||||
-- - In local/dev, TypeORM can also sync via DB_SYNCHRONIZE=true.
|
||||
-- - Run scripts/seed-master-data.ts after schema creation for demo data.
|
||||
-- =============================================================================
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
||||
|
||||
-- ─── Schemas ────────────────────────────────────────────────────────────────
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS tenant;
|
||||
CREATE SCHEMA IF NOT EXISTS masters;
|
||||
CREATE SCHEMA IF NOT EXISTS masters_rule_engine;
|
||||
CREATE SCHEMA IF NOT EXISTS masters_action_builder;
|
||||
CREATE SCHEMA IF NOT EXISTS masters_lookup;
|
||||
CREATE SCHEMA IF NOT EXISTS cohort;
|
||||
CREATE SCHEMA IF NOT EXISTS policy_engine;
|
||||
CREATE SCHEMA IF NOT EXISTS audit;
|
||||
@@ -84,9 +77,9 @@ CREATE TABLE IF NOT EXISTS tenant.tbl_tenants (
|
||||
CONSTRAINT uq_tbl_tenants_slug UNIQUE (slug)
|
||||
);
|
||||
|
||||
-- ─── Master Data ────────────────────────────────────────────────────────────
|
||||
-- ─── 1. Masters Lookup Schema (Domain Master Tables) ─────────────────────────
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_membership_tiers (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_membership_tiers (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -95,7 +88,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_membership_tiers (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_customer_values (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_customer_values (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -104,7 +97,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_customer_values (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_regions (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_regions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -113,7 +106,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_regions (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_trip_purposes (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_trip_purposes (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -122,7 +115,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_trip_purposes (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_cabin_classes (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_cabin_classes (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -131,7 +124,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_cabin_classes (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_passenger_types (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_passenger_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -140,7 +133,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_passenger_types (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_ancillary_purchases (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_ancillary_purchases (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -149,7 +142,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_ancillary_purchases (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_revenue_segments (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_revenue_segments (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -158,7 +151,7 @@ CREATE TABLE IF NOT EXISTS masters.tbl_revenue_segments (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_jurisdictions (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_jurisdictions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
@@ -167,7 +160,226 @@ CREATE TABLE IF NOT EXISTS masters.tbl_jurisdictions (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_rules_categories (
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_booking_channels (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_flight_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_journey_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_fare_flexibilities (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_carrier_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_special_assistance_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_delay_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_delay_durations (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_extraordinary_circumstances (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_cancellation_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_diversion_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_missed_connection_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_compensation_eligibilities (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_compensation_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_refund_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_flight_disruption_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_airline_responsibilities (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_weather_conditions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_atc_restrictions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_technical_fault_categories (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_refund_bases (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_currencies (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
symbol VARCHAR,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_refund_methods (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_lookup.tbl_amount_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- ─── 2. Masters Rule Engine Schema (Condition & Category Metadata) ───────────
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_rule_engine.tbl_rules_categories (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
code VARCHAR(100) NOT NULL UNIQUE,
|
||||
name VARCHAR(150) NOT NULL,
|
||||
@@ -179,187 +391,39 @@ CREATE TABLE IF NOT EXISTS masters.tbl_rules_categories (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_booking_channels (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
CREATE TABLE IF NOT EXISTS masters_rule_engine.tbl_condition_groups (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
code VARCHAR(100) NOT NULL UNIQUE,
|
||||
name VARCHAR(150) NOT NULL,
|
||||
"displayOrder" INT DEFAULT 0,
|
||||
"isActive" BOOLEAN DEFAULT TRUE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_flight_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
CREATE TABLE IF NOT EXISTS masters_rule_engine.tbl_rule_category_groups (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"ruleCategoryId" UUID NOT NULL REFERENCES masters_rule_engine.tbl_rules_categories(id) ON DELETE CASCADE,
|
||||
"conditionGroupId" UUID NOT NULL REFERENCES masters_rule_engine.tbl_condition_groups(id) ON DELETE CASCADE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
CONSTRAINT uq_rule_category_group UNIQUE ("ruleCategoryId", "conditionGroupId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_journey_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
CREATE TABLE IF NOT EXISTS masters_rule_engine.tbl_condition_fields (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"groupId" UUID NOT NULL REFERENCES masters_rule_engine.tbl_condition_groups(id) ON DELETE CASCADE,
|
||||
code VARCHAR(100) NOT NULL UNIQUE,
|
||||
name VARCHAR(150) NOT NULL,
|
||||
"lookupTable" VARCHAR,
|
||||
"dataType" VARCHAR NOT NULL DEFAULT 'STRING',
|
||||
"operatorType" VARCHAR NOT NULL DEFAULT 'COMPARISON',
|
||||
"displayOrder" INT DEFAULT 0,
|
||||
"isActive" BOOLEAN DEFAULT TRUE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_fare_flexibilities (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_carrier_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_special_assistance_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_delay_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_delay_durations (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_extraordinary_circumstances (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_cancellation_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_diversion_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_missed_connection_reasons (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_compensation_eligibilities (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_compensation_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_refund_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_flight_disruption_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_airline_responsibilities (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_weather_conditions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_atc_restrictions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_technical_fault_categories (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_operators (
|
||||
CREATE TABLE IF NOT EXISTS masters_rule_engine.tbl_operators (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
code VARCHAR(50) NOT NULL UNIQUE,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
@@ -371,6 +435,80 @@ CREATE TABLE IF NOT EXISTS masters.tbl_operators (
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- ─── 3. Masters Action Builder Schema ───────────────────────────────────────
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_action_builder.tbl_action_categories (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
code VARCHAR NOT NULL UNIQUE,
|
||||
name VARCHAR NOT NULL,
|
||||
description TEXT,
|
||||
"displayOrder" INT DEFAULT 0,
|
||||
"isActive" BOOLEAN DEFAULT TRUE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_action_builder.tbl_action_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"categoryId" UUID NOT NULL REFERENCES masters_action_builder.tbl_action_categories(id) ON DELETE CASCADE,
|
||||
code VARCHAR NOT NULL UNIQUE,
|
||||
name VARCHAR NOT NULL,
|
||||
description TEXT,
|
||||
"displayOrder" INT DEFAULT 0,
|
||||
"isActive" BOOLEAN DEFAULT TRUE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_action_builder.tbl_field_definitions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"actionTypeId" UUID NOT NULL REFERENCES masters_action_builder.tbl_action_types(id) ON DELETE CASCADE,
|
||||
"fieldCode" VARCHAR NOT NULL,
|
||||
"fieldName" VARCHAR NOT NULL,
|
||||
"fieldType" VARCHAR NOT NULL,
|
||||
"lookupSource" VARCHAR,
|
||||
"isRequired" BOOLEAN NOT NULL DEFAULT false,
|
||||
"defaultValue" TEXT,
|
||||
placeholder VARCHAR,
|
||||
"helpText" TEXT,
|
||||
width VARCHAR NOT NULL DEFAULT 'full',
|
||||
section VARCHAR,
|
||||
"displayOrder" INT NOT NULL DEFAULT 0,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"validationJson" JSONB,
|
||||
"visibilityConditionJson" JSONB,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uq_field_definition_action_type_code
|
||||
ON masters_action_builder.tbl_field_definitions("actionTypeId", "fieldCode");
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_action_builder.tbl_action_submissions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"categoryId" UUID NOT NULL REFERENCES masters_action_builder.tbl_action_categories(id) ON DELETE CASCADE,
|
||||
"actionTypeId" UUID NOT NULL REFERENCES masters_action_builder.tbl_action_types(id) ON DELETE CASCADE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters_action_builder.tbl_action_submission_values (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"submissionId" UUID NOT NULL REFERENCES masters_action_builder.tbl_action_submissions(id) ON DELETE CASCADE,
|
||||
"fieldDefinitionId" UUID REFERENCES masters_action_builder.tbl_field_definitions(id) ON DELETE CASCADE,
|
||||
"fieldCode" VARCHAR,
|
||||
"valueIndex" INT NOT NULL DEFAULT 0,
|
||||
"selectedValueId" VARCHAR,
|
||||
"textValue" TEXT,
|
||||
"numberValue" NUMERIC,
|
||||
"booleanValue" BOOLEAN,
|
||||
"dateValue" DATE,
|
||||
"timeValue" TIME,
|
||||
"timestampValue" TIMESTAMP WITH TIME ZONE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- ─── Cohorts ────────────────────────────────────────────────────────────────
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohorts (
|
||||
@@ -393,141 +531,53 @@ CREATE INDEX IF NOT EXISTS idx_tbl_cohorts_tenant ON cohort.tbl_cohorts("tenantI
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_cabin_classes (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"cabinClassId" UUID NOT NULL REFERENCES masters.tbl_cabin_classes(id) ON DELETE CASCADE,
|
||||
"cabinClassId" UUID NOT NULL REFERENCES masters_lookup.tbl_cabin_classes(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "cabinClassId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_passenger_types (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"passengerTypeId" UUID NOT NULL REFERENCES masters.tbl_passenger_types(id) ON DELETE CASCADE,
|
||||
"passengerTypeId" UUID NOT NULL REFERENCES masters_lookup.tbl_passenger_types(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "passengerTypeId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_ancillary_purchases (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"ancillaryPurchaseId" UUID NOT NULL REFERENCES masters.tbl_ancillary_purchases(id) ON DELETE CASCADE,
|
||||
"ancillaryPurchaseId" UUID NOT NULL REFERENCES masters_lookup.tbl_ancillary_purchases(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "ancillaryPurchaseId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_loyalty_tiers (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"membershipTierId" UUID NOT NULL REFERENCES masters.tbl_membership_tiers(id) ON DELETE CASCADE,
|
||||
"membershipTierId" UUID NOT NULL REFERENCES masters_lookup.tbl_membership_tiers(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "membershipTierId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_revenue_segments (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"revenueSegmentId" UUID NOT NULL REFERENCES masters.tbl_revenue_segments(id) ON DELETE CASCADE,
|
||||
"revenueSegmentId" UUID NOT NULL REFERENCES masters_lookup.tbl_revenue_segments(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "revenueSegmentId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_regions (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"regionId" UUID NOT NULL REFERENCES masters.tbl_regions(id) ON DELETE CASCADE,
|
||||
"regionId" UUID NOT NULL REFERENCES masters_lookup.tbl_regions(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "regionId")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cohort.tbl_cohort_trip_purposes (
|
||||
"cohortId" UUID NOT NULL REFERENCES cohort.tbl_cohorts(id) ON DELETE CASCADE,
|
||||
"tripPurposeId" UUID NOT NULL REFERENCES masters.tbl_trip_purposes(id) ON DELETE CASCADE,
|
||||
"tripPurposeId" UUID NOT NULL REFERENCES masters_lookup.tbl_trip_purposes(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY ("cohortId", "tripPurposeId")
|
||||
);
|
||||
|
||||
-- ─── Action Builder & Metadata-Driven Field Definitions ────────────────────
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_field_definitions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"actionTypeId" UUID NOT NULL REFERENCES masters.tbl_action_types(id) ON DELETE CASCADE,
|
||||
"fieldCode" VARCHAR NOT NULL,
|
||||
"fieldName" VARCHAR NOT NULL,
|
||||
"fieldType" VARCHAR NOT NULL,
|
||||
"lookupSource" VARCHAR,
|
||||
"isRequired" BOOLEAN NOT NULL DEFAULT false,
|
||||
"defaultValue" TEXT,
|
||||
placeholder VARCHAR,
|
||||
"helpText" TEXT,
|
||||
width VARCHAR NOT NULL DEFAULT 'full',
|
||||
section VARCHAR,
|
||||
"displayOrder" INT NOT NULL DEFAULT 0,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"validationJson" JSONB,
|
||||
"visibilityConditionJson" JSONB,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uq_field_definition_action_type_code
|
||||
ON masters.tbl_field_definitions("actionTypeId", "fieldCode");
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_action_submissions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"categoryId" UUID NOT NULL REFERENCES masters.tbl_action_categories(id) ON DELETE CASCADE,
|
||||
"actionTypeId" UUID NOT NULL REFERENCES masters.tbl_action_types(id) ON DELETE CASCADE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_action_submission_values (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"submissionId" UUID NOT NULL REFERENCES masters.tbl_action_submissions(id) ON DELETE CASCADE,
|
||||
"fieldDefinitionId" UUID REFERENCES masters.tbl_field_definitions(id) ON DELETE CASCADE,
|
||||
"fieldCode" VARCHAR,
|
||||
"valueIndex" INT NOT NULL DEFAULT 0,
|
||||
"selectedValueId" VARCHAR,
|
||||
"textValue" TEXT,
|
||||
"numberValue" NUMERIC,
|
||||
"booleanValue" BOOLEAN,
|
||||
"dateValue" DATE,
|
||||
"timeValue" TIME,
|
||||
"timestampValue" TIMESTAMP WITH TIME ZONE,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_refund_bases (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_currencies (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
symbol VARCHAR,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_refund_methods (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS masters.tbl_amount_types (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
label VARCHAR NOT NULL,
|
||||
value VARCHAR NOT NULL,
|
||||
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP NOT NULL DEFAULT now(),
|
||||
"updatedAt" TIMESTAMP NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- ─── Policy Engine ──────────────────────────────────────────────────────────
|
||||
|
||||
CREATE TABLE IF NOT EXISTS policy_engine.tbl_policies (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"tenantId" UUID NOT NULL REFERENCES tenant.tbl_tenants(id) ON DELETE CASCADE,
|
||||
policy_name VARCHAR(200) NOT NULL,
|
||||
jurisdiction_id UUID REFERENCES masters.tbl_jurisdictions(id) ON DELETE SET NULL,
|
||||
jurisdiction_id UUID REFERENCES masters_lookup.tbl_jurisdictions(id) ON DELETE SET NULL,
|
||||
description TEXT,
|
||||
status VARCHAR NOT NULL DEFAULT 'draft',
|
||||
version INT NOT NULL DEFAULT 1,
|
||||
@@ -548,7 +598,7 @@ CREATE TABLE IF NOT EXISTS policy_engine.tbl_policy_target_audiences (
|
||||
CREATE TABLE IF NOT EXISTS policy_engine.tbl_policy_rules (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
policy_id UUID NOT NULL REFERENCES policy_engine.tbl_policies(id) ON DELETE CASCADE,
|
||||
rule_category_id UUID REFERENCES masters.tbl_rule_categories(id) ON DELETE SET NULL,
|
||||
rule_category_id UUID REFERENCES masters_rule_engine.tbl_rules_categories(id) ON DELETE SET NULL,
|
||||
priority INT NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
@@ -565,14 +615,14 @@ CREATE TABLE IF NOT EXISTS policy_engine.tbl_policy_rule_conditions (
|
||||
CREATE TABLE IF NOT EXISTS policy_engine.tbl_policy_actions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
rule_id UUID NOT NULL REFERENCES policy_engine.tbl_policy_rules(id) ON DELETE CASCADE,
|
||||
action_type_id UUID NOT NULL REFERENCES masters.tbl_action_types(id) ON DELETE CASCADE,
|
||||
action_type_id UUID NOT NULL REFERENCES masters_action_builder.tbl_action_types(id) ON DELETE CASCADE,
|
||||
sequence INT NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS policy_engine.tbl_policy_action_values (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
action_id UUID NOT NULL REFERENCES policy_engine.tbl_policy_actions(id) ON DELETE CASCADE,
|
||||
field_definition_id UUID REFERENCES masters.tbl_field_definitions(id) ON DELETE SET NULL,
|
||||
field_definition_id UUID REFERENCES masters_action_builder.tbl_field_definitions(id) ON DELETE SET NULL,
|
||||
field_code VARCHAR NOT NULL,
|
||||
value_index INT NOT NULL DEFAULT 0,
|
||||
selected_value_id VARCHAR,
|
||||
@@ -589,8 +639,3 @@ CREATE TABLE IF NOT EXISTS policy_engine.tbl_policy_action_values (
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tbl_policy_action_values_action
|
||||
ON policy_engine.tbl_policy_action_values(action_id);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+218
-73
@@ -4,7 +4,7 @@
|
||||
-- =============================================================================
|
||||
|
||||
-- 1. Action Categories
|
||||
INSERT INTO masters.tbl_action_categories (code, name, "displayOrder", "isActive")
|
||||
INSERT INTO masters_action_builder.tbl_action_categories (code, name, "displayOrder", "isActive")
|
||||
SELECT code, name, displayOrder, true FROM (VALUES
|
||||
('REFUNDS', 'Refunds', 1),
|
||||
('CASH_COMPENSATION', 'Cash Compensation', 2),
|
||||
@@ -21,10 +21,10 @@ SELECT code, name, displayOrder, true FROM (VALUES
|
||||
('FINANCE', 'Finance', 13),
|
||||
('SYSTEM_INTEGRATION', 'System Integration', 14)
|
||||
) AS t(code, name, displayOrder)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_action_categories WHERE masters.tbl_action_categories.code = t.code);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_action_builder.tbl_action_categories WHERE masters_action_builder.tbl_action_categories.code = t.code);
|
||||
|
||||
-- 2. Action Types
|
||||
INSERT INTO masters.tbl_action_types (code, "categoryId", name, "displayOrder", "isActive")
|
||||
INSERT INTO masters_action_builder.tbl_action_types (code, "categoryId", name, "displayOrder", "isActive")
|
||||
SELECT v.code, c.id, v.name, v.display_order, true
|
||||
FROM (VALUES
|
||||
-- Refunds
|
||||
@@ -113,11 +113,11 @@ FROM (VALUES
|
||||
('CREATE_AUDIT_RECORD', 'SYSTEM_INTEGRATION', 'Create Audit Record', 4),
|
||||
('TRIGGER_WEBHOOK_API', 'SYSTEM_INTEGRATION', 'Trigger Webhook / API', 5)
|
||||
) AS v(code, cat_code, name, display_order)
|
||||
JOIN masters.tbl_action_categories c ON c.code = v.cat_code
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_action_types WHERE masters.tbl_action_types.code = v.code);
|
||||
JOIN masters_action_builder.tbl_action_categories c ON c.code = v.cat_code
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_action_builder.tbl_action_types WHERE masters_action_builder.tbl_action_types.code = v.code);
|
||||
|
||||
-- 3. Membership Tiers
|
||||
INSERT INTO masters.tbl_membership_tiers (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_membership_tiers (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Platinum', 'platinum'),
|
||||
('Gold', 'gold'),
|
||||
@@ -126,19 +126,19 @@ SELECT label, value, true FROM (VALUES
|
||||
('Basic', 'basic'),
|
||||
('Non-Member', 'non-member')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_membership_tiers WHERE masters.tbl_membership_tiers.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_membership_tiers WHERE masters_lookup.tbl_membership_tiers.value = t.value);
|
||||
|
||||
-- 4. Customer Values
|
||||
INSERT INTO masters.tbl_customer_values (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_customer_values (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('High Value', 'high'),
|
||||
('Medium Value', 'medium'),
|
||||
('Low Value', 'low')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_customer_values WHERE masters.tbl_customer_values.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_customer_values WHERE masters_lookup.tbl_customer_values.value = t.value);
|
||||
|
||||
-- 5. Regions
|
||||
INSERT INTO masters.tbl_regions (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_regions (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Global', 'global'),
|
||||
('Americas', 'americas'),
|
||||
@@ -147,40 +147,40 @@ SELECT label, value, true FROM (VALUES
|
||||
('Asia Pacific', 'asia-pacific'),
|
||||
('Africa', 'africa')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_regions WHERE masters.tbl_regions.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_regions WHERE masters_lookup.tbl_regions.value = t.value);
|
||||
|
||||
-- 6. Trip Purposes
|
||||
INSERT INTO masters.tbl_trip_purposes (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_trip_purposes (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Business', 'business'),
|
||||
('Leisure', 'leisure'),
|
||||
('Corporate', 'corporate'),
|
||||
('Government', 'government')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_trip_purposes WHERE masters.tbl_trip_purposes.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_trip_purposes WHERE masters_lookup.tbl_trip_purposes.value = t.value);
|
||||
|
||||
-- 7. Cabin Classes
|
||||
INSERT INTO masters.tbl_cabin_classes (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_cabin_classes (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('First Class', 'first-class'),
|
||||
('Business Class', 'business-class'),
|
||||
('Premium Economy', 'premium-economy'),
|
||||
('Economy', 'economy')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_cabin_classes WHERE masters.tbl_cabin_classes.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_cabin_classes WHERE masters_lookup.tbl_cabin_classes.value = t.value);
|
||||
|
||||
-- 8. Passenger Types
|
||||
INSERT INTO masters.tbl_passenger_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_passenger_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Adult', 'adult'),
|
||||
('Child', 'child'),
|
||||
('Infant', 'infant'),
|
||||
('Senior Citizen', 'senior')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_passenger_types WHERE masters.tbl_passenger_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_passenger_types WHERE masters_lookup.tbl_passenger_types.value = t.value);
|
||||
|
||||
-- 9. Ancillary Purchases
|
||||
INSERT INTO masters.tbl_ancillary_purchases (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_ancillary_purchases (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Preferred Seat', 'preferred-seat'),
|
||||
('Extra Legroom', 'extra-legroom'),
|
||||
@@ -200,19 +200,19 @@ SELECT label, value, true FROM (VALUES
|
||||
('Power Outlet', 'power-outlet'),
|
||||
('Carbon Offset', 'carbon-offset')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_ancillary_purchases WHERE masters.tbl_ancillary_purchases.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_ancillary_purchases WHERE masters_lookup.tbl_ancillary_purchases.value = t.value);
|
||||
|
||||
-- 10. Revenue Segments
|
||||
INSERT INTO masters.tbl_revenue_segments (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_revenue_segments (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('High Value', 'high'),
|
||||
('Medium Value', 'medium'),
|
||||
('Low Value', 'low')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_revenue_segments WHERE masters.tbl_revenue_segments.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_revenue_segments WHERE masters_lookup.tbl_revenue_segments.value = t.value);
|
||||
|
||||
-- 11. Jurisdictions
|
||||
INSERT INTO masters.tbl_jurisdictions (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_jurisdictions (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('United Arab Emirates', 'uae'),
|
||||
('European Union', 'eu'),
|
||||
@@ -222,7 +222,7 @@ SELECT label, value, true FROM (VALUES
|
||||
('Asia Pacific', 'apac'),
|
||||
('Global', 'global')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_jurisdictions WHERE masters.tbl_jurisdictions.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_jurisdictions WHERE masters_lookup.tbl_jurisdictions.value = t.value);
|
||||
|
||||
-- 12. Rule Categories
|
||||
INSERT INTO masters.tbl_rules_categories (code, name, "tableName", description, "displayOrder", "isActive")
|
||||
@@ -337,9 +337,26 @@ FROM (VALUES
|
||||
('room-type', 'tbl_room_types')
|
||||
) AS v(code, "tableName")
|
||||
WHERE c.code = v.code AND (c."tableName" IS NULL OR c."tableName" != v."tableName");
|
||||
-- 12. Rule Categories (Business Rule Categories)
|
||||
DELETE FROM masters_rule_engine.tbl_rules_categories
|
||||
WHERE code NOT IN (
|
||||
'FLIGHT_OPERATIONS', 'BAGGAGE_ISSUES', 'CABIN_DOWNGRADES',
|
||||
'ANCILLARY_FAILURES', 'DENIED_BOARDING', 'MISSED_CONNECTIONS'
|
||||
);
|
||||
|
||||
INSERT INTO masters_rule_engine.tbl_rules_categories (code, name, description, "displayOrder", "isActive")
|
||||
SELECT code, name, description, displayOrder, true FROM (VALUES
|
||||
('FLIGHT_OPERATIONS', 'Flight Operations', 'Rules for flight disruptions, delays, cancellations, and diversions', 1),
|
||||
('BAGGAGE_ISSUES', 'Baggage Issues', 'Rules for delayed, damaged, or lost baggage recovery', 2),
|
||||
('CABIN_DOWNGRADES', 'Cabin Downgrades', 'Rules for involuntary cabin downgrades and seat reassignments', 3),
|
||||
('ANCILLARY_FAILURES', 'Ancillary Failures', 'Rules for unfulfilled ancillary services like Wi-Fi, meals, seats', 4),
|
||||
('DENIED_BOARDING', 'Denied Boarding', 'Rules for overbooking and involuntary denied boarding', 5),
|
||||
('MISSED_CONNECTIONS', 'Missed Connections', 'Rules for tight connection failures and rebooking compensation', 6)
|
||||
) AS t(code, name, description, displayOrder)
|
||||
ON CONFLICT (code) DO UPDATE SET name = EXCLUDED.name, description = EXCLUDED.description;
|
||||
|
||||
-- 13. Booking Channels
|
||||
INSERT INTO masters.tbl_booking_channels (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_booking_channels (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Airline Website', 'airline-website'),
|
||||
('Airline Mobile App', 'airline-mobile-app'),
|
||||
@@ -350,27 +367,27 @@ SELECT label, value, true FROM (VALUES
|
||||
('Online Travel Agency', 'online-travel-agency'),
|
||||
('Travel Agent', 'travel-agent')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_booking_channels WHERE masters.tbl_booking_channels.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_booking_channels WHERE masters_lookup.tbl_booking_channels.value = t.value);
|
||||
|
||||
-- 14. Flight Types
|
||||
INSERT INTO masters.tbl_flight_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_flight_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Domestic', 'domestic'),
|
||||
('International', 'international')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_flight_types WHERE masters.tbl_flight_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_flight_types WHERE masters_lookup.tbl_flight_types.value = t.value);
|
||||
|
||||
-- 15. Journey Types
|
||||
INSERT INTO masters.tbl_journey_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_journey_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('One Way', 'one-way'),
|
||||
('Round Trip', 'round-trip'),
|
||||
('Multi City', 'multi-city')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_journey_types WHERE masters.tbl_journey_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_journey_types WHERE masters_lookup.tbl_journey_types.value = t.value);
|
||||
|
||||
-- 16. Fare Flexibilities
|
||||
INSERT INTO masters.tbl_fare_flexibilities (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_fare_flexibilities (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Non Refundable', 'non-refundable'),
|
||||
('Partially Refundable', 'partially-refundable'),
|
||||
@@ -378,10 +395,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Exchangeable', 'exchangeable'),
|
||||
('Non Changeable', 'non-changeable')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_fare_flexibilities WHERE masters.tbl_fare_flexibilities.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_fare_flexibilities WHERE masters_lookup.tbl_fare_flexibilities.value = t.value);
|
||||
|
||||
-- 17. Carrier Types
|
||||
INSERT INTO masters.tbl_carrier_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_carrier_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Operating Carrier', 'operating-carrier'),
|
||||
('Marketing Carrier', 'marketing-carrier'),
|
||||
@@ -391,10 +408,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Full Service Carrier', 'full-service-carrier'),
|
||||
('Charter Carrier', 'charter-carrier')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_carrier_types WHERE masters.tbl_carrier_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_carrier_types WHERE masters_lookup.tbl_carrier_types.value = t.value);
|
||||
|
||||
-- 18. Special Assistance Types
|
||||
INSERT INTO masters.tbl_special_assistance_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_special_assistance_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Wheelchair Assistance', 'wheelchair-assistance'),
|
||||
('Wheelchair Ramp', 'wheelchair-ramp'),
|
||||
@@ -411,10 +428,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Elderly Passenger', 'elderly-passenger'),
|
||||
('Other', 'other')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_special_assistance_types WHERE masters.tbl_special_assistance_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_special_assistance_types WHERE masters_lookup.tbl_special_assistance_types.value = t.value);
|
||||
|
||||
-- 19. Delay Reasons
|
||||
INSERT INTO masters.tbl_delay_reasons (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_delay_reasons (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Air Traffic Control Restriction', 'air-traffic-control-restriction'),
|
||||
('Aircraft Rotation', 'aircraft-rotation'),
|
||||
@@ -431,10 +448,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Technical Fault', 'technical-fault'),
|
||||
('Other', 'other')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_delay_reasons WHERE masters.tbl_delay_reasons.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_delay_reasons WHERE masters_lookup.tbl_delay_reasons.value = t.value);
|
||||
|
||||
-- 20. Delay Durations
|
||||
INSERT INTO masters.tbl_delay_durations (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_delay_durations (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Less than 1 Hour', 'less-than-1-hour'),
|
||||
('1-2 Hours', '1-2-hours'),
|
||||
@@ -442,10 +459,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('3-4 Hours', '3-4-hours'),
|
||||
('More than 4 Hours', 'more-than-4-hours')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_delay_durations WHERE masters.tbl_delay_durations.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_delay_durations WHERE masters_lookup.tbl_delay_durations.value = t.value);
|
||||
|
||||
-- 21. Extraordinary Circumstances
|
||||
INSERT INTO masters.tbl_extraordinary_circumstances (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_extraordinary_circumstances (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Air Traffic Management Decision', 'air-traffic-management-decision'),
|
||||
('Airport Closure', 'airport-closure'),
|
||||
@@ -459,10 +476,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('War', 'war'),
|
||||
('Other', 'other')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_extraordinary_circumstances WHERE masters.tbl_extraordinary_circumstances.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_extraordinary_circumstances WHERE masters_lookup.tbl_extraordinary_circumstances.value = t.value);
|
||||
|
||||
-- 22. Cancellation Reasons
|
||||
INSERT INTO masters.tbl_cancellation_reasons (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_cancellation_reasons (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Air Traffic Control Restriction', 'air-traffic-control-restriction'),
|
||||
('Airport Closure', 'airport-closure'),
|
||||
@@ -475,10 +492,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Strike', 'strike'),
|
||||
('Technical Fault', 'technical-fault')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_cancellation_reasons WHERE masters.tbl_cancellation_reasons.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_cancellation_reasons WHERE masters_lookup.tbl_cancellation_reasons.value = t.value);
|
||||
|
||||
-- 23. Diversion Reasons
|
||||
INSERT INTO masters.tbl_diversion_reasons (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_diversion_reasons (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Airport Closure', 'airport-closure'),
|
||||
('Destination Weather', 'destination-weather'),
|
||||
@@ -488,10 +505,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Security Threat', 'security-threat'),
|
||||
('Technical Fault', 'technical-fault')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_diversion_reasons WHERE masters.tbl_diversion_reasons.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_diversion_reasons WHERE masters_lookup.tbl_diversion_reasons.value = t.value);
|
||||
|
||||
-- 24. Missed Connection Reasons
|
||||
INSERT INTO masters.tbl_missed_connection_reasons (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_missed_connection_reasons (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Customs Delay', 'customs-delay'),
|
||||
('Flight Delay', 'flight-delay'),
|
||||
@@ -499,19 +516,19 @@ SELECT label, value, true FROM (VALUES
|
||||
('Passenger Delay', 'passenger-delay'),
|
||||
('Security Screening Delay', 'security-screening-delay')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_missed_connection_reasons WHERE masters.tbl_missed_connection_reasons.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_missed_connection_reasons WHERE masters_lookup.tbl_missed_connection_reasons.value = t.value);
|
||||
|
||||
-- 25. Compensation Eligibilities
|
||||
INSERT INTO masters.tbl_compensation_eligibilities (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_compensation_eligibilities (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Eligible', 'eligible'),
|
||||
('Not Eligible', 'not-eligible'),
|
||||
('Requires Manual Review', 'requires-manual-review')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_compensation_eligibilities WHERE masters.tbl_compensation_eligibilities.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_compensation_eligibilities WHERE masters_lookup.tbl_compensation_eligibilities.value = t.value);
|
||||
|
||||
-- 26. Compensation Types
|
||||
INSERT INTO masters.tbl_compensation_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_compensation_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Cash', 'cash'),
|
||||
('Cheque', 'cheque'),
|
||||
@@ -521,10 +538,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Hotel Accommodation', 'hotel-accommodation'),
|
||||
('Ground Transport', 'ground-transport')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_compensation_types WHERE masters.tbl_compensation_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_compensation_types WHERE masters_lookup.tbl_compensation_types.value = t.value);
|
||||
|
||||
-- 27. Refund Types
|
||||
INSERT INTO masters.tbl_refund_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_refund_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Full Refund', 'full-refund'),
|
||||
('Partial Refund', 'partial-refund'),
|
||||
@@ -533,10 +550,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Tax Refund Only', 'tax-refund-only'),
|
||||
('Telephone Reimbursement', 'telephone-reimbursement')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_refund_types WHERE masters.tbl_refund_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_refund_types WHERE masters_lookup.tbl_refund_types.value = t.value);
|
||||
|
||||
-- 28. Flight Disruption Types
|
||||
INSERT INTO masters.tbl_flight_disruption_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_flight_disruption_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Cancellation', 'cancellation'),
|
||||
('Delay', 'delay'),
|
||||
@@ -544,10 +561,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Diversion', 'diversion'),
|
||||
('Missed Connection', 'missed-connection')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_flight_disruption_types WHERE masters.tbl_flight_disruption_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_flight_disruption_types WHERE masters_lookup.tbl_flight_disruption_types.value = t.value);
|
||||
|
||||
-- 29. Airline Responsibilities
|
||||
INSERT INTO masters.tbl_airline_responsibilities (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_airline_responsibilities (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Airline Responsible', 'airline-responsible'),
|
||||
('Airport Responsible', 'airport-responsible'),
|
||||
@@ -557,10 +574,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Third Party Responsible', 'third-party-responsible'),
|
||||
('Snow', 'snow')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_airline_responsibilities WHERE masters.tbl_airline_responsibilities.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_airline_responsibilities WHERE masters_lookup.tbl_airline_responsibilities.value = t.value);
|
||||
|
||||
-- 30. Weather Conditions
|
||||
INSERT INTO masters.tbl_weather_conditions (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_weather_conditions (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Fog', 'fog'),
|
||||
('Heavy Rain', 'heavy-rain'),
|
||||
@@ -570,10 +587,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Sandstorm', 'sandstorm'),
|
||||
('Thunderstorm', 'thunderstorm')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_weather_conditions WHERE masters.tbl_weather_conditions.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_weather_conditions WHERE masters_lookup.tbl_weather_conditions.value = t.value);
|
||||
|
||||
-- 31. ATC Restrictions
|
||||
INSERT INTO masters.tbl_atc_restrictions (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_atc_restrictions (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Airspace Closure', 'airspace-closure'),
|
||||
('Flow Control', 'flow-control'),
|
||||
@@ -582,10 +599,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Traffic Congestion', 'traffic-congestion'),
|
||||
('Navigation System', 'navigation-system')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_atc_restrictions WHERE masters.tbl_atc_restrictions.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_atc_restrictions WHERE masters_lookup.tbl_atc_restrictions.value = t.value);
|
||||
|
||||
-- 32. Technical Fault Categories
|
||||
INSERT INTO masters.tbl_technical_fault_categories (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_technical_fault_categories (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Aircraft Damage', 'aircraft-damage'),
|
||||
('Avionics', 'avionics'),
|
||||
@@ -596,10 +613,10 @@ SELECT label, value, true FROM (VALUES
|
||||
('Volcanic Ash', 'volcanic-ash'),
|
||||
('Wind Shear', 'wind-shear')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_technical_fault_categories WHERE masters.tbl_technical_fault_categories.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_technical_fault_categories WHERE masters_lookup.tbl_technical_fault_categories.value = t.value);
|
||||
|
||||
-- 33. Operators
|
||||
INSERT INTO masters.tbl_operators (code, name, symbol, "displayOrder", "isActive")
|
||||
INSERT INTO masters_rule_engine.tbl_operators (code, name, symbol, "displayOrder", "isActive")
|
||||
SELECT code, name, symbol, displayOrder, true FROM (VALUES
|
||||
('EQ', 'Equals', '=', 1),
|
||||
('NE', 'Not Equals', '!=', 2),
|
||||
@@ -612,19 +629,19 @@ SELECT code, name, symbol, displayOrder, true FROM (VALUES
|
||||
('IN', 'In', 'IN', 9),
|
||||
('IS_EMPTY', 'Is Empty', 'IS EMPTY', 10)
|
||||
) AS t(code, name, symbol, displayOrder)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_operators WHERE masters.tbl_operators.code = t.code);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_rule_engine.tbl_operators WHERE masters_rule_engine.tbl_operators.code = t.code);
|
||||
|
||||
-- 34. Refund Bases
|
||||
INSERT INTO masters.tbl_refund_bases (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_refund_bases (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Base Fare', 'base-fare'),
|
||||
('Taxes', 'taxes'),
|
||||
('Total Fare', 'total-fare')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_refund_bases WHERE masters.tbl_refund_bases.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_refund_bases WHERE masters_lookup.tbl_refund_bases.value = t.value);
|
||||
|
||||
-- 35. Currencies
|
||||
INSERT INTO masters.tbl_currencies (label, value, symbol, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_currencies (label, value, symbol, "isActive")
|
||||
SELECT label, value, symbol, true FROM (VALUES
|
||||
('United States Dollar', 'USD', '$'),
|
||||
('Euro', 'EUR', '€'),
|
||||
@@ -642,26 +659,154 @@ SELECT label, value, symbol, true FROM (VALUES
|
||||
('Bahraini Dinar', 'BHD', 'BHD'),
|
||||
('Omani Rial', 'OMR', 'OMR')
|
||||
) AS t(label, value, symbol)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_currencies WHERE masters.tbl_currencies.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_currencies WHERE masters_lookup.tbl_currencies.value = t.value);
|
||||
|
||||
-- 36. Refund Methods
|
||||
INSERT INTO masters.tbl_refund_methods (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_refund_methods (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Original Payment Method', 'original-payment-method'),
|
||||
('Wallet', 'wallet'),
|
||||
('Bank Transfer', 'bank-transfer'),
|
||||
('Voucher', 'voucher')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_refund_methods WHERE masters.tbl_refund_methods.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_refund_methods WHERE masters_lookup.tbl_refund_methods.value = t.value);
|
||||
|
||||
-- 37. Amount Types
|
||||
INSERT INTO masters.tbl_amount_types (label, value, "isActive")
|
||||
INSERT INTO masters_lookup.tbl_amount_types (label, value, "isActive")
|
||||
SELECT label, value, true FROM (VALUES
|
||||
('Fixed', 'fixed'),
|
||||
('Percentage', 'percentage'),
|
||||
('Formula', 'formula')
|
||||
) AS t(label, value)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters.tbl_amount_types WHERE masters.tbl_amount_types.value = t.value);
|
||||
WHERE NOT EXISTS (SELECT 1 FROM masters_lookup.tbl_amount_types WHERE masters_lookup.tbl_amount_types.value = t.value);
|
||||
|
||||
-- =============================================================================
|
||||
-- 38. Condition Groups (Level 2)
|
||||
-- =============================================================================
|
||||
INSERT INTO masters_rule_engine.tbl_condition_groups (code, name, "displayOrder", "isActive")
|
||||
SELECT code, name, displayOrder, true FROM (VALUES
|
||||
('FLIGHT', 'Flight Details', 1),
|
||||
('DISRUPTION', 'Disruption Details', 2),
|
||||
('PASSENGER', 'Passenger Profile', 3),
|
||||
('JOURNEY', 'Journey & Itinerary', 4),
|
||||
('BOOKING', 'Booking & Fare', 5),
|
||||
('BAGGAGE', 'Baggage Details', 6),
|
||||
('CABIN', 'Cabin & Seating', 7),
|
||||
('ANCILLARY', 'Ancillary Service Details', 8)
|
||||
) AS t(code, name, displayOrder)
|
||||
ON CONFLICT (code) DO UPDATE SET name = EXCLUDED.name;
|
||||
|
||||
-- =============================================================================
|
||||
-- 40. Rule Category Groups Mapping (Level 1 -> Level 2)
|
||||
-- =============================================================================
|
||||
INSERT INTO masters_rule_engine.tbl_rule_category_groups ("ruleCategoryId", "conditionGroupId")
|
||||
SELECT c.id, g.id
|
||||
FROM (VALUES
|
||||
('FLIGHT_OPERATIONS', 'FLIGHT'),
|
||||
('FLIGHT_OPERATIONS', 'DISRUPTION'),
|
||||
('FLIGHT_OPERATIONS', 'PASSENGER'),
|
||||
('FLIGHT_OPERATIONS', 'JOURNEY'),
|
||||
('FLIGHT_OPERATIONS', 'BOOKING'),
|
||||
('BAGGAGE_ISSUES', 'PASSENGER'),
|
||||
('BAGGAGE_ISSUES', 'JOURNEY'),
|
||||
('BAGGAGE_ISSUES', 'BAGGAGE'),
|
||||
('CABIN_DOWNGRADES', 'PASSENGER'),
|
||||
('CABIN_DOWNGRADES', 'JOURNEY'),
|
||||
('CABIN_DOWNGRADES', 'CABIN'),
|
||||
('CABIN_DOWNGRADES', 'BOOKING'),
|
||||
('ANCILLARY_FAILURES', 'PASSENGER'),
|
||||
('ANCILLARY_FAILURES', 'ANCILLARY'),
|
||||
('ANCILLARY_FAILURES', 'BOOKING'),
|
||||
('DENIED_BOARDING', 'FLIGHT'),
|
||||
('DENIED_BOARDING', 'PASSENGER'),
|
||||
('DENIED_BOARDING', 'JOURNEY'),
|
||||
('DENIED_BOARDING', 'BOOKING'),
|
||||
('MISSED_CONNECTIONS', 'FLIGHT'),
|
||||
('MISSED_CONNECTIONS', 'PASSENGER'),
|
||||
('MISSED_CONNECTIONS', 'JOURNEY'),
|
||||
('MISSED_CONNECTIONS', 'BOOKING')
|
||||
) AS v(cat_code, group_code)
|
||||
JOIN masters_rule_engine.tbl_rules_categories c ON c.code = v.cat_code
|
||||
JOIN masters_rule_engine.tbl_condition_groups g ON g.code = v.group_code
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM masters_rule_engine.tbl_rule_category_groups rcg
|
||||
WHERE rcg."ruleCategoryId" = c.id AND rcg."conditionGroupId" = g.id
|
||||
);
|
||||
|
||||
-- =============================================================================
|
||||
-- 41. Condition Fields (Level 3)
|
||||
-- =============================================================================
|
||||
INSERT INTO masters_rule_engine.tbl_condition_fields ("groupId", code, name, "lookupTable", "dataType", "operatorType", "displayOrder", "isActive")
|
||||
SELECT g.id, v.code, v.name, v.lookup_table, v.data_type, v.operator_type, v.display_order, true
|
||||
FROM (VALUES
|
||||
-- FLIGHT
|
||||
('FLIGHT', 'flight_type', 'Flight Type', 'tbl_flight_types', 'ENUM', 'COMPARISON', 1),
|
||||
('FLIGHT', 'origin_airport', 'Origin Airport', NULL, 'STRING', 'TEXT', 2),
|
||||
('FLIGHT', 'destination_airport', 'Destination Airport', NULL, 'STRING', 'TEXT', 3),
|
||||
('FLIGHT', 'operating_carrier', 'Operating Carrier', 'tbl_carrier_types', 'ENUM', 'COMPARISON', 4),
|
||||
('FLIGHT', 'marketing_carrier', 'Marketing Carrier', 'tbl_carrier_types', 'ENUM', 'COMPARISON', 5),
|
||||
('FLIGHT', 'flight_distance', 'Flight Distance (km)', NULL, 'NUMBER', 'COMPARISON', 6),
|
||||
|
||||
-- DISRUPTION
|
||||
('DISRUPTION', 'delay_duration', 'Delay Duration (mins)', 'tbl_delay_durations', 'NUMBER', 'COMPARISON', 1),
|
||||
('DISRUPTION', 'delay_reason', 'Delay Reason', 'tbl_delay_reasons', 'ENUM', 'SET', 2),
|
||||
('DISRUPTION', 'cancellation_reason', 'Cancellation Reason', 'tbl_cancellation_reasons', 'ENUM', 'SET', 3),
|
||||
('DISRUPTION', 'diversion_reason', 'Diversion Reason', 'tbl_diversion_reasons', 'ENUM', 'SET', 4),
|
||||
('DISRUPTION', 'weather_condition', 'Weather Condition', 'tbl_weather_conditions', 'ENUM', 'SET', 5),
|
||||
('DISRUPTION', 'atc_restriction', 'ATC Restriction', 'tbl_atc_restrictions', 'ENUM', 'SET', 6),
|
||||
('DISRUPTION', 'technical_fault', 'Technical Fault', 'tbl_technical_fault_categories', 'ENUM', 'SET', 7),
|
||||
('DISRUPTION', 'extraordinary_circumstance', 'Extraordinary Circumstance', 'tbl_extraordinary_circumstances', 'ENUM', 'SET', 8),
|
||||
('DISRUPTION', 'airline_responsibility', 'Airline Responsibility', 'tbl_airline_responsibilities', 'ENUM', 'COMPARISON', 9),
|
||||
|
||||
-- PASSENGER
|
||||
('PASSENGER', 'passenger_type', 'Passenger Type', 'tbl_passenger_types', 'ENUM', 'SET', 1),
|
||||
('PASSENGER', 'cabin_class', 'Cabin Class', 'tbl_cabin_classes', 'ENUM', 'SET', 2),
|
||||
('PASSENGER', 'membership_tier', 'Membership Tier', 'tbl_membership_tiers', 'ENUM', 'SET', 3),
|
||||
('PASSENGER', 'loyalty_tier', 'Loyalty Tier', 'tbl_membership_tiers', 'ENUM', 'SET', 4),
|
||||
('PASSENGER', 'customer_value', 'Customer Value', 'tbl_customer_values', 'ENUM', 'COMPARISON', 5),
|
||||
('PASSENGER', 'corporate_customer', 'Corporate Customer', NULL, 'BOOLEAN', 'BOOLEAN', 6),
|
||||
('PASSENGER', 'group_booking', 'Group Booking', NULL, 'BOOLEAN', 'BOOLEAN', 7),
|
||||
('PASSENGER', 'special_assistance', 'Special Assistance Type', 'tbl_special_assistance_types', 'ENUM', 'SET', 8),
|
||||
|
||||
-- JOURNEY
|
||||
('JOURNEY', 'journey_type', 'Journey Type', 'tbl_journey_types', 'ENUM', 'COMPARISON', 1),
|
||||
('JOURNEY', 'protected_connection', 'Protected Connection', NULL, 'BOOLEAN', 'BOOLEAN', 2),
|
||||
('JOURNEY', 'self_transfer', 'Self Transfer', NULL, 'BOOLEAN', 'BOOLEAN', 3),
|
||||
('JOURNEY', 'number_of_segments', 'Number Of Segments', NULL, 'NUMBER', 'COMPARISON', 4),
|
||||
('JOURNEY', 'final_destination_delay', 'Final Destination Delay (mins)', NULL, 'NUMBER', 'COMPARISON', 5),
|
||||
|
||||
-- BOOKING
|
||||
('BOOKING', 'booking_channel', 'Booking Channel', 'tbl_booking_channels', 'ENUM', 'SET', 1),
|
||||
('BOOKING', 'refundable_ticket', 'Refundable Ticket', NULL, 'BOOLEAN', 'BOOLEAN', 2),
|
||||
('BOOKING', 'fare_flexibility', 'Fare Flexibility', 'tbl_fare_flexibilities', 'ENUM', 'COMPARISON', 3),
|
||||
('BOOKING', 'ticket_value', 'Ticket Value', NULL, 'NUMBER', 'COMPARISON', 4),
|
||||
('BOOKING', 'ancillary_purchased', 'Ancillary Purchased', 'tbl_ancillary_purchases', 'ENUM', 'SET', 5),
|
||||
|
||||
-- BAGGAGE
|
||||
('BAGGAGE', 'bag_status', 'Bag Status', NULL, 'STRING', 'TEXT', 1),
|
||||
('BAGGAGE', 'bag_type', 'Bag Type', NULL, 'STRING', 'TEXT', 2),
|
||||
('BAGGAGE', 'bag_delay', 'Bag Delay Duration (hrs)', NULL, 'NUMBER', 'COMPARISON', 3),
|
||||
('BAGGAGE', 'bag_value', 'Bag Value', NULL, 'NUMBER', 'COMPARISON', 4),
|
||||
('BAGGAGE', 'pir_created', 'PIR Created', NULL, 'BOOLEAN', 'BOOLEAN', 5),
|
||||
|
||||
-- CABIN
|
||||
('CABIN', 'original_cabin', 'Original Cabin', 'tbl_cabin_classes', 'ENUM', 'COMPARISON', 1),
|
||||
('CABIN', 'assigned_cabin', 'Assigned Cabin', 'tbl_cabin_classes', 'ENUM', 'COMPARISON', 2),
|
||||
('CABIN', 'downgrade_level', 'Downgrade Level', NULL, 'NUMBER', 'COMPARISON', 3),
|
||||
('CABIN', 'seat_type', 'Seat Type', NULL, 'STRING', 'TEXT', 4),
|
||||
|
||||
-- ANCILLARY
|
||||
('ANCILLARY', 'ancillary_type', 'Ancillary Type', 'tbl_ancillary_purchases', 'ENUM', 'SET', 1),
|
||||
('ANCILLARY', 'ancillary_delivered', 'Ancillary Delivered', NULL, 'BOOLEAN', 'BOOLEAN', 2),
|
||||
('ANCILLARY', 'service_value', 'Service Value', NULL, 'NUMBER', 'COMPARISON', 3)
|
||||
) AS v(group_code, code, name, lookup_table, data_type, operator_type, display_order)
|
||||
JOIN masters_rule_engine.tbl_condition_groups g ON g.code = v.group_code
|
||||
ON CONFLICT (code) DO UPDATE SET
|
||||
name = EXCLUDED.name,
|
||||
"lookupTable" = EXCLUDED."lookupTable",
|
||||
"dataType" = EXCLUDED."dataType",
|
||||
"operatorType" = EXCLUDED."operatorType",
|
||||
"displayOrder" = EXCLUDED."displayOrder";
|
||||
|
||||
-- 38. Baggage Types
|
||||
INSERT INTO masters.tbl_baggage_types (label, value, "isActive")
|
||||
|
||||
Reference in New Issue
Block a user