547 lines
46 KiB
SQL
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%
|
|
*/ |