29 lines
1.9 KiB
Python
29 lines
1.9 KiB
Python
BASIS_DDL = (
|
|
"""CREATE TABLE IF NOT EXISTS b08_basis_versions (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY, project_id CHAR(36) NOT NULL,
|
|
version VARCHAR(50) NOT NULL, base_date DATE NOT NULL, region VARCHAR(100) NOT NULL,
|
|
currency CHAR(3) NOT NULL DEFAULT 'KRW', status VARCHAR(20) NOT NULL DEFAULT 'DRAFT',
|
|
confirmed_by BIGINT NULL, confirmed_at DATETIME NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_b08_basis(project_id,version))""",
|
|
"""CREATE TABLE IF NOT EXISTS b08_price_sources (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY, project_id CHAR(36) NOT NULL,
|
|
source_code VARCHAR(40) NOT NULL, source_name VARCHAR(100) NOT NULL,
|
|
priority_no INT NOT NULL DEFAULT 100, publisher VARCHAR(150) NULL,
|
|
reference_date DATE NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE',
|
|
UNIQUE KEY uq_b08_source(project_id,source_code))""",
|
|
"""CREATE TABLE IF NOT EXISTS b08_exchange_rates (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY, project_id CHAR(36) NOT NULL,
|
|
basis_version VARCHAR(50) NOT NULL, currency CHAR(3) NOT NULL,
|
|
rate_to_krw DECIMAL(20,8) NOT NULL, source_id BIGINT NULL,
|
|
effective_from DATE NOT NULL, effective_to DATE NULL,
|
|
UNIQUE KEY uq_b08_fx(project_id,basis_version,currency))""",
|
|
"""CREATE TABLE IF NOT EXISTS b08_rate_policies (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY, project_id CHAR(36) NOT NULL,
|
|
basis_version VARCHAR(50) NOT NULL, rule_code VARCHAR(80) NOT NULL,
|
|
rule_name VARCHAR(150) NOT NULL, base_expression LONGTEXT NOT NULL,
|
|
rate_value DECIMAL(20,10) NULL, minimum_amount BIGINT NULL, maximum_amount BIGINT NULL,
|
|
rounding_mode VARCHAR(30) NOT NULL, rounding_unit BIGINT NOT NULL DEFAULT 1,
|
|
condition_json LONGTEXT NOT NULL, source_reference VARCHAR(500) NULL,
|
|
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT', sort_order INT NOT NULL DEFAULT 0,
|
|
UNIQUE KEY uq_b08_rate_policy(project_id,basis_version,rule_code))""",
|
|
) |