Files
FT546-WCS/sql/wcs/V001__wcs_task_foundation.sql

86 lines
3.0 KiB
SQL

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;