﻿CREATE TABLE `resource_info` (
  `resource_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '자산 고유 ID (PK)',
  `category_id` TINYINT(3) UNSIGNED NOT NULL COMMENT '자산 카테고리 ID (FK)',
  `resource_code` VARCHAR(100) DEFAULT NULL COMMENT '관리 코드 (자산 번호 등)',
  `manufacturer` VARCHAR(100) DEFAULT NULL COMMENT '제조사',
  `resource_name` VARCHAR(100) NOT NULL COMMENT '제품명 또는 모델명',
  `serial_num` VARCHAR(200) DEFAULT NULL COMMENT '시리얼 번호 (UNIQUE)',
  `spec_value` DECIMAL(10, 2) DEFAULT NULL COMMENT '주요 사양 값 (숫자)',
  `spec_unit` TINYINT(3) UNSIGNED DEFAULT NULL COMMENT '사양 단위 ID',
  `user_id` BIGINT(20) DEFAULT NULL COMMENT '현재 할당된 사용자 ID (FK, user_info.user_id)',
  `comments` VARCHAR(200) DEFAULT NULL COMMENT '비고 또는 추가 설명',
  `purchase_date` DATE DEFAULT NULL COMMENT '구매 일자',
  `is_locked` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '동기화 대상 제외용 잠금(0:해제, 1:잠금)',
  `register_date` DATETIME NOT NULL DEFAULT current_timestamp() COMMENT '시스템 최초 등록 일시',
  `update_date` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '최종 정보 수정 일시',
  PRIMARY KEY (resource_id)
)
ENGINE = INNODB,
AUTO_INCREMENT = 503,
AVG_ROW_LENGTH = 164,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_general_ci,
COMMENT = '개별 자산 정보',
ROW_FORMAT = DYNAMIC;

ALTER TABLE `resource_info` 
  ADD UNIQUE INDEX uix_serial_num(serial_num) COMMENT '시리얼 번호는 고유해야 함 (NULL 제외)';

ALTER TABLE `resource_info` 
  ADD CONSTRAINT `fk_resource_category` FOREIGN KEY (category_id)
    REFERENCES resource_category(category_id) ON DELETE NO ACTION ON UPDATE CASCADE;

ALTER TABLE `resource_info` 
  ADD CONSTRAINT `fk_resource_user` FOREIGN KEY (user_id)
    REFERENCES user_info(user_id) ON DELETE SET NULL ON UPDATE CASCADE;