159 lines
8.6 KiB
SQL
159 lines
8.6 KiB
SQL
-- 1. 상담 설정 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_config` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`config_key` varchar(100) NOT NULL COMMENT '설정 키',
|
|
`config_value` text COMMENT '설정 값',
|
|
`config_desc` varchar(255) DEFAULT NULL COMMENT '설정 설명',
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `config_key` (`config_key`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담 예약 시스템 설정';
|
|
|
|
-- 2. 상담 일정 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_schedule` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`specific_date` date DEFAULT NULL COMMENT '특정 날짜',
|
|
`start_time` time NOT NULL COMMENT '시작 시간',
|
|
`end_time` time NOT NULL COMMENT '종료 시간',
|
|
`time_slot` int(11) DEFAULT 60 COMMENT '예약 단위 시간(분)',
|
|
`max_persons` int(11) DEFAULT 1 COMMENT '동시간대 최대 예약 인원',
|
|
`is_available` tinyint(1) DEFAULT 1 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',
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_specific_date` (`specific_date`),
|
|
KEY `idx_is_available` (`is_available`),
|
|
KEY `idx_time_range` (`start_time`,`end_time`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담 예약 상세 스케줄';
|
|
|
|
-- 3. 상담 예약 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_reservations` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`wr_id` int(11) DEFAULT NULL COMMENT '연결된 게시글 ID',
|
|
`customer_name` varchar(100) NOT NULL COMMENT '고객명',
|
|
`customer_phone` varchar(20) NOT NULL COMMENT '고객 연락처',
|
|
`customer_email` varchar(100) DEFAULT NULL COMMENT '고객 이메일',
|
|
`reservation_date` date NOT NULL COMMENT '예약 날짜',
|
|
`reservation_time` time NOT NULL COMMENT '예약 시간',
|
|
`consultation_type` varchar(50) DEFAULT 'onsite' COMMENT '상담 유형',
|
|
`resource_id` int(11) DEFAULT NULL COMMENT '배정된 리소스 ID',
|
|
`status` varchar(50) DEFAULT 'payment_pending' COMMENT '예약 상태',
|
|
`payment_amount` int(11) DEFAULT 0 COMMENT '상담 비용',
|
|
`payment_status` varchar(50) DEFAULT 'pending' COMMENT '결제 상태',
|
|
`payment_confirmed_at` datetime DEFAULT NULL COMMENT '입금 확인 시간',
|
|
`payment_confirmed_by` varchar(50) DEFAULT NULL COMMENT '입금 확인자',
|
|
`request_memo` text COMMENT '고객 요청사항',
|
|
`admin_memo` text COMMENT '관리자 메모',
|
|
`is_deleted` tinyint(1) DEFAULT 0 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',
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_reservation_date` (`reservation_date`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_customer_phone` (`customer_phone`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담 예약 정보';
|
|
|
|
-- 4. 상담 메일 알림 템플릿 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_mail_templates` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`template_key` varchar(100) NOT NULL,
|
|
`template_type` varchar(10) NOT NULL DEFAULT 'email' COMMENT '템플릿 종류 (email)',
|
|
`template_name` varchar(200) NOT NULL,
|
|
`template_subject` varchar(255) NOT NULL,
|
|
`template_content` text NOT NULL,
|
|
`is_active` tinyint(1) DEFAULT 1,
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `template_key` (`template_key`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담 예약 메일 알림 템플릿';
|
|
|
|
-- 5. 상담 문자 알림 템플릿 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_sms_templates` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`template_key` varchar(100) NOT NULL,
|
|
`template_type` varchar(10) NOT NULL DEFAULT 'sms' COMMENT '템플릿 종류 (sms)',
|
|
`template_name` varchar(200) NOT NULL,
|
|
`template_subject` varchar(255) NOT NULL,
|
|
`template_content` text NOT NULL,
|
|
`is_active` tinyint(1) DEFAULT 1,
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `template_key` (`template_key`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담 예약 문자 알림 템플릿';
|
|
|
|
-- 6. 시스템 로그 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_log` (
|
|
`log_id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`log_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`mb_id` varchar(20) DEFAULT NULL,
|
|
`log_level` varchar(20) NOT NULL DEFAULT 'info',
|
|
`log_message` text NOT NULL,
|
|
`ip_address` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`log_id`),
|
|
KEY `idx_log_time` (`log_time`),
|
|
KEY `idx_mb_id` (`mb_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담 예약 시스템 로그';
|
|
|
|
-- 7. 상담 그룹 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_groups` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(100) NOT NULL COMMENT '그룹명',
|
|
`is_active` tinyint(1) DEFAULT 1 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',
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='상담/자원 그룹';
|
|
|
|
-- 8. 상담 리소스 테이블
|
|
CREATE TABLE IF NOT EXISTS `consultant_resources` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`group_id` int(11) NOT NULL COMMENT '그룹 ID',
|
|
`name` varchar(100) NOT NULL COMMENT '리소스명(이름/호실)',
|
|
`description` varchar(255) DEFAULT NULL COMMENT '설명',
|
|
`is_active` tinyint(1) DEFAULT 1 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',
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `group_id` (`group_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='상담사/자원 목록'; |