27 lines
1.9 KiB
Python
27 lines
1.9 KiB
Python
QUANTITY_DDL = (
|
|
"""CREATE TABLE IF NOT EXISTS b08_work_breakdown (
|
|
id CHAR(36) PRIMARY KEY, project_id CHAR(36) NOT NULL, parent_id CHAR(36) NULL,
|
|
wbs_code VARCHAR(50) NOT NULL, name VARCHAR(255) NOT NULL, level_no INT NOT NULL,
|
|
sort_order INT NOT NULL DEFAULT 0, UNIQUE KEY uq_b08_wbs(project_id,wbs_code))""",
|
|
"""CREATE TABLE IF NOT EXISTS b08_design_quantity_items (
|
|
id CHAR(36) PRIMARY KEY, project_id CHAR(36) NOT NULL, wbs_id CHAR(36) NOT NULL,
|
|
reference_type VARCHAR(20) NOT NULL, reference_id CHAR(36) NOT NULL,
|
|
item_name VARCHAR(255) NOT NULL, specification VARCHAR(255) NOT NULL DEFAULT '', unit VARCHAR(30) NOT NULL,
|
|
design_quantity DECIMAL(20,6) NULL, adjusted_quantity DECIMAL(20,6) NULL,
|
|
confirmed_quantity DECIMAL(20,6) NULL, adjustment_reason VARCHAR(500) NULL,
|
|
procurement_type VARCHAR(20) NOT NULL DEFAULT 'PRIVATE', excluded TINYINT(1) NOT NULL DEFAULT 0,
|
|
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT', sort_order INT NOT NULL DEFAULT 0,
|
|
updated_by BIGINT NULL, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
KEY ix_b08_design_qty(project_id,wbs_id))""",
|
|
"""CREATE TABLE IF NOT EXISTS b08_quantity_revisions (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY, quantity_item_id CHAR(36) NOT NULL,
|
|
revision_no INT NOT NULL, before_json LONGTEXT NOT NULL, after_json LONGTEXT NOT NULL,
|
|
change_reason VARCHAR(500) NOT NULL, changed_by BIGINT NULL,
|
|
changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_b08_qty_revision(quantity_item_id,revision_no))""",
|
|
"""CREATE TABLE IF NOT EXISTS b08_quantity_confirmations (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY, project_id CHAR(36) NOT NULL,
|
|
quantity_version INT NOT NULL, input_hash CHAR(64) NOT NULL,
|
|
confirmed_by BIGINT NULL, confirmed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_b08_qty_confirm(project_id,quantity_version))""",
|
|
) |