86 lines
3.0 KiB
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;
|