feat(wcs): persist transport orders and workflows
This commit is contained in:
85
sql/wcs/V001__wcs_task_foundation.sql
Normal file
85
sql/wcs/V001__wcs_task_foundation.sql
Normal file
@@ -0,0 +1,85 @@
|
||||
SET XACT_ABORT ON;
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
IF OBJECT_ID('dbo.wcs_transport_order', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.wcs_transport_order (
|
||||
order_id varchar(64) NOT NULL PRIMARY KEY,
|
||||
external_request_id varchar(128) NOT NULL,
|
||||
order_type varchar(32) NOT NULL,
|
||||
load_id varchar(128) NULL,
|
||||
source_code varchar(128) NOT NULL,
|
||||
destination_code varchar(128) NOT NULL,
|
||||
priority int NOT NULL,
|
||||
order_state varchar(32) NOT NULL,
|
||||
workflow_id varchar(64) NULL,
|
||||
result_code varchar(64) NULL,
|
||||
state_reason nvarchar(512) NULL,
|
||||
state_version bigint NOT NULL,
|
||||
created_time datetime2(3) NOT NULL,
|
||||
updated_time datetime2(3) NOT NULL,
|
||||
CONSTRAINT uk_wcs_transport_order_external_request
|
||||
UNIQUE (external_request_id)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.wcs_workflow_instance', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.wcs_workflow_instance (
|
||||
workflow_id varchar(64) NOT NULL PRIMARY KEY,
|
||||
order_id varchar(64) NOT NULL,
|
||||
workflow_state varchar(32) NOT NULL,
|
||||
state_version bigint NOT NULL,
|
||||
CONSTRAINT fk_wcs_workflow_order FOREIGN KEY (order_id)
|
||||
REFERENCES dbo.wcs_transport_order(order_id),
|
||||
CONSTRAINT uk_wcs_workflow_order UNIQUE (order_id)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.wcs_task_step', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.wcs_task_step (
|
||||
step_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
workflow_id varchar(64) NOT NULL,
|
||||
step_key varchar(64) NOT NULL,
|
||||
step_type varchar(32) NOT NULL,
|
||||
required_flag bit NOT NULL,
|
||||
step_state varchar(32) NOT NULL,
|
||||
reason_code varchar(128) NULL,
|
||||
vehicle_id varchar(64) NULL,
|
||||
state_version bigint NOT NULL,
|
||||
CONSTRAINT fk_wcs_task_step_workflow FOREIGN KEY (workflow_id)
|
||||
REFERENCES dbo.wcs_workflow_instance(workflow_id),
|
||||
CONSTRAINT uk_wcs_task_step_key UNIQUE (workflow_id, step_key)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.wcs_task_dependency', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.wcs_task_dependency (
|
||||
workflow_id varchar(64) NOT NULL,
|
||||
step_key varchar(64) NOT NULL,
|
||||
depends_on_step_key varchar(64) NOT NULL,
|
||||
CONSTRAINT pk_wcs_task_dependency PRIMARY KEY (
|
||||
workflow_id, step_key, depends_on_step_key),
|
||||
CONSTRAINT fk_wcs_task_dependency_workflow FOREIGN KEY (workflow_id)
|
||||
REFERENCES dbo.wcs_workflow_instance(workflow_id)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.wcs_domain_event', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.wcs_domain_event (
|
||||
event_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
aggregate_id varchar(64) NOT NULL,
|
||||
event_sequence bigint NOT NULL,
|
||||
event_type varchar(64) NOT NULL,
|
||||
occurred_time datetime2(3) NOT NULL,
|
||||
payload_json nvarchar(max) NULL,
|
||||
published_flag bit NOT NULL CONSTRAINT df_wcs_domain_event_published DEFAULT (0),
|
||||
CONSTRAINT uk_wcs_domain_event_sequence
|
||||
UNIQUE (aggregate_id, event_sequence)
|
||||
);
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
Reference in New Issue
Block a user