88 lines
2.7 KiB
SQL
88 lines
2.7 KiB
SQL
-- ==========================================================
|
|
-- Delta 06: Add CIRCULATION_FLOW_V1 Workflow Definition
|
|
-- ==========================================================
|
|
-- Purpose : สร้าง Workflow Definition สำหรับใบเวียนภายใน (Circulation)
|
|
-- Required : ก่อน delta นี้ ตาราง workflow_definitions ต้องมีอยู่แล้ว (ADR-001)
|
|
-- Renamed : CIRCULATION_INTERNAL_V1 → CIRCULATION_FLOW_V1 (ตาม naming convention)
|
|
-- States :
|
|
-- DRAFT (initial) → START → ROUTING
|
|
-- ROUTING → COMPLETE → COMPLETED (terminal)
|
|
-- ROUTING → FORCE_CLOSE → CANCELLED (terminal)
|
|
-- ==========================================================
|
|
|
|
INSERT INTO `workflow_definitions` (
|
|
`id`,
|
|
`workflow_code`,
|
|
`version`,
|
|
`description`,
|
|
`dsl`,
|
|
`compiled`,
|
|
`is_active`,
|
|
`created_at`,
|
|
`updated_at`
|
|
)
|
|
VALUES (
|
|
UUID(),
|
|
'CIRCULATION_FLOW_V1',
|
|
1,
|
|
'Circulation Workflow — DRAFT → ROUTING → COMPLETED | CANCELLED',
|
|
JSON_OBJECT(
|
|
'workflow', 'CIRCULATION_FLOW_V1',
|
|
'version', 1,
|
|
'states', JSON_ARRAY(
|
|
JSON_OBJECT(
|
|
'name', 'DRAFT',
|
|
'initial', TRUE,
|
|
'on', JSON_OBJECT(
|
|
'START', JSON_OBJECT('to', 'ROUTING')
|
|
)
|
|
),
|
|
JSON_OBJECT(
|
|
'name', 'ROUTING',
|
|
'on', JSON_OBJECT(
|
|
'COMPLETE', JSON_OBJECT('to', 'COMPLETED'),
|
|
'FORCE_CLOSE', JSON_OBJECT('to', 'CANCELLED')
|
|
)
|
|
),
|
|
JSON_OBJECT('name', 'COMPLETED', 'terminal', TRUE),
|
|
JSON_OBJECT('name', 'CANCELLED', 'terminal', TRUE)
|
|
)
|
|
),
|
|
JSON_OBJECT(
|
|
'initialState', 'DRAFT',
|
|
'states', JSON_OBJECT(
|
|
'DRAFT', JSON_OBJECT(
|
|
'initial', TRUE,
|
|
'terminal', FALSE,
|
|
'transitions', JSON_OBJECT(
|
|
'START', JSON_OBJECT('to', 'ROUTING', 'events', JSON_ARRAY())
|
|
)
|
|
),
|
|
'ROUTING', JSON_OBJECT(
|
|
'initial', FALSE,
|
|
'terminal', FALSE,
|
|
'transitions', JSON_OBJECT(
|
|
'COMPLETE', JSON_OBJECT('to', 'COMPLETED', 'events', JSON_ARRAY()),
|
|
'FORCE_CLOSE', JSON_OBJECT('to', 'CANCELLED', 'events', JSON_ARRAY())
|
|
)
|
|
),
|
|
'COMPLETED', JSON_OBJECT(
|
|
'initial', FALSE,
|
|
'terminal', TRUE,
|
|
'transitions', JSON_OBJECT()
|
|
),
|
|
'CANCELLED', JSON_OBJECT(
|
|
'initial', FALSE,
|
|
'terminal', TRUE,
|
|
'transitions', JSON_OBJECT()
|
|
)
|
|
)
|
|
),
|
|
TRUE,
|
|
NOW(),
|
|
NOW()
|
|
);
|
|
|
|
-- Verify
|
|
-- SELECT workflow_code, version, is_active FROM workflow_definitions WHERE workflow_code = 'CIRCULATION_FLOW_V1';
|