Files
2026-06-11 18:47:38 +09:00

547 lines
46 KiB
SQL

-- 1. 견적서 마스터 테이블 (기존 유지)
-- [최종안] 상담가, 수수료, 공통 관리 필드, 여분 필드 모두 포함
CREATE TABLE IF NOT EXISTS `estimate`
(
`id` int NOT NULL AUTO_INCREMENT,
`wr_id` int DEFAULT NULL COMMENT '원본 게시물 ID',
`status` VARCHAR(20) NOT NULL DEFAULT 'requesting' COMMENT '견적 상태',
`bidding_deadline` DATETIME DEFAULT NULL COMMENT '입찰 마감일시',
`expert_id` VARCHAR(20) DEFAULT NULL COMMENT '배정된 전문가 ID',
`expert_visit_status` VARCHAR(20) DEFAULT NULL COMMENT '전문가 방문 상태',
`commission_fee` decimal(10, 2) DEFAULT '0.00' COMMENT '시스템 이용료(수수료)',
`company_name` varchar(100) DEFAULT NULL COMMENT '업체명',
`site_name` varchar(100) DEFAULT NULL COMMENT '사이트명',
`estimate_date` varchar(30) DEFAULT NULL COMMENT '견적일',
`house_type` varchar(50) DEFAULT NULL COMMENT '집의 유형',
`house_size` varchar(50) DEFAULT NULL COMMENT '평형',
`material` varchar(50) DEFAULT NULL COMMENT '창 재질',
`color` varchar(20) DEFAULT NULL COMMENT '창호 색상',
`glass_thickness` varchar(20) DEFAULT NULL COMMENT '유리두께',
`install` varchar(5) DEFAULT NULL COMMENT '시공여부',
`zip_code` varchar(10) DEFAULT NULL COMMENT '우편번호',
`address1` varchar(255) DEFAULT NULL COMMENT '기본주소',
`address2` varchar(255) DEFAULT NULL COMMENT '상세주소',
`address3` varchar(255) DEFAULT NULL COMMENT '참고항목',
`temp_1` varchar(255) DEFAULT NULL COMMENT '전문가방문요청여부(Y/N)',
`temp_2` varchar(255) DEFAULT NULL COMMENT '전문가방문상태(requested/scheduled/completed/cancelled)',
`temp_3` varchar(255) DEFAULT NULL COMMENT '전문가방문비용',
`temp_4` varchar(255) DEFAULT NULL COMMENT '전문가방문일정(YYYY-MM-DD HH:MM)',
`temp_5` varchar(255) DEFAULT NULL COMMENT '전문가방문메모',
`extra_1` varchar(255) DEFAULT NULL COMMENT '고객연락처(전문가방문용)',
`extra_2` varchar(255) DEFAULT NULL COMMENT '결제상태(pending/paid/cancelled)',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가요청사항',
`extra_4` varchar(255) DEFAULT NULL COMMENT '관리자메모',
`extra_5` varchar(255) DEFAULT NULL COMMENT '예비필드',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
KEY `wr_id` (`wr_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='견적서 마스터 정보';
-- 2. 견적서 상세 항목 테이블 (브랜드 필드 강화)
-- [최종안] order.php의 템플릿 필드와 일치하도록 컬럼 및 코멘트 수정
CREATE TABLE IF NOT EXISTS `estimate_item`
(
`id` int NOT NULL AUTO_INCREMENT,
`estimate_id` int DEFAULT NULL COMMENT '견적서 ID (estimate.id)',
`dealer_id` VARCHAR(255) NULL DEFAULT NULL COMMENT '[대리점] 제안 회원 ID',
`no` int DEFAULT NULL COMMENT '항목 번호',
`location` varchar(50) DEFAULT NULL COMMENT '창 종류 (거실, 안방 등)',
`spec_width` varchar(20) DEFAULT NULL COMMENT '기존창 규격 (가로)',
`spec_height` varchar(20) DEFAULT NULL COMMENT '기존창 규격 (세로)',
`window_main_type` VARCHAR(50) DEFAULT NULL COMMENT '창호 형태 (1차: 일반창/프로젝트창)',
`windowType` varchar(20) DEFAULT NULL COMMENT '창호 형태 (2차: 단창/이중창)',
`windowRatio` varchar(20) DEFAULT NULL COMMENT '창 비율 (2W, 4W 등)',
`glass_color` varchar(50) DEFAULT NULL COMMENT '유리사양 (색상)',
`handle` varchar(20) DEFAULT NULL COMMENT '시정장치 (핸들)',
`replacePart` varchar(20) DEFAULT NULL COMMENT '교체 위치 (외부/내부)',
`extra_1` varchar(255) DEFAULT NULL COMMENT '비고 (기타 특이사항)',
-- ----------------------------------------------------
-- 아래는 대리점이 입력하는 필드입니다.
-- ----------------------------------------------------
`product` varchar(50) DEFAULT NULL COMMENT '[대리점] 품명',
`qty` int DEFAULT NULL COMMENT '[대리점] 수량',
`price` int DEFAULT NULL COMMENT '[대리점] 단가',
`amount` int DEFAULT NULL COMMENT '[대리점] 금액',
`brand` varchar(30) DEFAULT NULL COMMENT '[대리점] 창호브랜드명',
-- ----------------------------------------------------
-- 시스템 관리용 필드
-- ----------------------------------------------------
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부 (1:사용, 0:미사용)',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부 (1:삭제, 0:정상)',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
-- ----------------------------------------------------
-- 사용하지 않지만 데이터 보존을 위해 남겨둔 필드
-- ----------------------------------------------------
`color` varchar(20) DEFAULT NULL COMMENT '[구] 색상',
`glass_thickness` varchar(20) DEFAULT NULL COMMENT '[구] 유리두께',
`screen` varchar(10) DEFAULT NULL COMMENT '[구] 방충망',
`door_dir` varchar(20) DEFAULT NULL COMMENT '[구] 문방향',
`install` varchar(5) DEFAULT NULL COMMENT '[구] 시공여부',
`temp_1` varchar(255) DEFAULT NULL COMMENT '임시필드1',
`temp_2` varchar(255) DEFAULT NULL COMMENT '임시필드2',
`temp_3` varchar(255) DEFAULT NULL COMMENT '임시필드3',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
PRIMARY KEY (`id`),
KEY `estimate_id` (`estimate_id`),
CONSTRAINT `fk_item_to_estimate` FOREIGN KEY (`estimate_id`) REFERENCES `estimate` (`id`) ON DELETE CASCADE
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='견적서 상세 항목';
-- 3. 견적 및 항목 변경 이력 테이블 (기존 유지)
-- [install_backup.sql 내용 + 공통 관리 필드, 여분 필드 추가]
CREATE TABLE IF NOT EXISTS `estimate_history`
(
`id` int NOT NULL AUTO_INCREMENT COMMENT '이력 고유 ID',
`estimate_id` int NOT NULL COMMENT '견적서 ID',
`item_id` int DEFAULT NULL COMMENT '견적 항목 ID (항목 변경 시)',
`action` varchar(20) NOT NULL COMMENT '작업 종류 (create, update, delete, status_change)',
`change_details` longtext COMMENT '변경된 데이터 (JSON 형식)',
`changed_by` varchar(20) NOT NULL COMMENT '변경자 ID',
`changed_at` datetime NOT NULL COMMENT '변경일시',
`temp_1` varchar(255) DEFAULT NULL COMMENT '임시필드1',
`temp_2` varchar(255) DEFAULT NULL COMMENT '임시필드2',
`temp_3` varchar(255) DEFAULT NULL COMMENT '임시필드3',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
KEY `estimate_id` (`estimate_id`),
KEY `item_id` (`item_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='견적 및 항목 변경 이력';
-- 4. 대리점 입찰 정보 테이블 (기존 유지)
-- [wr_id 컬럼 추가 + 공통 관리 필드, 여분 필드 추가]
CREATE TABLE IF NOT EXISTS `estimate_bidding`
(
`id` int NOT NULL AUTO_INCREMENT,
`estimate_id` int NOT NULL COMMENT '견적서 ID',
`wr_id` int DEFAULT NULL COMMENT '게시판 답변글 ID',
`dealer_id` varchar(20) NOT NULL COMMENT '입찰한 대리점 회원 ID',
`bid_amount` int NOT NULL COMMENT '대리점 제시 금액',
`bid_message` text COMMENT '대리점 메모',
`status` varchar(20) NOT NULL DEFAULT 'bidding' COMMENT '입찰 상태 (bidding, selected, unselected)',
`temp_1` varchar(255) DEFAULT NULL COMMENT '임시필드1',
`temp_2` varchar(255) DEFAULT NULL COMMENT '임시필드2',
`temp_3` varchar(255) DEFAULT NULL COMMENT '임시필드3',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
KEY `estimate_id` (`estimate_id`),
KEY `dealer_id` (`dealer_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='대리점 입찰 정보';
-- 5. ⭐ '전문가 방문 요청'으로 변경: 전문가 방문 예약 테이블
CREATE TABLE IF NOT EXISTS `expert_visit_reservations`
(
`id` int NOT NULL AUTO_INCREMENT COMMENT '예약 고유번호',
`wr_id` int DEFAULT NULL COMMENT '연관 게시물 ID',
`customer_id` varchar(20) DEFAULT NULL COMMENT '고객 회원 ID',
`customer_name` varchar(50) DEFAULT NULL COMMENT '고객명',
`customer_phone` varchar(20) DEFAULT NULL COMMENT '고객 연락처',
`customer_email` varchar(100) DEFAULT NULL COMMENT '고객 이메일',
`visit_date` DATE DEFAULT NULL COMMENT '방문 날짜',
`visit_time` TIME DEFAULT NULL COMMENT '방문 시간',
`expert_id` varchar(20) DEFAULT NULL COMMENT '배정된 전문가 ID',
`status` varchar(20) NOT NULL DEFAULT 'payment_pending' COMMENT '예약 상태 (payment_pending/reserved/completed/cancelled)',
`payment_amount` int DEFAULT '0' COMMENT '방문 비용',
`payment_status` varchar(20) DEFAULT 'pending' COMMENT '결제 상태 (pending/paid/cancelled)',
`request_memo` text DEFAULT NULL COMMENT '고객 요청사항',
`admin_memo` text DEFAULT NULL COMMENT '관리자 메모',
`temp_1` varchar(255) DEFAULT NULL COMMENT '방문시간구간(예:09:00-11:00)',
`temp_2` varchar(255) DEFAULT NULL COMMENT '방문종류(현장방문/전화상담)',
`temp_3` varchar(255) DEFAULT NULL COMMENT '방문지역',
`temp_4` varchar(255) DEFAULT NULL COMMENT '방문예상시간(분)',
`temp_5` varchar(255) DEFAULT NULL COMMENT '추가정보',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
KEY `customer_id` (`customer_id`),
KEY `visit_date` (`visit_date`),
KEY `visit_time` (`visit_time`),
KEY `expert_id` (`expert_id`),
KEY `status` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='전문가 방문 예약 정보';
-- 6. ⭐ '전문가 방문 요청'으로 변경: 전문가 방문 가능 시간 설정 테이블
CREATE TABLE IF NOT EXISTS `expert_visit_schedules`
(
`id` int NOT NULL AUTO_INCREMENT COMMENT '일정 고유번호',
`expert_id` varchar(20) DEFAULT NULL COMMENT '전문가 ID (NULL시 전체 설정)',
`day_of_week` int DEFAULT NULL COMMENT '요일 (1:월요일~7:일요일, NULL시 특정날짜)',
`specific_date` DATE DEFAULT NULL COMMENT '특정 날짜 (요일 설정과 배타적)',
`start_time` TIME NOT NULL COMMENT '방문 시작 시간',
`end_time` TIME NOT NULL COMMENT '방문 종료 시간',
`time_slot` int NOT NULL DEFAULT '60' COMMENT '예약 단위 시간(분)',
`max_persons` int NOT NULL DEFAULT '1' COMMENT '동시간대 최대 예약 가능 인원',
`is_available` tinyint(1) NOT NULL DEFAULT '1' COMMENT '예약 가능 여부',
`temp_1` varchar(255) DEFAULT NULL COMMENT '방문종류제한',
`temp_2` varchar(255) DEFAULT NULL COMMENT '휴무사유',
`temp_3` varchar(255) DEFAULT NULL COMMENT '특별일정명',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
KEY `expert_id` (`expert_id`),
KEY `day_of_week` (`day_of_week`),
KEY `specific_date` (`specific_date`),
UNIQUE KEY `unique_schedule` (`expert_id`, `day_of_week`, `specific_date`, `start_time`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='전문가 방문 가능 시간 설정';
-- 7. ⭐ 새로 추가: 창호 브랜드 마스터 테이블
CREATE TABLE IF NOT EXISTS `order_window_brands`
(
`id` int NOT NULL AUTO_INCREMENT COMMENT '브랜드 고유번호',
`brand_name` varchar(50) NOT NULL COMMENT '브랜드명',
`brand_code` varchar(20) DEFAULT NULL COMMENT '브랜드 코드',
`manufacturer` varchar(100) DEFAULT NULL COMMENT '제조사',
`description` text DEFAULT NULL COMMENT '브랜드 설명',
`logo_url` varchar(255) DEFAULT NULL COMMENT '로고 이미지 URL',
`website_url` varchar(255) DEFAULT NULL COMMENT '홈페이지 URL',
`sort_order` int DEFAULT '0' COMMENT '정렬 순서',
`temp_1` varchar(255) DEFAULT NULL COMMENT '브랜드등급(프리미엄/일반/보급)',
`temp_2` varchar(255) DEFAULT NULL COMMENT '주력제품군',
`temp_3` varchar(255) DEFAULT NULL COMMENT '가격대',
`temp_4` varchar(255) DEFAULT NULL COMMENT 'A/S기간',
`temp_5` varchar(255) DEFAULT NULL COMMENT '보증기간',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT NULL COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
UNIQUE KEY `brand_name` (`brand_name`),
KEY `brand_code` (`brand_code`),
KEY `sort_order` (`sort_order`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='창호 브랜드 마스터';
-- 기존 테이블들 유지 (order_config, order_mail_templates, order_sms_templates)
-- 기존 테이블 활용 최소 변경 SQL
-- 기존 temp_, extra_ 컬럼을 활용하여 새 기능 구현
-- 1. 시스템 설정을 위한 간단한 테이블 (기존 테이블 없을 경우만 생성)
CREATE TABLE IF NOT EXISTS `order_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`config_key` varchar(100) NOT NULL,
`config_value` text NOT NULL,
`config_desc` varchar(255) DEFAULT NULL,
`config_type` varchar(20) DEFAULT 'text',
`temp_1` varchar(255) DEFAULT NULL COMMENT '임시필드1',
`temp_2` varchar(255) DEFAULT NULL COMMENT '임시필드2',
`temp_3` varchar(255) DEFAULT NULL COMMENT '임시필드3',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
UNIQUE KEY `config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='시스템 설정';
-- 2. 메일 템플릿 테이블 (기존 테이블 없을 경우만 생성)
CREATE TABLE IF NOT EXISTS `order_mail_templates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`template_key` varchar(100) NOT NULL,
`template_name` varchar(255) NOT NULL,
`subject` varchar(255) NOT NULL,
`content` text NOT NULL,
`variables` text DEFAULT NULL COMMENT '사용 가능한 변수들 (JSON)',
`temp_1` varchar(255) DEFAULT NULL COMMENT '발송대상그룹',
`temp_2` varchar(255) DEFAULT NULL COMMENT '발송조건',
`temp_3` varchar(255) DEFAULT NULL COMMENT '임시필드3',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
UNIQUE KEY `template_key` (`template_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='메일 템플릿';
-- 3. SMS 템플릿 테이블 (기존 테이블 없을 경우만 생성)
CREATE TABLE IF NOT EXISTS `order_sms_templates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`template_key` varchar(100) NOT NULL,
`template_name` varchar(255) NOT NULL,
`content` text NOT NULL,
`variables` text DEFAULT NULL COMMENT '사용 가능한 변수들 (JSON)',
`temp_1` varchar(255) DEFAULT NULL COMMENT '발송대상그룹',
`temp_2` varchar(255) DEFAULT NULL COMMENT '발송조건',
`temp_3` varchar(255) DEFAULT NULL COMMENT '임시필드3',
`temp_4` varchar(255) DEFAULT NULL COMMENT '임시필드4',
`temp_5` varchar(255) DEFAULT NULL COMMENT '임시필드5',
`extra_1` varchar(255) DEFAULT NULL COMMENT '추가필드1',
`extra_2` varchar(255) DEFAULT NULL COMMENT '추가필드2',
`extra_3` varchar(255) DEFAULT NULL COMMENT '추가필드3',
`extra_4` varchar(255) DEFAULT NULL COMMENT '추가필드4',
`extra_5` varchar(255) DEFAULT NULL COMMENT '추가필드5',
`is_used` tinyint(1) NOT NULL DEFAULT '1' COMMENT '사용 여부',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '삭제 여부',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
`created_by` varchar(20) DEFAULT NULL COMMENT '생성자',
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '수정일시',
`updated_by` varchar(20) DEFAULT NULL COMMENT '수정자',
PRIMARY KEY (`id`),
UNIQUE KEY `template_key` (`template_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='SMS 템플릿';
-- ⭐ 기본 설정값 (중복 방지)
INSERT IGNORE INTO `order_config` (`config_key`, `config_value`, `config_desc`, `config_type`) VALUES
('timer_enabled', '1', '24시간 타이머 활성화 여부', 'boolean'),
('timer_message_active', '견적 제안 마감까지 {time} 남았습니다.', '타이머 활성화 시 메시지', 'text'),
('timer_message_inactive', '고객 작성이 완료되었습니다. 24시간 후에 확인 바랍니다.', '타이머 비활성화 시 메시지', 'text'),
('contract_deposit_rate', '10', '계약금 비율 (%)', 'number'),
('middle_payment_rate', '40', '중도금 비율 (%)', 'number'),
('expert_visit_fee', '50000', '전문가 방문 비용', 'number'),
('expert_account_info', '국민은행 123-456-789 (주)창호전문가', '전문가 방문 계좌 정보', 'text'),
('notification_mode', 'log', '알림 발송 모드 (log/send)', 'select'),
('dealer_commission_level_5', '5', '레벨 5 대리점 수수료율 (%)', 'number'),
('dealer_commission_level_6', '11', '레벨 6 대리점 수수료율 (%)', 'number'),
('dealer_commission_level_7', '19', '레벨 7 대리점 수수료율 (%)', 'number'),
('price_increment_step', '1000', '견적서 단가 입력 증감 단위', 'number'),
('payment_account_info', '국민은행 123-456-789012 (주)창호전문', '결제 계좌 정보', 'text'),
('status_견적신청중', '수정중', '상태명: 견적신청중', 'text'),
('status_작성완료', '작성완료', '상태명: 작성완료', 'text'),
('status_계약금입금예정', '계약금입금예정', '상태명: 계약금입금예정', 'text'),
('status_계약금입금완료', '계약금입금완료', '상태명: 계약금입금완료', 'text'),
('status_중도금입금예정', '중도금입금예정', '상태명: 중도금입금예정', 'text'),
('status_중도금입금완료', '중도금입금완료', '상태명: 중도금입금완료', 'text'),
('status_잔금입금예정', '잔금입금예정', '상태명: 잔금입금예정', 'text'),
('status_잔금처리완료', '잔금처리완료', '상태명: 잔금처리완료', 'text'),
('status_시공완료', '시공완료', '상태명: 시공완료', 'text'),
('status_견적제안', '견적제안', '상태명: 견적제안', 'text'),
('status_견적채택', '견적채택', '상태명: 견적채택', 'text'),
('status_견적취소', '견적취소', '상태명: 견적취소', 'text'),
('expert_visit_default_start', '09:00', '기본 방문 시작 시간', 'time'),
('expert_visit_default_end', '18:00', '기본 방문 종료 시간', 'time'),
('expert_visit_default_slot', '60', '기본 예약 단위 시간(분)', 'number'),
('expert_visit_default_max', '2', '기본 동시간대 최대 예약 인원', 'number'),
('expert_visit_account_info', '국민은행 123-456-789 (주)창호방문', '방문비 입금 계좌', 'text'),
('reservation_status_payment_pending', '입금예정', '예약상태: 입금예정', 'text'),
('reservation_status_reserved', '예약완료', '예약상태: 예약완료', 'text'),
('reservation_status_completed', '방문완료', '예약상태: 방문완료', 'text'),
('reservation_status_cancelled', '예약취소', '예약상태: 예약취소', 'text');
-- ⭐ 기본 메일 템플릿 (중복 방지)
INSERT IGNORE INTO `order_mail_templates` (`template_key`, `template_name`, `subject`, `content`, `variables`) VALUES
('customer_request_complete', '고객 - 견적 요청 완료', '견적 요청이 완료되었습니다', '안녕하세요 {customer_name}님,<br><br>견적 요청이 성공적으로 완료되었습니다.<br>24시간 후에 견적서를 확인해주시기 바랍니다.<br><br>감사합니다.', '["customer_name"]'),
('agent_new_request', '대리점 - 새 견적 요청', '새로운 견적 요청이 등록되었습니다', '안녕하세요 {agent_name}님,<br><br>{customer_name}님이 견적을 요청했습니다.<br><br>제목: {request_title}<br>요청일: {request_date}<br><br>견적 작성 URL: {write_url}<br><br>24시간 내에 견적을 제안해주시기 바랍니다.', '["agent_name", "customer_name", "request_title", "request_date", "write_url"]'),
('customer_quote_selected', '고객 - 견적 선택 완료', '견적이 선택되었습니다', '안녕하세요 {customer_name}님,<br><br>{agent_name} 대리점의 견적이 선택되었습니다.<br><br>계약금({deposit_amount}원)을 입금해주시기 바랍니다.<br><br>계좌정보: {account_info}', '["customer_name", "agent_name", "deposit_amount", "account_info"]'),
('agent_quote_selected', '대리점 - 견적 선택됨', '견적이 선택되었습니다', '안녕하세요 {agent_name}님,<br><br>{customer_name}님이 귀하의 견적을 선택하셨습니다.<br><br>시공 일정을 관리자에게 알려주시기 바랍니다.<br><br>감사합니다.', '["agent_name", "customer_name"]'),
('expert_visit_request', '전문가 방문 요청', '전문가 방문이 요청되었습니다', '안녕하세요 {customer_name}님,<br><br>전문가 방문이 요청되었습니다.<br><br>방문 비용: {visit_fee}원<br>계좌정보: {account_info}<br><br>입금 확인 후 방문 일정을 조율하겠습니다.', '["customer_name", "visit_fee", "account_info"]'),
('bid_selected_email', '대리점 - 견적 선택 알림', '축하합니다! 견적이 선택되었습니다', '안녕하세요 {dealer_name}님,<br><br>축하합니다! 고객이 귀하의 견적을 선택하였습니다.<br><br><strong>견적 정보:</strong><br>- 견적번호: {estimate_id}<br>- 고객명: {customer_name}<br>- 견적금액: {bid_amount}원<br>- 선택일시: {selected_date}<br><br>이제 시공 일정을 조율해주시기 바랍니다.<br><br><a href="{estimate_url}">견적 상세보기</a><br><br>감사합니다.', '["dealer_name", "customer_name", "estimate_id", "bid_amount", "selected_date", "estimate_url"]'),
('schedule_reminder_email', '대리점 - 시공 일정 알림', '시공 일정 안내', '안녕하세요 {dealer_name}님,<br><br>시공 일정을 안내드립니다.<br><br><strong>시공 정보:</strong><br>- 견적번호: {estimate_id}<br>- 고객명: {customer_name}<br>- 시공예정일: {construction_date}<br>- 중도금입금예정일: {interim_payment_date}<br><br>시공 준비를 완료해주시기 바랍니다.<br><br>감사합니다.', '["dealer_name", "customer_name", "estimate_id", "construction_date", "interim_payment_date"]'),
('interim_due_email', '대리점 - 중도금 입금 기한 알림', '중도금 입금 기한 안내', '안녕하세요 {dealer_name}님,<br><br>중도금 입금 기한이 도래했습니다.<br><br><strong>시공 정보:</strong><br>- 견적번호: {estimate_id}<br>- 고객명: {customer_name}<br>- 시공예정일: {construction_date}<br>- 중도금입금예정일: {interim_payment_date}<br>- 남은 일수: {days_remaining}일<br><br>고객에게 중도금 입금을 안내해주시기 바랍니다.<br><br>감사합니다.', '["dealer_name", "customer_name", "estimate_id", "construction_date", "interim_payment_date", "days_remaining"]'),
('expert_visit_payment_confirmed', '고객 - 전문가 방문 결제 확인', '전문가 방문 비용 결제가 확인되었습니다', '안녕하세요 {customer_name}님,<br><br>전문가 방문 비용 결제가 확인되었습니다.<br><br>곧 담당자가 연락드려 방문 일정을 조율하겠습니다.<br><br>감사합니다.', '["customer_name"]'),
('expert_visit_scheduled', '고객 - 전문가 방문 일정 안내', '전문가 방문 일정이 확정되었습니다', '안녕하세요 {customer_name}님,<br><br>전문가 방문 일정이 확정되었습니다.<br><br><strong>방문 일정:</strong><br>- 방문 일시: {visit_datetime}<br>- 담당 전문가: {expert_name}<br><br>방문 시간에 맞춰 준비해주시기 바랍니다.<br><br>감사합니다.', '["customer_name", "visit_datetime", "expert_name"]'),
('expert_visit_completed', '고객 - 전문가 방문 완료', '전문가 방문이 완료되었습니다', '안녕하세요 {customer_name}님,<br><br>전문가 방문이 완료되었습니다.<br><br>방문 결과를 바탕으로 정확한 견적을 제공해드리겠습니다.<br><br>감사합니다.', '["customer_name"]'),
('expert_visit_request_new', '고객 - 전문가 방문 신청', '전문가 방문이 신청되었습니다', '안녕하세요 {customer_name}님,<br><br>전문가 방문이 신청되었습니다.<br><br><strong>예약 정보:</strong><br>- 예약번호: {reservation_id}<br>- 방문예정일: {visit_date} {visit_time}<br>- 방문비용: {expert_visit_fee}원<br><br>아래 계좌로 방문비용을 입금해주시면 예약이 확정됩니다.<br><br><strong>계좌 정보:</strong><br>{account_info}<br><br>감사합니다.', '["customer_name", "reservation_id", "visit_date", "visit_time", "expert_visit_fee", "account_info"]'),
('expert_visit_confirmed', '고객 - 전문가 방문 확정', '전문가 방문이 확정되었습니다', '안녕하세요 {customer_name}님,<br><br>전문가 방문이 확정되었습니다.<br><br><strong>예약 정보:</strong><br>- 예약번호: {reservation_id}<br>- 방문일시: {visit_date} {visit_time}<br>- 담당 전문가: {expert_name}<br><br>예약 시간에 맞춰 준비해주시기 바랍니다.<br><br>감사합니다.', '["customer_name", "reservation_id", "visit_date", "visit_time", "expert_name"]'),
('admin_new_visit_request', '관리자 - 새 전문가 방문 요청', '새로운 전문가 방문 요청이 신청되었습니다', '새로운 전문가 방문 요청이 신청되었습니다.<br><br><strong>예약 정보:</strong><br>- 고객명: {customer_name}<br>- 방문예정일: {visit_date} {visit_time}<br>- 연락처: {customer_phone}<br>- 요청사항: {request_memo}<br><br>입금 확인 후 예약을 확정해주세요.', '["customer_name", "visit_date", "visit_time", "customer_phone", "request_memo"]'),
('payment_deposit_complete_customer', '고객 - 계약금 입금 완료', '계약금 입금이 확인되었습니다', '안녕하세요 {customer_name}님,<br><br>요청하신 견적의 계약금({deposit_amount}) 입금이 확인되었습니다.<br>담당 대리점에서 곧 시공 일정을 조율할 예정입니다.<br><br>감사합니다.', '["customer_name", "deposit_amount"]'),
('payment_interim_due_customer', '고객 - 중도금 입금 안내', '중도금 입금 안내', '안녕하세요 {customer_name}님,<br><br>시공일({construction_date})이 확정됨에 따라 중도금 입금을 안내드립니다.<br>시공 2일 전까지 중도금({interim_amount})을 아래 계좌로 입금해주시기 바랍니다.<br><br>계좌정보: {account_info}<br><br>감사합니다.', '["customer_name", "construction_date", "interim_amount", "account_info"]'),
('payment_interim_complete_customer', '고객 - 중도금 입금 완료', '중도금 입금이 확인되었습니다', '안녕하세요 {customer_name}님,<br><br>중도금({interim_amount}) 입금이 확인되었습니다.<br>예정된 날짜에 시공이 원활히 진행되도록 준비하겠습니다.<br><br>감사합니다.', '["customer_name", "interim_amount"]'),
('construction_complete_customer', '고객 - 시공 완료', '시공이 완료되었습니다', '안녕하세요 {customer_name}님,<br><br>요청하신 견적의 시공이 완료되었습니다.<br>이용해주셔서 감사합니다.', '["customer_name"]'),
('construction_complete_agent', '대리점 - 시공 완료', '{customer_name} 고객님의 시공이 완료 처리되었습니다', '안녕하세요 {agent_name}님,<br><br>{customer_name} 고객님의 시공이 완료 처리되었습니다.<br>수고하셨습니다.', '["agent_name", "customer_name"]'),
('expert_new_assignment', '전문가 - 신규 방문 배정', '새로운 방문 예약이 배정되었습니다', '안녕하세요 {expert_name}님,<br><br>새로운 방문 예약이 배정되었습니다.<br><br><strong>예약 정보:</strong><br>- 고객명: {customer_name}<br>- 방문일시: {visit_date} {visit_time}<br><br>관리자 페이지에서 상세 내용을 확인해주세요.', '["expert_name", "customer_name", "visit_date", "visit_time"]');
-- ⭐ 기본 SMS 템플릿 (중복 방지)
INSERT IGNORE INTO `order_sms_templates` (`template_key`, `template_name`, `content`, `variables`) VALUES
('customer_request_complete', '고객 - 견적 요청 완료', '{customer_name}님, 견적 요청이 완료되었습니다. 24시간 후에 확인해주세요.', '["customer_name"]'),
('agent_new_request', '대리점 - 새 견적 요청', '{agent_name}님, {customer_name}님이 견적을 요청했습니다. 24시간 내에 제안해주세요. {write_url}', '["agent_name", "customer_name", "write_url"]'),
('customer_quote_selected', '고객 - 견적 선택 완료', '{customer_name}님, 견적이 선택되었습니다. 계약금 {deposit_amount}원을 입금해주세요.', '["customer_name", "deposit_amount"]'),
('agent_quote_selected', '대리점 - 견적 선택됨', '{agent_name}님, {customer_name}님이 귀하의 견적을 선택하셨습니다. 시공 일정을 알려주세요.', '["agent_name", "customer_name"]'),
('expert_visit_request', '전문가 방문 요청', '{customer_name}님, 전문가 방문이 요청되었습니다. 방문비 {visit_fee}원 입금 후 일정 조율하겠습니다.', '["customer_name", "visit_fee"]'),
('bid_selected_sms', '대리점 - 견적 선택 알림', '{dealer_name}님, 축하합니다! {customer_name}님이 귀하의 견적({bid_amount}원)을 선택하셨습니다. 시공 일정을 조율해주세요.', '["dealer_name", "customer_name", "bid_amount"]'),
('schedule_reminder_sms', '대리점 - 시공 일정 알림', '{dealer_name}님, {customer_name}님 시공예정일({construction_date}) 안내드립니다. 시공 준비를 완료해주세요.', '["dealer_name", "customer_name", "construction_date"]'),
('interim_due_sms', '대리점 - 중도금 입금 기한 알림', '{dealer_name}님, {customer_name}님 중도금 입금기한({interim_payment_date})이 {days_remaining}일 남았습니다. 고객에게 안내해주세요.', '["dealer_name", "customer_name", "interim_payment_date", "days_remaining"]'),
('expert_visit_payment_confirmed', '고객 - 전문가 방문 결제 확인', '{customer_name}님, 전문가 방문 비용 결제가 확인되었습니다. 곧 방문 일정을 안내드리겠습니다.', '["customer_name"]'),
('expert_visit_scheduled', '고객 - 전문가 방문 일정 안내', '{customer_name}님, 전문가 방문 일정이 {visit_datetime}로 확정되었습니다.', '["customer_name", "visit_datetime"]'),
('expert_visit_completed', '고객 - 전문가 방문 완료', '{customer_name}님, 전문가 방문이 완료되었습니다. 감사합니다.', '["customer_name"]'),
('expert_visit_request_new', '고객 - 전문가 방문 신청', '{customer_name}님, 전문가 방문({visit_date} {visit_time})이 신청되었습니다. 방문비 {expert_visit_fee}원을 입금해주세요.', '["customer_name", "visit_date", "visit_time", "expert_visit_fee"]'),
('expert_visit_confirmed', '고객 - 전문가 방문 확정', '{customer_name}님, 전문가 방문({visit_date} {visit_time})이 확정되었습니다. 시간에 맞춰 준비해주세요.', '["customer_name", "visit_date", "visit_time"]'),
('admin_new_visit_request', '관리자 - 새 전문가 방문 요청', '새 전문가 방문 요청: {customer_name}님 {visit_date} {visit_time} (연락처: {customer_phone})', '["customer_name", "visit_date", "visit_time", "customer_phone"]'),
('payment_deposit_complete_customer', '고객 - 계약금 입금 완료', '[{site_name}] {customer_name}님, 계약금 입금이 확인되었습니다. 곧 시공 일정이 안내됩니다.', '["site_name", "customer_name"]'),
('payment_interim_due_customer', '고객 - 중도금 입금 안내', '[{site_name}] {customer_name}님, 중도금({interim_amount}) 입금 예정일({interim_payment_date})입니다. 입금 부탁드립니다.', '["site_name", "customer_name", "interim_amount", "interim_payment_date"]'),
('payment_interim_complete_customer', '고객 - 중도금 입금 완료', '[{site_name}] {customer_name}님, 중도금 입금이 확인되었습니다. 시공을 준비하겠습니다.', '["site_name", "customer_name"]'),
('construction_complete_customer', '고객 - 시공 완료', '[{site_name}] {customer_name}님, 요청하신 시공이 완료되었습니다. 감사합니다.', '["site_name", "customer_name"]'),
('construction_complete_agent', '대리점 - 시공 완료', '[{site_name}] {agent_name}님, {customer_name} 고객님의 시공이 완료 처리되었습니다.', '["site_name", "agent_name", "customer_name"]'),
('expert_new_assignment', '전문가 - 신규 방문 배정', '[{site_name}] {expert_name}님, {customer_name} 고객님의 방문 예약({visit_date} {visit_time})이 배정되었습니다.', '["site_name", "expert_name", "customer_name", "visit_date", "visit_time"]');
-- ⭐ 기본 창호 브랜드 데이터 삽입 (중복 방지)
INSERT IGNORE INTO `order_window_brands` (`brand_name`, `brand_code`, `manufacturer`, `description`, `sort_order`, `temp_1`, `temp_2`) VALUES
('KCC창호', 'KCC', 'KCC', '국내 대표 창호 브랜드', 1, '프리미엄', '고급창호'),
('LG하우시스', 'LG', 'LG하우시스', 'LG 계열 창호 전문 브랜드', 2, '프리미엄', '시스템창호'),
('현대L&C', 'HD', '현대L&C', '현대 계열 리빙 솔루션', 3, '프리미엄', '아파트창호'),
('롯데창호', 'LOTTE', '롯데창호', '롯데 계열 창호 브랜드', 4, '일반', '일반창호'),
('삼성창호', 'SAMSUNG', '삼성창호', '삼성 계열 창호 브랜드', 5, '일반', '시스템창호'),
('대우창호', 'DAEWOO', '대우창호', '대우 계열 창호 브랜드', 6, '일반', '아파트창호'),
('이녹스', 'INOX', '이녹스', '스테인리스 전문 창호', 7, '일반', '스테인리스'),
('센텍창호', 'CENTEC', '센텍', '센텍 창호 시스템', 8, '보급', '일반창호'),
('알루미늄창호', 'ALUMI', '기타', '일반 알루미늄 창호', 9, '보급', '알루미늄'),
('기타', 'ETC', '기타', '기타 브랜드', 10, '보급', '기타');
-- -- ⭐ 기본 전문가 방문 스케줄 설정 (중복 방지)
INSERT IGNORE INTO `expert_visit_schedules` (`day_of_week`, `start_time`, `end_time`, `time_slot`, `max_persons`, `temp_1`) VALUES
(1, '09:00', '18:00', 60, 2, '현장방문'),
(2, '09:00', '18:00', 60, 2, '현장방문'),
(3, '09:00', '18:00', 60, 2, '현장방문'),
(4, '09:00', '18:00', 60, 2, '현장방문'),
(5, '09:00', '18:00', 60, 2, '현장방문');
-- 테이블 컬럼 활용 현황 주석 업데이트
/*
=== 📋 테이블별 temp_/extra_ 컬럼 사용 현황 ===
🔹 estimate 테이블:
- temp_1: 전문가방문요청여부(Y/N) ✅사용중
- temp_2: 전문가방문상태(requested/scheduled/completed/cancelled) ✅사용중
- temp_3: 전문가방문비용 ✅사용중
- temp_4: 전문가방문일정(YYYY-MM-DD HH:MM) ✅사용중
- temp_5: 전문가방문메모 ✅사용중
- extra_1: 고객연락처(전문가방문용) ✅사용중
- extra_2: 결제상태(pending/paid/cancelled) ✅사용중
- extra_3: 추가요청사항 ✅사용중
- extra_4: 관리자메모 ✅사용중
- extra_5: 예비필드 ⭕미사용
🔹 estimate_item 테이블:
- temp_1~5: ⭕전체 미사용 (향후 확장용)
- extra_2~5: ⭕전체 미사용 (향후 확장용)
🔹 estimate_history 테이블:
- temp_1~5: ⭕전체 미사용 (향후 확장용)
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 estimate_bidding 테이블:
- temp_1~5: ⭕전체 미사용 (향후 확장용)
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 expert_visit_reservations 테이블: (신규)
- temp_1: 방문시간구간(예:09:00-11:00) ✅사용중
- temp_2: 방문종류(현장방문/전화상담) ✅사용중
- temp_3: 방문지역 ✅사용중
- temp_4: 방문예상시간(분) ✅사용중
- temp_5: 추가정보 ✅사용중
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 expert_visit_schedules 테이블: (신규)
- temp_1: 방문종류제한 ✅사용중
- temp_2: 휴무사유 ✅사용중
- temp_3: 특별일정명 ✅사용중
- temp_4~5: ⭕미사용 (향후 확장용)
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 order_window_brands 테이블: (신규)
- temp_1: 브랜드등급(프리미엄/일반/보급) ✅사용중
- temp_2: 주력제품군 ✅사용중
- temp_3: 가격대 ⭕미사용
- temp_4: A/S기간 ⭕미사용
- temp_5: 보증기간 ⭕미사용
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 order_config 테이블:
- temp_1~5: ⭕전체 미사용 (향후 확장용)
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 order_mail_templates 테이블:
- temp_1: 발송대상그룹 ✅사용중
- temp_2: 발송조건 ✅사용중
- temp_3~5: ⭕미사용 (향후 확장용)
- extra_1~5: ⭕전체 미사용 (향후 확장용)
🔹 order_sms_templates 테이블:
- temp_1: 발송대상그룹 ✅사용중
- temp_2: 발송조건 ✅사용중
- temp_3~5: ⭕미사용 (향후 확장용)
- extra_1~5: ⭕전체 미사용 (향후 확장용)
=== 📈 전체 사용률 요약 ===
✅ 사용중인 컬럼: 19개
⭕ 미사용 컬럼: 61개
📊 사용률: 23.8%
*/