Files
sam-docs/backup/samdb_items_files_backup_20260317_171130.sql

259 lines
829 KiB
MySQL
Raw Normal View History

mysqldump: [Warning] Using a password on the command line interface can be insecure.
-- MySQL dump 10.13 Distrib 8.0.45, for Linux (x86_64)
--
-- Host: localhost Database: samdb
-- ------------------------------------------------------
-- Server version 8.0.45
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `items`
--
DROP TABLE IF EXISTS `items`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `items` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`tenant_id` bigint unsigned NOT NULL COMMENT '테넌트 ID',
`item_type` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'FG, PT, SM, RM, CS',
`code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '품목코드',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '품목명',
`unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '단위',
`category_id` bigint unsigned DEFAULT NULL COMMENT '카테고리 ID',
`process_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '공정유형: screen, bending, electric, steel, assembly',
`item_category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '품목분류: 원단, 패널, 도장, 가이드레일, 모터 등',
`bom` json DEFAULT NULL COMMENT '[{child_item_id, quantity}, ...]',
`attributes` json DEFAULT NULL COMMENT '동적 필드 값',
`attributes_archive` json DEFAULT NULL COMMENT '속성 아카이브',
`options` json DEFAULT NULL COMMENT '추가 옵션',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '설명',
`is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '활성 여부',
`created_by` bigint unsigned DEFAULT NULL COMMENT '생성자 ID',
`updated_by` bigint unsigned DEFAULT NULL COMMENT '수정자 ID',
`deleted_by` bigint unsigned DEFAULT NULL COMMENT '삭제자 ID',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_items_tenant_code` (`tenant_id`,`code`,`deleted_at`),
KEY `idx_items_tenant_type` (`tenant_id`,`item_type`),
KEY `idx_items_tenant_code` (`tenant_id`,`code`),
KEY `idx_items_tenant_category` (`tenant_id`,`category_id`),
KEY `idx_items_process_type` (`process_type`),
KEY `idx_items_item_category` (`item_category`),
FULLTEXT KEY `ft_items_name_code` (`name`,`code`)
) ENGINE=InnoDB AUTO_INCREMENT=15968 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `items`
--
LOCK TABLES `items` WRITE;
/*!40000 ALTER TABLE `items` DISABLE KEYS */;
INSERT INTO `items` VALUES (10581,1,'RM','RM-S001','강판 1.2T','KG',NULL,NULL,NULL,NULL,'{\"thickness\": 1.2, \"sales_price\": 3500, \"item_category\": null, \"purchase_price\": 2450}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10582,1,'RM','RM-S002','강판 1.6T','KG',NULL,NULL,NULL,NULL,'{\"thickness\": 1.6, \"sales_price\": 3800, \"item_category\": null, \"purchase_price\": 2660}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10583,1,'RM','RM-S003','강판 2.0T','KG',NULL,NULL,NULL,NULL,'{\"thickness\": 2, \"sales_price\": 4200, \"item_category\": null, \"purchase_price\": 2940}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10584,1,'RM','RM-S004','강판 2.3T','KG',NULL,NULL,NULL,NULL,'{\"thickness\": 2.3, \"sales_price\": 4500, \"item_category\": null, \"purchase_price\": 3150}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10585,1,'RM','RM-A001','알루미늄 프로파일','M',NULL,NULL,NULL,NULL,'{\"sales_price\": 15000, \"item_category\": null, \"purchase_price\": 10500}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10586,1,'RM','RM-A002','알루미늄 판재 2.0T','KG',NULL,NULL,NULL,NULL,'{\"thickness\": 2, \"sales_price\": 8500, \"item_category\": null, \"purchase_price\": 5950}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10587,1,'RM','RM-P001','파우더 도료 (흰색)','KG',NULL,NULL,NULL,NULL,'{\"sales_price\": 12000, \"item_category\": null, \"purchase_price\": 8400}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10588,1,'RM','RM-P002','파우더 도료 (검정)','KG',NULL,NULL,NULL,NULL,'{\"sales_price\": 12000, \"item_category\": null, \"purchase_price\": 8400}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10589,1,'RM','RM-P003','파우더 도료 (회색)','KG',NULL,NULL,NULL,NULL,'{\"sales_price\": 12000, \"item_category\": null, \"purchase_price\": 8400}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10590,1,'RM','RM-F001','방화원단 A급','M2',NULL,NULL,NULL,NULL,'{\"sales_price\": 28000, \"item_category\": null, \"purchase_price\": 19600}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10591,1,'RM','RM-F002','방화원단 B급','M2',NULL,NULL,NULL,NULL,'{\"sales_price\": 22000, \"item_category\": null, \"purchase_price\": 15400}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10592,1,'RM','RM-R001','고무 패킹 3mm','M',NULL,NULL,NULL,NULL,'{\"sales_price\": 3500, \"item_category\": null, \"purchase_price\": 2450}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10593,1,'RM','RM-R002','고무 패킹 5mm','M',NULL,NULL,NULL,NULL,'{\"sales_price\": 4200, \"item_category\": null, \"purchase_price\": 2940}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10594,1,'RM','RM-W001','목재 (집성목)','M',NULL,NULL,NULL,NULL,'{\"sales_price\": 25000, \"item_category\": null, \"purchase_price\": 17500}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10595,1,'RM','RM-G001','유리섬유','KG',NULL,NULL,NULL,NULL,'{\"sales_price\": 15000, \"item_category\": null, \"purchase_price\": 10500}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10596,1,'RM','RM-I001','단열재 50mm','M2',NULL,NULL,NULL,NULL,'{\"sales_price\": 12000, \"item_category\": null, \"purchase_price\": 8400}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-30 11:48:01','2025-12-30 11:48:01',NULL),(10597,1,'RM','RM-I002','단열재 100mm','M2',NULL,NULL,NULL,NULL,'{\"sales_price\": 18000, \"item_category\": null, \"purchase_price\": 12600}',NULL,NULL,'원자재',1,NULL,NULL,NULL,'2025-12-
/*!40000 ALTER TABLE `items` ENABLE KEYS */;
UNLOCK TABLES;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_items_ai` AFTER INSERT ON `items` FOR EACH ROW BEGIN
IF @disable_audit_trigger IS NULL OR @disable_audit_trigger != 1 THEN
INSERT INTO trigger_audit_logs (table_name, row_id, dml_type, old_values, new_values, changed_columns, tenant_id, actor_id, session_info, operation_id, db_user, created_at)
VALUES ('items', NEW.`id`, 'INSERT', NULL, JSON_OBJECT('id', NEW.`id`, 'tenant_id', NEW.`tenant_id`, 'item_type', NEW.`item_type`, 'code', NEW.`code`, 'name', NEW.`name`, 'unit', NEW.`unit`, 'category_id', NEW.`category_id`, 'process_type', NEW.`process_type`, 'item_category', NEW.`item_category`, 'bom', NEW.`bom`, 'attributes', NEW.`attributes`, 'attributes_archive', NEW.`attributes_archive`, 'options', NEW.`options`, 'description', NEW.`description`, 'is_active', NEW.`is_active`, 'created_by', NEW.`created_by`, 'updated_by', NEW.`updated_by`, 'deleted_by', NEW.`deleted_by`), NULL, NEW.`tenant_id`, @sam_actor_id, @sam_session_info, @sam_operation_id, CURRENT_USER(), NOW());
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_items_au` AFTER UPDATE ON `items` FOR EACH ROW BEGIN
IF @disable_audit_trigger IS NULL OR @disable_audit_trigger != 1 THEN
IF NOT (NEW.`id` <=> OLD.`id`) OR NOT (NEW.`tenant_id` <=> OLD.`tenant_id`) OR NOT (NEW.`item_type` <=> OLD.`item_type`) OR NOT (NEW.`code` <=> OLD.`code`) OR NOT (NEW.`name` <=> OLD.`name`) OR NOT (NEW.`unit` <=> OLD.`unit`) OR NOT (NEW.`category_id` <=> OLD.`category_id`) OR NOT (NEW.`process_type` <=> OLD.`process_type`) OR NOT (NEW.`item_category` <=> OLD.`item_category`) OR NOT (NEW.`bom` <=> OLD.`bom`) OR NOT (NEW.`attributes` <=> OLD.`attributes`) OR NOT (NEW.`attributes_archive` <=> OLD.`attributes_archive`) OR NOT (NEW.`options` <=> OLD.`options`) OR NOT (NEW.`description` <=> OLD.`description`) OR NOT (NEW.`is_active` <=> OLD.`is_active`) OR NOT (NEW.`created_by` <=> OLD.`created_by`) OR NOT (NEW.`updated_by` <=> OLD.`updated_by`) OR NOT (NEW.`deleted_by` <=> OLD.`deleted_by`) THEN
INSERT INTO trigger_audit_logs (table_name, row_id, dml_type, old_values, new_values, changed_columns, tenant_id, actor_id, session_info, operation_id, db_user, created_at)
VALUES ('items', NEW.`id`, 'UPDATE', JSON_OBJECT('id', OLD.`id`, 'tenant_id', OLD.`tenant_id`, 'item_type', OLD.`item_type`, 'code', OLD.`code`, 'name', OLD.`name`, 'unit', OLD.`unit`, 'category_id', OLD.`category_id`, 'process_type', OLD.`process_type`, 'item_category', OLD.`item_category`, 'bom', OLD.`bom`, 'attributes', OLD.`attributes`, 'attributes_archive', OLD.`attributes_archive`, 'options', OLD.`options`, 'description', OLD.`description`, 'is_active', OLD.`is_active`, 'created_by', OLD.`created_by`, 'updated_by', OLD.`updated_by`, 'deleted_by', OLD.`deleted_by`), JSON_OBJECT('id', NEW.`id`, 'tenant_id', NEW.`tenant_id`, 'item_type', NEW.`item_type`, 'code', NEW.`code`, 'name', NEW.`name`, 'unit', NEW.`unit`, 'category_id', NEW.`category_id`, 'process_type', NEW.`process_type`, 'item_category', NEW.`item_category`, 'bom', NEW.`bom`, 'attributes', NEW.`attributes`, 'attributes_archive', NEW.`attributes_archive`, 'options', NEW.`options`, 'description', NEW.`description`, 'is_active', NEW.`is_active`, 'created_by', NEW.`created_by`, 'updated_by', NEW.`updated_by`, 'deleted_by', NEW.`deleted_by`), JSON_ARRAY(IF(NOT (NEW.`id` <=> OLD.`id`), 'id', NULL), IF(NOT (NEW.`tenant_id` <=> OLD.`tenant_id`), 'tenant_id', NULL), IF(NOT (NEW.`item_type` <=> OLD.`item_type`), 'item_type', NULL), IF(NOT (NEW.`code` <=> OLD.`code`), 'code', NULL), IF(NOT (NEW.`name` <=> OLD.`name`), 'name', NULL), IF(NOT (NEW.`unit` <=> OLD.`unit`), 'unit', NULL), IF(NOT (NEW.`category_id` <=> OLD.`category_id`), 'category_id', NULL), IF(NOT (NEW.`process_type` <=> OLD.`process_type`), 'process_type', NULL), IF(NOT (NEW.`item_category` <=> OLD.`item_category`), 'item_category', NULL), IF(NOT (NEW.`bom` <=> OLD.`bom`), 'bom', NULL), IF(NOT (NEW.`attributes` <=> OLD.`attributes`), 'attributes', NULL), IF(NOT (NEW.`attributes_archive` <=> OLD.`attributes_archive`), 'attributes_archive', NULL), IF(NOT (NEW.`options` <=> OLD.`options`), 'options', NULL), IF(NOT (NEW.`description` <=> OLD.`description`), 'description', NULL), IF(NOT (NEW.`is_active` <=> OLD.`is_active`), 'is_active', NULL), IF(NOT (NEW.`created_by` <=> OLD.`created_by`), 'created_by', NULL), IF(NOT (NEW.`updated_by` <=> OLD.`updated_by`), 'updated_by', NULL), IF(NOT (NEW.`deleted_by` <=> OLD.`deleted_by`), 'deleted_by', NULL)), NEW.`tenant_id`, @sam_actor_id, @sam_session_info, @sam_operation_id, CURRENT_USER(), NOW());
END IF;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_items_ad` AFTER DELETE ON `items` FOR EACH ROW BEGIN
IF @disable_audit_trigger IS NULL OR @disable_audit_trigger != 1 THEN
INSERT INTO trigger_audit_logs (table_name, row_id, dml_type, old_values, new_values, changed_columns, tenant_id, actor_id, session_info, operation_id, db_user, created_at)
VALUES ('items', OLD.`id`, 'DELETE', JSON_OBJECT('id', OLD.`id`, 'tenant_id', OLD.`tenant_id`, 'item_type', OLD.`item_type`, 'code', OLD.`code`, 'name', OLD.`name`, 'unit', OLD.`unit`, 'category_id', OLD.`category_id`, 'process_type', OLD.`process_type`, 'item_category', OLD.`item_category`, 'bom', OLD.`bom`, 'attributes', OLD.`attributes`, 'attributes_archive', OLD.`attributes_archive`, 'options', OLD.`options`, 'description', OLD.`description`, 'is_active', OLD.`is_active`, 'created_by', OLD.`created_by`, 'updated_by', OLD.`updated_by`, 'deleted_by', OLD.`deleted_by`), NULL, NULL, OLD.`tenant_id`, @sam_actor_id, @sam_session_info, @sam_operation_id, CURRENT_USER(), NOW());
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `files`
--
DROP TABLE IF EXISTS `files`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `files` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`tenant_id` bigint unsigned NOT NULL COMMENT '멀티테넌시',
`folder_id` bigint unsigned DEFAULT NULL COMMENT 'folders 테이블 FK',
`is_temp` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'temp 폴더 여부',
`file_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '저장경로',
`display_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '사용자가 보는 이름',
`stored_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '실제 저장 이름 (64bit 난수)',
`original_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`file_name_old` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`file_size` int DEFAULT NULL,
`mime_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`file_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '파일 형식 (image, document, excel, archive 등)',
`gcs_object_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'GCS 객체 경로',
`gcs_uri` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'gs://bucket/object URI',
`field_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '비즈니스 용도 구분 (drawing, certificate, specification 등)',
`document_id` bigint unsigned DEFAULT NULL COMMENT '문서 ID',
`document_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '문서 타입',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`fileable_id` bigint unsigned DEFAULT NULL,
`fileable_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`uploaded_by` bigint unsigned DEFAULT NULL COMMENT '업로더 사용자 ID',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`deleted_by` bigint unsigned DEFAULT NULL COMMENT '삭제자 user_id',
`created_by` bigint unsigned DEFAULT NULL COMMENT '생성자 user_id',
`updated_by` bigint unsigned DEFAULT NULL COMMENT '수정자 user_id',
PRIMARY KEY (`id`),
KEY `idx_tenant_folder` (`tenant_id`,`folder_id`),
KEY `files_is_temp_index` (`is_temp`),
KEY `files_document_id_index` (`document_id`),
KEY `files_created_at_index` (`created_at`),
KEY `files_stored_name_index` (`stored_name`),
KEY `idx_files_document_field_key` (`document_type`,`document_id`,`field_key`)
) ENGINE=InnoDB AUTO_INCREMENT=579 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `files`
--
LOCK TABLES `files` WRITE;
/*!40000 ALTER TABLE `files` DISABLE KEYS */;
INSERT INTO `files` VALUES (27,287,NULL,0,'287/items/2025/12/ed0d10458a4e2528.pdf','첨부파일.pdf','ed0d10458a4e2528.pdf',NULL,NULL,NULL,240656,'application/pdf','document',NULL,NULL,'specification_file',364,'1',NULL,NULL,NULL,33,'2025-12-15 12:40:56','2025-12-15 12:40:56',NULL,NULL,33,NULL),(33,287,NULL,0,'287/items/2025/12/e1bde146382a4d49.png','다운로드.png','e1bde146382a4d49.png',NULL,NULL,NULL,180509,'image/png','image',NULL,NULL,'bending_diagram',4,'1',NULL,NULL,NULL,33,'2025-12-16 00:58:29','2025-12-16 00:58:29',NULL,NULL,33,NULL),(35,287,NULL,0,'287/items/2025/12/24b7f3e858592a71.pdf','230711_자리배치표.pdf','24b7f3e858592a71.pdf',NULL,NULL,NULL,71004,'application/pdf','document',NULL,NULL,'certification_file',364,'1',NULL,NULL,NULL,33,'2025-12-16 07:36:38','2025-12-16 07:36:38',NULL,NULL,33,NULL),(37,287,NULL,0,'287/items/2025/12/a9e215769c847552.png','bending_diagram_1766119753655.png','a9e215769c847552.png',NULL,NULL,NULL,9556,'image/png','image',NULL,NULL,'bending_diagram',3,'1',NULL,NULL,NULL,33,'2025-12-19 04:49:15','2025-12-19 04:49:15',NULL,NULL,33,NULL),(38,1,NULL,0,'1/posts/2025/12/d89dc113-eebb-46a8-9d47-9c14424eaace.jpg','라이언.jpg','d89dc113-eebb-46a8-9d47-9c14424eaace.jpg','라이언.jpg','라이언.jpg',NULL,130270,'image/jpeg','image',NULL,NULL,NULL,1,'post',NULL,NULL,NULL,1,'2025-12-27 07:31:17','2025-12-27 07:31:17',NULL,NULL,1,NULL),(43,287,NULL,0,'287/items/2025/12/12403447fab9dddd.png','제이지.png','12403447fab9dddd.png',NULL,NULL,NULL,6270,'image/png','image',NULL,NULL,'bending_diagram',363,'1',NULL,NULL,NULL,33,'2025-12-29 10:45:29','2025-12-29 10:45:29',NULL,NULL,33,NULL),(72,287,NULL,0,'287/items/2026/01/b1b59e19f4a9a0de.pdf','b66de54d-13aa-4f8f-9412-3ccea58f934c_26-01-22(목)_SAM_프로젝트_정기회의_.pdf','b1b59e19f4a9a0de.pdf',NULL,NULL,NULL,379651,'application/pdf','document',NULL,NULL,'specification_file',2481,'1',NULL,NULL,NULL,33,'2026-01-27 10:00:01','2026-01-27 10:00:01',NULL,NULL,33,NULL),(73,287,NULL,0,'287/items/2026/01/0664a28c23dcca48.png','bending_diagram_1769516412172.png','0664a28c23dcca48.png',NULL,NULL,NULL,9434,'image/png','image',NULL,NULL,'bending_diagram',10681,'1',NULL,NULL,NULL,33,'2026-01-27 12:21:27','2026-01-27 12:21:27',NULL,NULL,33,NULL),(74,287,NULL,0,'287/items/2026/01/1e5532dcfc56635b.png','bending_diagram_1769516524517.png','1e5532dcfc56635b.png',NULL,NULL,NULL,10345,'image/png','image',NULL,NULL,'bending_diagram',10682,'1',NULL,NULL,NULL,33,'2026-01-27 12:22:38','2026-01-27 12:22:38',NULL,NULL,33,NULL),(75,287,NULL,1,'287/temp/2026/02/643afec6bee044e15280161ac9c1dbb2cb2eb88d7bc83b4e81a93cf53290706d.jpeg','photo-1740380871934-774af43b4e2f.jpeg','643afec6bee044e15280161ac9c1dbb2cb2eb88d7bc83b4e81a93cf53290706d.jpeg',NULL,NULL,NULL,615189,'image/jpeg','image',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,33,'2026-02-06 16:52:16','2026-02-06 16:52:16',NULL,NULL,33,NULL),(76,287,NULL,1,'287/temp/2026/02/d827cf2f4ee95dd17150565d7c4bb4042ba4483a0fb7571bdfbb91f6d654ad3d.pdf','수입검사 성적서_20260206.pdf','d827cf2f4ee95dd17150565d7c4bb4042ba4483a0fb7571bdfbb91f6d654ad3d.pdf',NULL,NULL,NULL,302692,'application/pdf','document',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,33,'2026-02-06 18:50:09','2026-02-06 18:50:09',NULL,NULL,33,NULL),(86,287,NULL,1,'287/temp/2026/03/bf2d6cd8b91b252be8fb56cccf0269e8e424c8902d3451517d84b632e5696455.jpg','KakaoTalk_20260309_130911023.jpg','bf2d6cd8b91b252be8fb56cccf0269e8e424c8902d3451517d84b632e5696455.jpg',NULL,NULL,NULL,112709,'image/jpeg','image',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,33,'2026-03-10 07:59:39','2026-03-10 07:59:39',NULL,NULL,33,NULL),(87,287,NULL,1,'287/temp/2026/03/ee6402fb3cf82365ffb1d9a42bedf3bb8bf3cf1a966e854b7070d65127dbdea5.jpg','KakaoTalk_20260309_130911023.jpg','ee6402fb3cf82365ffb1d9a42bedf3bb8bf3cf1a966e854b7070d65127dbdea5.jpg',NULL,NULL,NULL,112709,'image/jpeg','image',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,33,'2026-03
/*!40000 ALTER TABLE `files` ENABLE KEYS */;
UNLOCK TABLES;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_files_ai` AFTER INSERT ON `files` FOR EACH ROW BEGIN
IF @disable_audit_trigger IS NULL OR @disable_audit_trigger != 1 THEN
INSERT INTO trigger_audit_logs (table_name, row_id, dml_type, old_values, new_values, changed_columns, tenant_id, actor_id, session_info, operation_id, db_user, created_at)
VALUES ('files', NEW.`id`, 'INSERT', NULL, JSON_OBJECT('id', NEW.`id`, 'tenant_id', NEW.`tenant_id`, 'folder_id', NEW.`folder_id`, 'is_temp', NEW.`is_temp`, 'file_path', NEW.`file_path`, 'display_name', NEW.`display_name`, 'stored_name', NEW.`stored_name`, 'original_name', NEW.`original_name`, 'file_name', NEW.`file_name`, 'file_name_old', NEW.`file_name_old`, 'file_size', NEW.`file_size`, 'mime_type', NEW.`mime_type`, 'file_type', NEW.`file_type`, 'field_key', NEW.`field_key`, 'document_id', NEW.`document_id`, 'document_type', NEW.`document_type`, 'description', NEW.`description`, 'fileable_id', NEW.`fileable_id`, 'fileable_type', NEW.`fileable_type`, 'uploaded_by', NEW.`uploaded_by`, 'deleted_by', NEW.`deleted_by`, 'created_by', NEW.`created_by`, 'updated_by', NEW.`updated_by`), NULL, NEW.`tenant_id`, @sam_actor_id, @sam_session_info, @sam_operation_id, CURRENT_USER(), NOW());
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_files_au` AFTER UPDATE ON `files` FOR EACH ROW BEGIN
IF @disable_audit_trigger IS NULL OR @disable_audit_trigger != 1 THEN
IF NOT (NEW.`id` <=> OLD.`id`) OR NOT (NEW.`tenant_id` <=> OLD.`tenant_id`) OR NOT (NEW.`folder_id` <=> OLD.`folder_id`) OR NOT (NEW.`is_temp` <=> OLD.`is_temp`) OR NOT (NEW.`file_path` <=> OLD.`file_path`) OR NOT (NEW.`display_name` <=> OLD.`display_name`) OR NOT (NEW.`stored_name` <=> OLD.`stored_name`) OR NOT (NEW.`original_name` <=> OLD.`original_name`) OR NOT (NEW.`file_name` <=> OLD.`file_name`) OR NOT (NEW.`file_name_old` <=> OLD.`file_name_old`) OR NOT (NEW.`file_size` <=> OLD.`file_size`) OR NOT (NEW.`mime_type` <=> OLD.`mime_type`) OR NOT (NEW.`file_type` <=> OLD.`file_type`) OR NOT (NEW.`field_key` <=> OLD.`field_key`) OR NOT (NEW.`document_id` <=> OLD.`document_id`) OR NOT (NEW.`document_type` <=> OLD.`document_type`) OR NOT (NEW.`description` <=> OLD.`description`) OR NOT (NEW.`fileable_id` <=> OLD.`fileable_id`) OR NOT (NEW.`fileable_type` <=> OLD.`fileable_type`) OR NOT (NEW.`uploaded_by` <=> OLD.`uploaded_by`) OR NOT (NEW.`deleted_by` <=> OLD.`deleted_by`) OR NOT (NEW.`created_by` <=> OLD.`created_by`) OR NOT (NEW.`updated_by` <=> OLD.`updated_by`) THEN
INSERT INTO trigger_audit_logs (table_name, row_id, dml_type, old_values, new_values, changed_columns, tenant_id, actor_id, session_info, operation_id, db_user, created_at)
VALUES ('files', NEW.`id`, 'UPDATE', JSON_OBJECT('id', OLD.`id`, 'tenant_id', OLD.`tenant_id`, 'folder_id', OLD.`folder_id`, 'is_temp', OLD.`is_temp`, 'file_path', OLD.`file_path`, 'display_name', OLD.`display_name`, 'stored_name', OLD.`stored_name`, 'original_name', OLD.`original_name`, 'file_name', OLD.`file_name`, 'file_name_old', OLD.`file_name_old`, 'file_size', OLD.`file_size`, 'mime_type', OLD.`mime_type`, 'file_type', OLD.`file_type`, 'field_key', OLD.`field_key`, 'document_id', OLD.`document_id`, 'document_type', OLD.`document_type`, 'description', OLD.`description`, 'fileable_id', OLD.`fileable_id`, 'fileable_type', OLD.`fileable_type`, 'uploaded_by', OLD.`uploaded_by`, 'deleted_by', OLD.`deleted_by`, 'created_by', OLD.`created_by`, 'updated_by', OLD.`updated_by`), JSON_OBJECT('id', NEW.`id`, 'tenant_id', NEW.`tenant_id`, 'folder_id', NEW.`folder_id`, 'is_temp', NEW.`is_temp`, 'file_path', NEW.`file_path`, 'display_name', NEW.`display_name`, 'stored_name', NEW.`stored_name`, 'original_name', NEW.`original_name`, 'file_name', NEW.`file_name`, 'file_name_old', NEW.`file_name_old`, 'file_size', NEW.`file_size`, 'mime_type', NEW.`mime_type`, 'file_type', NEW.`file_type`, 'field_key', NEW.`field_key`, 'document_id', NEW.`document_id`, 'document_type', NEW.`document_type`, 'description', NEW.`description`, 'fileable_id', NEW.`fileable_id`, 'fileable_type', NEW.`fileable_type`, 'uploaded_by', NEW.`uploaded_by`, 'deleted_by', NEW.`deleted_by`, 'created_by', NEW.`created_by`, 'updated_by', NEW.`updated_by`), JSON_ARRAY(IF(NOT (NEW.`id` <=> OLD.`id`), 'id', NULL), IF(NOT (NEW.`tenant_id` <=> OLD.`tenant_id`), 'tenant_id', NULL), IF(NOT (NEW.`folder_id` <=> OLD.`folder_id`), 'folder_id', NULL), IF(NOT (NEW.`is_temp` <=> OLD.`is_temp`), 'is_temp', NULL), IF(NOT (NEW.`file_path` <=> OLD.`file_path`), 'file_path', NULL), IF(NOT (NEW.`display_name` <=> OLD.`display_name`), 'display_name', NULL), IF(NOT (NEW.`stored_name` <=> OLD.`stored_name`), 'stored_name', NULL), IF(NOT (NEW.`original_name` <=> OLD.`original_name`), 'original_name', NULL), IF(NOT (NEW.`file_name` <=> OLD.`file_name`), 'file_name', NULL), IF(NOT (NEW.`file_name_old` <=> OLD.`file_name_old`), 'file_name_old', NULL), IF(NOT (NEW.`file_size` <=> OLD.`file_size`), 'file_size', NULL), IF(NOT (NEW.`mime_type` <=> OLD.`mime_type`), 'mime_type', NULL), IF(NOT (NEW.`file_type` <=> OLD.`file_type`), 'file_type', NULL), IF(NOT (NEW.`field_key` <=> OLD.`field_key`), 'field_key', NULL), IF(NOT (NEW.`document_id` <=> OLD.`document_id`), 'document_id', NULL), IF(NOT (NEW.`document_type` <=> OLD.`document_type`), 'document_type', NULL), IF(NOT (NEW.`description` <=> OLD.`description`), 'description', NULL), IF(NOT (NEW.`fileable_id` <=> OLD.`fileable_id`), 'fileable_id', NULL), IF(NOT (NEW.`fileable_type` <=> OLD.`fileable_type`), 'fileable_type', NULL), IF(NOT (NEW.`uploaded_by` <=> OLD.`uploaded_by`), 'uploaded_by', NULL), IF(NOT (NEW.`deleted_by` <=> OLD.`deleted_by`), 'deleted_by', NULL), IF(NOT (NEW.`created_by` <=> OLD.`created_by`), 'created_by', NULL), IF(NOT (NEW.`updated_by` <=> OLD.`updated_by`), 'updated_by', NULL)), NEW.`tenant_id`, @sam_actor_id, @sam_session_info, @sam_operation_id, CURRENT_USER(), NOW());
END IF;
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8mb4 */ ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_files_ad` AFTER DELETE ON `files` FOR EACH ROW BEGIN
IF @disable_audit_trigger IS NULL OR @disable_audit_trigger != 1 THEN
INSERT INTO trigger_audit_logs (table_name, row_id, dml_type, old_values, new_values, changed_columns, tenant_id, actor_id, session_info, operation_id, db_user, created_at)
VALUES ('files', OLD.`id`, 'DELETE', JSON_OBJECT('id', OLD.`id`, 'tenant_id', OLD.`tenant_id`, 'folder_id', OLD.`folder_id`, 'is_temp', OLD.`is_temp`, 'file_path', OLD.`file_path`, 'display_name', OLD.`display_name`, 'stored_name', OLD.`stored_name`, 'original_name', OLD.`original_name`, 'file_name', OLD.`file_name`, 'file_name_old', OLD.`file_name_old`, 'file_size', OLD.`file_size`, 'mime_type', OLD.`mime_type`, 'file_type', OLD.`file_type`, 'field_key', OLD.`field_key`, 'document_id', OLD.`document_id`, 'document_type', OLD.`document_type`, 'description', OLD.`description`, 'fileable_id', OLD.`fileable_id`, 'fileable_type', OLD.`fileable_type`, 'uploaded_by', OLD.`uploaded_by`, 'deleted_by', OLD.`deleted_by`, 'created_by', OLD.`created_by`, 'updated_by', OLD.`updated_by`), NULL, NULL, OLD.`tenant_id`, @sam_actor_id, @sam_session_info, @sam_operation_id, CURRENT_USER(), NOW());
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2026-03-17 17:11:30