backen: jwt

This commit is contained in:
2025-09-30 16:38:37 +07:00
parent 8b2dff8d1d
commit 5be0f5407b
396 changed files with 33377 additions and 4851 deletions

View File

@@ -0,0 +1,6 @@
[mariadb-client]
port=3306
socket=/run/mysqld/mysqld.sock
user=healthcheck
password=jhc12PlUnlAebL|p7OxiYwMyuC<<E0D+

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_cir_users_bi_flags\nBEFORE INSERT ON cir_users\nFOR EACH ROW\nBEGIN\n SET NEW.is_main = IFNULL(NEW.is_main, 0);\n SET NEW.is_action = IFNULL(NEW.is_action, 0);\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cir_users_bu_flags\nBEFORE UPDATE ON cir_users\nFOR EACH ROW\nBEGIN\n SET NEW.is_main = IFNULL(NEW.is_main, 0);\n SET NEW.is_action = IFNULL(NEW.is_action, 0);\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220379993565 1759220380105898

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_cdwg_bi_normalize\nBEFORE INSERT ON contract_dwg\nFOR EACH ROW\nBEGIN\n SET NEW.condwg_no = TRIM(NEW.condwg_no);\n SET NEW.title = NULLIF(TRIM(NEW.title), \'\');\n\n IF NEW.project_id IS NULL OR NEW.sub_cat_id IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'project_id and sub_cat_id are required for contract_dwg\';\n END IF;\n IF NEW.condwg_no IS NULL OR NEW.condwg_no=\'\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'condwg_no is required\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_dwg_before_insert\nBEFORE INSERT ON contract_dwg\nFOR EACH ROW\nBEGIN\n DECLARE v_cnt INT DEFAULT 0;\n\n \n SET NEW.condwg_no = TRIM(NEW.condwg_no);\n IF NEW.title IS NOT NULL THEN\n SET NEW.title = TRIM(NEW.title);\n END IF;\n IF NEW.remark IS NOT NULL THEN\n SET NEW.remark = TRIM(NEW.remark);\n END IF;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_sub_cat sc\n WHERE sc.sub_cat_id = NEW.sub_cat_id\n AND sc.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid sub_cat_id: must belong to same project\';\n END IF;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_volume v\n WHERE v.volume_id = NEW.volume_id\n AND v.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid volume_id: must belong to same project\';\n END IF;\n\n SET NEW.created_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cdwg_bu_normalize\nBEFORE UPDATE ON contract_dwg\nFOR EACH ROW\nBEGIN\n SET NEW.condwg_no = TRIM(NEW.condwg_no);\n SET NEW.title = NULLIF(TRIM(NEW.title), \'\');\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_dwg_before_update\nBEFORE UPDATE ON contract_dwg\nFOR EACH ROW\nBEGIN\n DECLARE v_cnt INT DEFAULT 0;\n\n \n IF NEW.condwg_no IS NOT NULL THEN\n SET NEW.condwg_no = TRIM(NEW.condwg_no);\n END IF;\n IF NEW.title IS NOT NULL THEN\n SET NEW.title = TRIM(NEW.title);\n END IF;\n IF NEW.remark IS NOT NULL THEN\n SET NEW.remark = TRIM(NEW.remark);\n END IF;\n\n \n IF NEW.project_id <> OLD.project_id THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Changing drawing project_id is not allowed\';\n END IF;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_sub_cat sc\n WHERE sc.sub_cat_id = NEW.sub_cat_id\n AND sc.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid sub_cat_id after update: must be same project\';\n END IF;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_volume v\n WHERE v.volume_id = NEW.volume_id\n AND v.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid volume_id after update: must be same project\';\n END IF;\n\n SET NEW.updated_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_dwg_before_delete\nBEFORE DELETE ON contract_dwg\nFOR EACH ROW\nBEGIN\n \n \nEND'
sql_modes=1411383296 1411383296 1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220379595746 1759220382757985 1759220379725392 1759220383012145 1759220383498581

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_cdwg_cat_bi_norm\nBEFORE INSERT ON contract_dwg_cat\nFOR EACH ROW\nBEGIN\n SET NEW.cat_name = TRIM(NEW.cat_name);\n IF NEW.cat_name IS NULL OR NEW.cat_name=\'\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'cat_name is required\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cat_before_insert\nBEFORE INSERT ON contract_dwg_cat\nFOR EACH ROW\nBEGIN\n \n SET NEW.cat_name = TRIM(NEW.cat_name);\n IF NEW.cat_code IS NOT NULL THEN\n SET NEW.cat_code = TRIM(NEW.cat_code);\n END IF;\n\n \n SET NEW.created_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cat_before_update\nBEFORE UPDATE ON contract_dwg_cat\nFOR EACH ROW\nBEGIN\n DECLARE v_map_cnt INT DEFAULT 0;\n \n IF NEW.cat_name IS NOT NULL THEN\n SET NEW.cat_name = TRIM(NEW.cat_name);\n END IF;\n IF NEW.cat_code IS NOT NULL THEN\n SET NEW.cat_code = TRIM(NEW.cat_code);\n END IF;\n\n \n IF NEW.project_id <> OLD.project_id THEN\n SELECT COUNT(*) INTO v_map_cnt\n FROM contract_dwg_subcat_cat_map m\n WHERE m.project_id = OLD.project_id\n AND m.cat_id = OLD.cat_id;\n IF v_map_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot change category project_id: mappings exist in subcat↔cat map\';\n END IF;\n END IF;\n\n \n SET NEW.updated_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cat_before_delete\nBEFORE DELETE ON contract_dwg_cat\nFOR EACH ROW\nBEGIN\n \n DECLARE v_map_cnt INT DEFAULT 0;\n SELECT COUNT(*) INTO v_map_cnt\n FROM contract_dwg_subcat_cat_map m\n WHERE m.project_id = OLD.project_id\n AND m.cat_id = OLD.cat_id;\n\n IF v_map_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot delete category: mapped by sub-categories in this project\';\n END IF;\nEND'
sql_modes=1411383296 1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220379895653 1759220380272498 1759220380492708 1759220380712245

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_subcat_before_insert\nBEFORE INSERT ON contract_dwg_sub_cat\nFOR EACH ROW\nBEGIN\n SET NEW.sub_cat_name = TRIM(NEW.sub_cat_name);\n IF NEW.sub_cat_code IS NOT NULL THEN\n SET NEW.sub_cat_code = TRIM(NEW.sub_cat_code);\n END IF;\n\n SET NEW.created_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_subcat_before_update\nBEFORE UPDATE ON contract_dwg_sub_cat\nFOR EACH ROW\nBEGIN\n DECLARE v_map_cnt INT DEFAULT 0;\n DECLARE v_dwg_cnt INT DEFAULT 0;\n IF NEW.sub_cat_name IS NOT NULL THEN\n SET NEW.sub_cat_name = TRIM(NEW.sub_cat_name);\n END IF;\n IF NEW.sub_cat_code IS NOT NULL THEN\n SET NEW.sub_cat_code = TRIM(NEW.sub_cat_code);\n END IF;\n\n \n IF NEW.project_id <> OLD.project_id THEN\n SELECT COUNT(*) INTO v_map_cnt\n FROM contract_dwg_subcat_cat_map m\n WHERE m.project_id = OLD.project_id\n AND m.sub_cat_id = OLD.sub_cat_id;\n\n SELECT COUNT(*) INTO v_dwg_cnt\n FROM contract_dwg d\n WHERE d.project_id = OLD.project_id\n AND d.sub_cat_id = OLD.sub_cat_id;\n\n IF v_map_cnt > 0 OR v_dwg_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot change sub-category project_id: drawings or mappings exist\';\n END IF;\n END IF;\n\n SET NEW.updated_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_subcat_before_delete\nBEFORE DELETE ON contract_dwg_sub_cat\nFOR EACH ROW\nBEGIN\n DECLARE v_dwg_cnt INT DEFAULT 0;\n DECLARE v_map_cnt INT DEFAULT 0;\n\n SELECT COUNT(*) INTO v_dwg_cnt\n FROM contract_dwg d\n WHERE d.project_id = OLD.project_id\n AND d.sub_cat_id = OLD.sub_cat_id;\n\n SELECT COUNT(*) INTO v_map_cnt\n FROM contract_dwg_subcat_cat_map m\n WHERE m.project_id = OLD.project_id\n AND m.sub_cat_id = OLD.sub_cat_id;\n\n IF v_dwg_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot delete sub-category: drawings exist in this sub-category\';\n END IF;\n\n IF v_map_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot delete sub-category: it is mapped to categories\';\n END IF;\nEND'
sql_modes=1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220381156227 1759220381265061 1759220381497493

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_map_before_insert\nBEFORE INSERT ON contract_dwg_subcat_cat_map\nFOR EACH ROW\nBEGIN\n DECLARE v_cnt INT DEFAULT 0;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_sub_cat sc\n WHERE sc.sub_cat_id = NEW.sub_cat_id\n AND sc.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid sub_cat_id: must belong to the same project (map)\';\n END IF;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_cat c\n WHERE c.cat_id = NEW.cat_id\n AND c.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid cat_id: must belong to the same project (map)\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_map_before_update\nBEFORE UPDATE ON contract_dwg_subcat_cat_map\nFOR EACH ROW\nBEGIN\n DECLARE v_cnt INT DEFAULT 0;\n\n \n IF NEW.project_id <> OLD.project_id THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Changing project_id on mapping is not allowed\';\n END IF;\n\n \n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_sub_cat sc\n WHERE sc.sub_cat_id = NEW.sub_cat_id\n AND sc.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid sub_cat_id after update: must be same project\';\n END IF;\n\n SELECT COUNT(*) INTO v_cnt\n FROM contract_dwg_cat c\n WHERE c.cat_id = NEW.cat_id\n AND c.project_id = NEW.project_id;\n IF v_cnt = 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Invalid cat_id after update: must be same project\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_map_before_delete\nBEFORE DELETE ON contract_dwg_subcat_cat_map\nFOR EACH ROW\nBEGIN\n \n \nEND'
sql_modes=1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220381718496 1759220381824403 1759220382028445

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_volume_before_insert\nBEFORE INSERT ON contract_dwg_volume\nFOR EACH ROW\nBEGIN\n SET NEW.volume_code = TRIM(NEW.volume_code);\n IF NEW.volume_name IS NOT NULL THEN\n SET NEW.volume_name = TRIM(NEW.volume_name);\n END IF;\n\n SET NEW.created_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_volume_before_update\nBEFORE UPDATE ON contract_dwg_volume\nFOR EACH ROW\nBEGIN\n DECLARE v_dwg_cnt INT DEFAULT 0;\n IF NEW.volume_code IS NOT NULL THEN\n SET NEW.volume_code = TRIM(NEW.volume_code);\n END IF;\n IF NEW.volume_name IS NOT NULL THEN\n SET NEW.volume_name = TRIM(NEW.volume_name);\n END IF;\n\n \n IF NEW.project_id <> OLD.project_id THEN \n SELECT COUNT(*) INTO v_dwg_cnt\n FROM contract_dwg d\n WHERE d.project_id = OLD.project_id\n AND d.volume_id = OLD.volume_id;\n\n IF v_dwg_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot change volume project_id: drawings exist in this volume\';\n END IF;\n END IF;\n\n SET NEW.updated_at = CURRENT_TIMESTAMP;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_volume_before_delete\nBEFORE DELETE ON contract_dwg_volume\nFOR EACH ROW\nBEGIN\n DECLARE v_dwg_cnt INT DEFAULT 0;\n SELECT COUNT(*) INTO v_dwg_cnt\n FROM contract_dwg d\n WHERE d.project_id = OLD.project_id\n AND d.volume_id = OLD.volume_id;\n\n IF v_dwg_cnt > 0 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'Cannot delete volume: drawings exist in this volume\';\n END IF;\nEND'
sql_modes=1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220382195544 1759220382282307 1759220382459142

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_corcc_bi_guard_party\nBEFORE INSERT ON correspondence_cc_recipients\nFOR EACH ROW\nBEGIN\n DECLARE v_project_id INT;\n SELECT project_id INTO v_project_id FROM correspondences WHERE corr_id = NEW.corr_id;\n IF v_project_id IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Correspondence not found\';\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM project_parties\n WHERE project_id = v_project_id AND org_id = NEW.org_id AND deleted_at IS NULL\n ) THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'CC org is not in project parties\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_corcc_bu_guard_party\nBEFORE UPDATE ON correspondence_cc_recipients\nFOR EACH ROW\nBEGIN\n DECLARE v_project_id INT;\n SELECT project_id INTO v_project_id FROM correspondences WHERE corr_id = NEW.corr_id;\n IF v_project_id IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Correspondence not found\';\n END IF;\n\n IF NOT EXISTS (\n SELECT 1 FROM project_parties\n WHERE project_id = v_project_id AND org_id = NEW.org_id AND deleted_at IS NULL\n ) THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'CC org is not in project parties\';\n END IF;\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220376112820 1759220376245144

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_correfl_bi_guard_self\nBEFORE INSERT ON correspondence_references\nFOR EACH ROW\nBEGIN\n IF NEW.src_corr_id = NEW.tgt_corr_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Cannot reference a correspondence to itself\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_correfl_bu_guard_self\nBEFORE UPDATE ON correspondence_references\nFOR EACH ROW\nBEGIN\n IF NEW.src_corr_id = NEW.tgt_corr_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Cannot reference a correspondence to itself\';\n END IF;\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220376654188 1759220376770663

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_cor_bi_normalize\nBEFORE INSERT ON correspondences\nFOR EACH ROW\nBEGIN\n SET NEW.correspondence_number = TRIM(NEW.correspondence_number);\n SET NEW.title = TRIM(NEW.title);\n SET NEW.keywords = NULLIF(TRIM(NEW.keywords), \'\');\n SET NEW.revision = NULLIF(TRIM(NEW.revision), \'\');\n SET NEW.is_internal_communication = IFNULL(NEW.is_internal_communication, 0);\n\n IF NEW.project_id IS NULL OR NEW.correspondence_type_id IS NULL OR NEW.correspondence_status_id IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'project_id/type_id/status_id is required\';\n END IF;\n IF NEW.correspondence_number IS NULL OR NEW.correspondence_number=\'\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'correspondence_number is required\';\n END IF;\n\n \nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cor_ai_set_root\nAFTER INSERT ON correspondences\nFOR EACH ROW\nBEGIN\n IF NEW.root_id IS NULL THEN\n UPDATE correspondences SET root_id = NEW.corr_id WHERE corr_id = NEW.corr_id;\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cor_bu_normalize\nBEFORE UPDATE ON correspondences\nFOR EACH ROW\nBEGIN\n SET NEW.correspondence_number = TRIM(NEW.correspondence_number);\n SET NEW.title = TRIM(NEW.title);\n SET NEW.keywords = NULLIF(TRIM(NEW.keywords), \'\');\n SET NEW.revision = NULLIF(TRIM(NEW.revision), \'\');\n SET NEW.is_internal_communication = IFNULL(NEW.is_internal_communication, 0);\n\n \n IF NEW.root_id <> OLD.root_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'root_id is immutable\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_cor_bd_no_delete_root_with_children\nBEFORE DELETE ON correspondences\nFOR EACH ROW\nBEGIN\n IF EXISTS (SELECT 1 FROM correspondences WHERE root_id = OLD.corr_id AND corr_id <> OLD.corr_id) THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Cannot delete root correspondence with existing revisions\';\n END IF;\nEND'
sql_modes=1411383296 1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220375434299 1759220375781124 1759220375559604 1759220375957839

Binary file not shown.

Binary file not shown.

2
mariadb/data/dms/db.opt Normal file
View File

@@ -0,0 +1,2 @@
default-character-set=utf8mb4
default-collation=utf8mb4_general_ci

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_scd_bi_guard\nBEFORE INSERT ON dwgdoc_contract_dwg\nFOR EACH ROW\nBEGIN\n DECLARE v_doc_proj INT;\n DECLARE v_doc_type_code VARCHAR(20);\n DECLARE v_dwg_proj INT;\n\n \n SELECT t.project_id, dt.code\n INTO v_doc_proj, v_doc_type_code\n FROM technicaldocs t\n JOIN document_types dt ON dt.document_types_id = t.document_type_id\n WHERE t.id = NEW.technical_doc_id;\n\n IF v_doc_proj IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'technical_doc not found\';\n END IF;\n IF v_doc_type_code <> \'DWG\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'technical_doc must be type DWG\';\n END IF;\n\n \n SELECT project_id INTO v_dwg_proj FROM contract_dwg WHERE condwg_id = NEW.condwg_id;\n IF v_dwg_proj IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'contract_dwg not found\';\n END IF;\n IF v_dwg_proj <> v_doc_proj THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'DWG doc and contract_dwg must be in the same project\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_scd_bu_block_update\nBEFORE UPDATE ON dwgdoc_contract_dwg\nFOR EACH ROW\nBEGIN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Update not allowed; delete then insert\';\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220383708744 1759220383819565

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_gdr_bi_match_org_primary\nBEFORE INSERT ON global_default_roles\nFOR EACH ROW\nBEGIN\n DECLARE v_primary VARCHAR(20);\n SELECT primary_role INTO v_primary FROM organizations WHERE org_id = NEW.org_id;\n IF v_primary IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Organization not found for global_default_roles\';\n END IF;\n IF NEW.role <> v_primary THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'global_default_roles.role must match organizations.primary_role\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_gdr_bu_match_org_primary\nBEFORE UPDATE ON global_default_roles\nFOR EACH ROW\nBEGIN\n DECLARE v_primary VARCHAR(20);\n SELECT primary_role INTO v_primary FROM organizations WHERE org_id = NEW.org_id;\n IF v_primary IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Organization not found for global_default_roles\';\n END IF;\n IF NEW.role <> v_primary THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'global_default_roles.role must match organizations.primary_role\';\n END IF;\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220379175294 1759220379347439

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_pp_bi_guard\nBEFORE INSERT ON project_parties\nFOR EACH ROW\nBEGIN\n SET NEW.role = UPPER(NEW.role);\n\n IF NEW.role = \'CONTRACTOR\' AND\n EXISTS (SELECT 1 FROM project_parties\n WHERE project_id = NEW.project_id\n AND role = \'CONTRACTOR\'\n AND deleted_at IS NULL) THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'This project already has a CONTRACTOR\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_pp_bu_guard\nBEFORE UPDATE ON project_parties\nFOR EACH ROW\nBEGIN\n SET NEW.role = UPPER(NEW.role);\n\n IF NEW.role = \'CONTRACTOR\' AND\n EXISTS (SELECT 1 FROM project_parties\n WHERE project_id = NEW.project_id\n AND role = \'CONTRACTOR\'\n AND deleted_at IS NULL\n AND NOT (org_id = OLD.org_id AND role = \'CONTRACTOR\')) THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'This project already has a CONTRACTOR\';\n END IF;\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220378876780 1759220379009579

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_rfa_items_bi_guard\nBEFORE INSERT ON rfa_items\nFOR EACH ROW\nBEGIN\n DECLARE v_type_code VARCHAR(20);\n DECLARE v_hdr_proj INT;\n DECLARE v_doc_proj INT;\n\n SELECT t.type_code, c.project_id\n INTO v_type_code, v_hdr_proj\n FROM correspondences c\n JOIN correspondence_types t ON t.type_id = c.correspondence_type_id\n WHERE c.corr_id = NEW.rfa_corr_id;\n\n IF v_type_code IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'RFA header not found\';\n END IF;\n IF v_type_code <> \'RFA\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'rfa_corr_id must be a correspondence of type RFA\';\n END IF;\n\n SELECT project_id INTO v_doc_proj FROM technicaldocs WHERE id = NEW.technical_doc_id;\n IF v_doc_proj IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'technical document not found\';\n END IF;\n\n IF v_hdr_proj <> v_doc_proj THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'RFA header and technicaldoc must be in the same project\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_rfa_items_bu_guard\nBEFORE UPDATE ON rfa_items\nFOR EACH ROW\nBEGIN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Update on rfa_items is not allowed; delete and re-insert\';\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220377624801 1759220377737882

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mariadb/data/dms/roles.frm Normal file

Binary file not shown.

BIN
mariadb/data/dms/roles.ibd Normal file

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_tdoc_bi_normalize\nBEFORE INSERT ON technicaldocs\nFOR EACH ROW\nBEGIN\n DECLARE v_orig_proj INT;\n\n SET NEW.title = TRIM(NEW.title);\n SET NEW.revision = NULLIF(TRIM(NEW.revision), \'\');\n SET NEW.pdf_path = NULLIF(TRIM(NEW.pdf_path), \'\');\n\n IF NEW.project_id IS NULL OR NEW.document_type_id IS NULL OR NEW.status_code_id IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'project_id/document_type_id/status_code_id is required\';\n END IF;\n IF NEW.revision IS NULL OR NEW.revision=\'\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'technicaldoc revision is required\';\n END IF;\n\n SET v_orig_proj = NULL;\n IF NEW.original_id IS NOT NULL AND NEW.original_id <> 0 THEN\n SELECT project_id INTO v_orig_proj FROM technicaldocs WHERE id = NEW.original_id;\n IF v_orig_proj IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'original_id not found\';\n END IF;\n IF v_orig_proj <> NEW.project_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'original and new revision must be in the same project\';\n END IF;\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_tdoc_ai_set_original\nAFTER INSERT ON technicaldocs\nFOR EACH ROW\nBEGIN\n IF NEW.original_id IS NULL OR NEW.original_id = 0 THEN\n UPDATE technicaldocs SET original_id = NEW.id WHERE id = NEW.id;\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_tdoc_bu_normalize\nBEFORE UPDATE ON technicaldocs\nFOR EACH ROW\nBEGIN\n SET NEW.title = TRIM(NEW.title);\n SET NEW.revision = NULLIF(TRIM(NEW.revision), \'\');\n SET NEW.pdf_path = NULLIF(TRIM(NEW.pdf_path), \'\');\n\n \n IF NEW.original_id <> OLD.original_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'original_id is immutable\';\n END IF;\n IF NEW.project_id <> OLD.project_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'project_id is immutable for a doc family\';\n END IF;\nEND'
sql_modes=1411383296 1411383296 1411383296
definers='root@localhost' 'root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220377008102 1759220377345616 1759220377107766

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
TYPE=TRIGGERS
triggers='CREATE DEFINER=`root`@`localhost` TRIGGER trg_tra_items_bi_guard\nBEFORE INSERT ON transmittal_items\nFOR EACH ROW\nBEGIN\n DECLARE v_type_code VARCHAR(20);\n DECLARE v_hdr_proj INT;\n DECLARE v_item_proj INT;\n\n IF NEW.transmittal_corr_id = NEW.item_corr_id THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'transmittal cannot include itself as an item\';\n END IF;\n\n SELECT t.type_code, c.project_id\n INTO v_type_code, v_hdr_proj\n FROM correspondences c\n JOIN correspondence_types t ON t.type_id = c.correspondence_type_id\n WHERE c.corr_id = NEW.transmittal_corr_id;\n\n IF v_type_code IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Transmittal header not found\';\n END IF;\n IF v_type_code <> \'TRANSMITTAL\' THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'transmittal_corr_id must be type TRANSMITTAL\';\n END IF;\n\n SELECT project_id INTO v_item_proj FROM correspondences WHERE corr_id = NEW.item_corr_id;\n IF v_item_proj IS NULL THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'item correspondence not found\';\n END IF;\n\n IF v_hdr_proj <> v_item_proj THEN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Transmittal header and item must be in the same project\';\n END IF;\nEND' 'CREATE DEFINER=`root`@`localhost` TRIGGER trg_tra_items_bu_guard\nBEFORE UPDATE ON transmittal_items\nFOR EACH ROW\nBEGIN\n SIGNAL SQLSTATE \'45000\' SET MESSAGE_TEXT=\'Update on transmittal_items is not allowed; delete and re-insert\';\nEND'
sql_modes=1411383296 1411383296
definers='root@localhost' 'root@localhost'
client_cs_names='utf8mb4' 'utf8mb4'
connection_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
db_cl_names='utf8mb4_general_ci' 'utf8mb4_general_ci'
created=1759220378602006 1759220378710787

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=contract_dwg_cat

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=contract_dwg_cat

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=contract_dwg_cat

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=contract_dwg

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=contract_dwg

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=contract_dwg_cat

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=cir_users

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=cir_users

View File

@@ -0,0 +1,2 @@
TYPE=TRIGGERNAME
trigger_table=correspondences

Some files were not shown because too many files have changed in this diff Show More