120 lines
6.8 KiB
SQL
120 lines
6.8 KiB
SQL
-- 기존 테이블 활용 최소 변경 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',
|
|
`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=utf8;
|
|
|
|
-- 기본 설정값 삽입 (중복 시 무시)
|
|
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');
|
|
|
|
-- 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)',
|
|
`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=utf8;
|
|
|
|
-- 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)',
|
|
`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=utf8;
|
|
|
|
-- 4. 기존 estimate 테이블의 temp_ 컬럼 활용 정의
|
|
-- temp_1: 전문가 방문 요청 여부 ('Y'/'N')
|
|
-- temp_2: 전문가 방문 상태 ('requested'/'scheduled'/'completed'/'cancelled')
|
|
-- temp_3: 전문가 방문 비용
|
|
-- temp_4: 전문가 방문 일정 (YYYY-MM-DD HH:MM)
|
|
-- temp_5: 전문가 방문 메모
|
|
|
|
-- 5. 기본 메일 템플릿 삽입 (중복 시 무시)
|
|
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", "request_title", "request_date"]'),
|
|
|
|
('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", "request_title"]'),
|
|
|
|
('expert_visit_request', '전문가 방문 요청', '전문가 방문이 요청되었습니다',
|
|
'안녕하세요 {customer_name}님,<br><br>전문가 방문이 요청되었습니다.<br><br>방문 비용: {visit_fee}원<br>계좌정보: {account_info}<br><br>입금 확인 후 방문 일정을 조율하겠습니다.',
|
|
'["customer_name", "visit_fee", "account_info"]');
|
|
|
|
-- 6. 기본 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"]');
|
|
|
|
-- 7. 기존 테이블 컬럼 활용 방법 주석
|
|
/*
|
|
기존 estimate 테이블의 temp_ 컬럼 활용:
|
|
- temp_1: 전문가 방문 요청 여부 ('Y'/'N')
|
|
- temp_2: 전문가 방문 상태 ('requested'/'scheduled'/'completed'/'cancelled')
|
|
- temp_3: 전문가 방문 비용 (숫자)
|
|
- temp_4: 전문가 방문 일정 (YYYY-MM-DD HH:MM 형식)
|
|
- temp_5: 전문가 방문 메모/특이사항
|
|
|
|
기존 estimate 테이블의 extra_ 컬럼 활용:
|
|
- extra_1: 고객 연락처 (전문가 방문용)
|
|
- extra_2: 결제 상태 ('pending'/'paid'/'cancelled')
|
|
- extra_3: 추가 요청사항
|
|
- extra_4: 관리자 메모
|
|
- extra_5: 예비 필드
|
|
*/ |