refactor: remove legacy modules from API and UI

This commit is contained in:
2026-02-15 22:20:50 +03:00
parent 5518c3b405
commit 93c99b4506
45 changed files with 464 additions and 5610 deletions

View File

@@ -0,0 +1,108 @@
SET FOREIGN_KEY_CHECKS = 0;
CREATE TABLE IF NOT EXISTS customers (
id VARCHAR(16) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS locations (
id VARCHAR(16) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
kind VARCHAR(64) NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uniq_locations_name (name)
);
CREATE TABLE IF NOT EXISTS lots (
id VARCHAR(16) PRIMARY KEY,
code VARCHAR(255) NOT NULL,
description TEXT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uniq_lots_code (code)
);
ALTER TABLE projects
ADD COLUMN customer_id VARCHAR(16) NULL,
ADD INDEX idx_projects_customer (customer_id),
ADD UNIQUE KEY uniq_projects_customer_name (customer_id, name),
ADD CONSTRAINT fk_projects_customer
FOREIGN KEY (customer_id) REFERENCES customers(id)
ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE machines
ADD COLUMN customer_id VARCHAR(16) NULL,
ADD COLUMN location_id VARCHAR(16) NULL,
ADD INDEX idx_machines_customer (customer_id),
ADD INDEX idx_machines_location (location_id),
ADD CONSTRAINT fk_machines_customer
FOREIGN KEY (customer_id) REFERENCES customers(id)
ON DELETE SET NULL ON UPDATE CASCADE,
ADD CONSTRAINT fk_machines_location
FOREIGN KEY (location_id) REFERENCES locations(id)
ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE parts
ADD COLUMN lot_id VARCHAR(16) NULL,
ADD INDEX idx_parts_lot (lot_id),
ADD CONSTRAINT fk_parts_lot
FOREIGN KEY (lot_id) REFERENCES lots(id)
ON DELETE SET NULL ON UPDATE CASCADE;
CREATE TABLE IF NOT EXISTS tickets (
id VARCHAR(16) PRIMARY KEY,
source VARCHAR(64) NOT NULL,
external_id VARCHAR(255) NOT NULL,
title VARCHAR(512) NOT NULL,
status VARCHAR(64) NOT NULL,
opened_at TIMESTAMP NULL,
closed_at TIMESTAMP NULL,
url VARCHAR(512) NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uniq_tickets_source_external (source, external_id)
);
CREATE TABLE IF NOT EXISTS ticket_links (
id VARCHAR(16) PRIMARY KEY,
ticket_id VARCHAR(16) NOT NULL,
machine_id VARCHAR(16) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_ticket_links_ticket
FOREIGN KEY (ticket_id) REFERENCES tickets(id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_ticket_links_machine
FOREIGN KEY (machine_id) REFERENCES machines(id)
ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE KEY uniq_ticket_links_ticket_machine (ticket_id, machine_id),
INDEX idx_ticket_links_machine (machine_id, ticket_id)
);
CREATE TABLE IF NOT EXISTS lot_model_mappings (
id VARCHAR(16) PRIMARY KEY,
model VARCHAR(255) NOT NULL,
lot_id VARCHAR(16) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uniq_lot_model_mappings_model (model),
CONSTRAINT fk_lot_model_mappings_lot
FOREIGN KEY (lot_id) REFERENCES lots(id)
ON DELETE CASCADE ON UPDATE CASCADE,
INDEX idx_lot_model_mappings_lot (lot_id)
);
INSERT INTO id_sequences (entity_type, next_value)
VALUES
('customer', 1),
('location', 1),
('lot', 1),
('ticket', 1),
('ticket_link', 1),
('lot_model_mapping', 1)
ON DUPLICATE KEY UPDATE next_value = id_sequences.next_value;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -0,0 +1,33 @@
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS ticket_links;
DROP TABLE IF EXISTS tickets;
DROP TABLE IF EXISTS lot_model_mappings;
ALTER TABLE parts
DROP FOREIGN KEY fk_parts_lot,
DROP INDEX idx_parts_lot,
DROP COLUMN lot_id;
ALTER TABLE machines
DROP FOREIGN KEY fk_machines_customer,
DROP FOREIGN KEY fk_machines_location,
DROP INDEX idx_machines_customer,
DROP INDEX idx_machines_location,
DROP COLUMN customer_id,
DROP COLUMN location_id;
ALTER TABLE projects
DROP FOREIGN KEY fk_projects_customer,
DROP INDEX idx_projects_customer,
DROP INDEX uniq_projects_customer_name,
DROP COLUMN customer_id;
DROP TABLE IF EXISTS lots;
DROP TABLE IF EXISTS locations;
DROP TABLE IF EXISTS customers;
DELETE FROM id_sequences
WHERE entity_type IN ('customer', 'location', 'lot', 'ticket', 'ticket_link', 'lot_model_mapping');
SET FOREIGN_KEY_CHECKS = 1;