mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 01:48:12 +00:00
changes
This commit is contained in:
73
e2e/freight/cypress/fixtures/seed-export.sql
Normal file
73
e2e/freight/cypress/fixtures/seed-export.sql
Normal file
@@ -0,0 +1,73 @@
|
||||
-- Arrange-data for flows/export_one_time.cy.ts. Idempotent.
|
||||
-- Run AFTER seed-intercity.sql (reuses its container types, locomotives,
|
||||
-- built train TRN-E2E-1 and yard distances).
|
||||
--
|
||||
-- 1. bulk cargo hierarchy: group "E2E Grains" → commodity "E2E Wheat",
|
||||
-- carried on CW4 covered wagons
|
||||
-- 2. two CW4 wagons coupled onto the train (bulk capacity)
|
||||
-- 3. LIVE export rates for Mojo → Djibouti Port: container (per container)
|
||||
-- and bulk (per ton) — booking pricing hard-blocks without them
|
||||
|
||||
-- 1a. Cargo type group + commodity.
|
||||
INSERT INTO freight.cargo_types (id, code, cargo_type_name, is_active)
|
||||
SELECT gen_random_uuid(), 'E2E_GRAINS', 'E2E Grains', true
|
||||
WHERE NOT EXISTS (SELECT 1 FROM freight.cargo_types WHERE code = 'E2E_GRAINS');
|
||||
|
||||
INSERT INTO freight.cargo_types (id, code, cargo_type_name, parent_group_id, is_active)
|
||||
SELECT gen_random_uuid(), 'E2E_WHEAT', 'E2E Wheat', g.id, true
|
||||
FROM freight.cargo_types g
|
||||
WHERE g.code = 'E2E_GRAINS'
|
||||
AND NOT EXISTS (SELECT 1 FROM freight.cargo_types WHERE code = 'E2E_WHEAT');
|
||||
|
||||
-- 1b. Wheat rides CW4 covered wagons.
|
||||
INSERT INTO freight.cargo_type_wagon_types (cargo_type_id, wagon_type_id)
|
||||
SELECT ct.id, wt.id
|
||||
FROM freight.cargo_types ct
|
||||
JOIN freight.wagon_types wt ON wt.code = 'CW4'
|
||||
WHERE ct.code IN ('E2E_WHEAT', 'E2E_GRAINS')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM freight.cargo_type_wagon_types x
|
||||
WHERE x.cargo_type_id = ct.id AND x.wagon_type_id = wt.id
|
||||
);
|
||||
|
||||
-- 2. Couple two free CW4 wagons onto the train, parked at Mojo with it.
|
||||
UPDATE freight.wagons w
|
||||
SET train_id = t.id,
|
||||
sequence_number = 100 + sub.rn,
|
||||
current_yard_id = (SELECT id FROM freight.yards WHERE code = 'MOJO')
|
||||
FROM freight.trains t,
|
||||
LATERAL (
|
||||
SELECT w2.id, row_number() OVER (ORDER BY w2.wagon_number) AS rn
|
||||
FROM freight.wagons w2
|
||||
JOIN freight.wagon_types wt ON wt.id = w2.wagon_type_id AND wt.code = 'CW4'
|
||||
WHERE w2.train_id IS NULL AND w2.deleted_at IS NULL
|
||||
ORDER BY w2.wagon_number
|
||||
LIMIT 2
|
||||
) sub
|
||||
WHERE t.code = 'TRN-E2E-1'
|
||||
AND w.id = sub.id
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM freight.wagons wx
|
||||
JOIN freight.wagon_types wxt ON wxt.id = wx.wagon_type_id AND wxt.code = 'CW4'
|
||||
WHERE wx.train_id = t.id
|
||||
);
|
||||
|
||||
-- 3. LIVE export rates Mojo → Djibouti Port.
|
||||
INSERT INTO freight.rates
|
||||
(id, rate_type, applies_to, trigger, currency, rate_value, rate_unit, status,
|
||||
origin_yard_id, destination_yard_id, proposed_by_staff_id)
|
||||
SELECT gen_random_uuid(), v.rate_type, v.applies_to, 'ALWAYS', 'USD', v.value,
|
||||
v.unit, 'LIVE', a.id, b.id, u.id
|
||||
FROM (VALUES
|
||||
('CONTAINER_EXPORT', 'CONTAINER', 600, 'PER_CONTAINER'),
|
||||
('BULK_EXPORT', 'BULK', 25, 'PER_TON')
|
||||
) AS v(rate_type, applies_to, value, unit)
|
||||
JOIN freight.yards a ON a.code = 'MOJO'
|
||||
JOIN freight.yards b ON b.code = 'DJIB_PORT'
|
||||
JOIN iam.users u ON u.email = 'operation@edr.local'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM freight.rates r
|
||||
WHERE r.rate_type = v.rate_type
|
||||
AND r.origin_yard_id = a.id AND r.destination_yard_id = b.id
|
||||
AND r.deleted_at IS NULL
|
||||
);
|
||||
Reference in New Issue
Block a user