Set up change tracking in core tables
This commit is contained in:
@@ -100,44 +100,44 @@ CREATE TABLE IF NOT EXISTS sales_seasonality (
|
||||
|
||||
-- Insert default global thresholds if not exists
|
||||
INSERT INTO stock_thresholds (id, category_id, vendor, critical_days, reorder_days, overstock_days)
|
||||
VALUES (1, NULL, NULL, 7, 14, 90)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
critical_days = VALUES(critical_days),
|
||||
reorder_days = VALUES(reorder_days),
|
||||
overstock_days = VALUES(overstock_days);
|
||||
VALUES (1, NULL, NULL, 7, 14, 90) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
critical_days = new_values.critical_days,
|
||||
reorder_days = new_values.reorder_days,
|
||||
overstock_days = new_values.overstock_days;
|
||||
|
||||
INSERT INTO lead_time_thresholds (id, category_id, vendor, target_days, warning_days, critical_days)
|
||||
VALUES (1, NULL, NULL, 14, 21, 30)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
target_days = VALUES(target_days),
|
||||
warning_days = VALUES(warning_days),
|
||||
critical_days = VALUES(critical_days);
|
||||
VALUES (1, NULL, NULL, 14, 21, 28) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
target_days = new_values.target_days,
|
||||
warning_days = new_values.warning_days,
|
||||
critical_days = new_values.critical_days;
|
||||
|
||||
INSERT INTO sales_velocity_config (id, category_id, vendor, daily_window_days, weekly_window_days, monthly_window_days)
|
||||
VALUES (1, NULL, NULL, 30, 7, 90)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
daily_window_days = VALUES(daily_window_days),
|
||||
weekly_window_days = VALUES(weekly_window_days),
|
||||
monthly_window_days = VALUES(monthly_window_days);
|
||||
VALUES (1, NULL, NULL, 30, 90, 180) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
daily_window_days = new_values.daily_window_days,
|
||||
weekly_window_days = new_values.weekly_window_days,
|
||||
monthly_window_days = new_values.monthly_window_days;
|
||||
|
||||
INSERT INTO abc_classification_config (id, a_threshold, b_threshold, classification_period_days)
|
||||
VALUES (1, 20.0, 50.0, 90)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
a_threshold = VALUES(a_threshold),
|
||||
b_threshold = VALUES(b_threshold),
|
||||
classification_period_days = VALUES(classification_period_days);
|
||||
VALUES (1, 80, 95, 180) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
a_threshold = new_values.a_threshold,
|
||||
b_threshold = new_values.b_threshold,
|
||||
classification_period_days = new_values.classification_period_days;
|
||||
|
||||
INSERT INTO safety_stock_config (id, category_id, vendor, coverage_days, service_level)
|
||||
VALUES (1, NULL, NULL, 14, 95.0)
|
||||
VALUES (1, NULL, NULL, 14, 95.0) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
coverage_days = VALUES(coverage_days),
|
||||
service_level = VALUES(service_level);
|
||||
coverage_days = new_values.coverage_days,
|
||||
service_level = new_values.service_level;
|
||||
|
||||
INSERT INTO turnover_config (id, category_id, vendor, calculation_period_days, target_rate)
|
||||
VALUES (1, NULL, NULL, 30, 1.0)
|
||||
VALUES (1, NULL, NULL, 30, 1.0) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
calculation_period_days = VALUES(calculation_period_days),
|
||||
target_rate = VALUES(target_rate);
|
||||
calculation_period_days = new_values.calculation_period_days,
|
||||
target_rate = new_values.target_rate;
|
||||
|
||||
-- Insert default seasonality factors (neutral)
|
||||
INSERT INTO sales_seasonality (month, seasonality_factor)
|
||||
@@ -193,4 +193,24 @@ CREATE TABLE IF NOT EXISTS import_history (
|
||||
additional_info JSON,
|
||||
INDEX idx_table_time (table_name, start_time),
|
||||
INDEX idx_status (status)
|
||||
);
|
||||
);
|
||||
|
||||
-- Configuration for metric calculation windows
|
||||
CREATE TABLE IF NOT EXISTS metric_calculation_config (
|
||||
id INT NOT NULL PRIMARY KEY,
|
||||
calculation_window_days INT NOT NULL DEFAULT 90,
|
||||
incremental_enabled BOOLEAN DEFAULT TRUE,
|
||||
force_full_calculation_days INT DEFAULT 7,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
|
||||
|
||||
-- Insert default metric calculation config
|
||||
INSERT INTO metric_calculation_config (id, calculation_window_days, incremental_enabled, force_full_calculation_days)
|
||||
VALUES (1, 90, TRUE, 7) AS new_values
|
||||
ON DUPLICATE KEY UPDATE
|
||||
calculation_window_days = new_values.calculation_window_days,
|
||||
incremental_enabled = new_values.incremental_enabled,
|
||||
force_full_calculation_days = new_values.force_full_calculation_days;
|
||||
Reference in New Issue
Block a user