-- 3. 견적서 결제 정보 CREATE TABLE IF NOT EXISTS `estimate_payment` ( `id` int NOT NULL AUTO_INCREMENT, `estimate_id` int NOT NULL COMMENT '견적서 ID', `payment_method` varchar(50) COMMENT '결제 수단 (pg, bank, cash)', `total_amount` int NOT NULL COMMENT '최종 결제 요청 금액', `payment_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '결제 상태 (pending:요청, completed:완료, failed:실패, cancelled:취소)', `pg_tid` varchar(100) COMMENT 'PG사 거래 ID', `pg_receipt_url` varchar(255) COMMENT 'PG사 영수증 URL', `bank_account` varchar(100) COMMENT '무통장 입금 계좌', `depositor_name` varchar(50) COMMENT '입금자명', `temp_1` varchar(255) DEFAULT NULL, `temp_2` varchar(255) DEFAULT NULL, `temp_3` varchar(255) DEFAULT NULL, `temp_4` varchar(255) DEFAULT NULL, `temp_5` varchar(255) DEFAULT NULL, `extra_1` varchar(255) DEFAULT NULL, `extra_2` varchar(255) DEFAULT NULL, `extra_3` varchar(255) DEFAULT NULL, `extra_4` varchar(255) DEFAULT NULL, `extra_5` varchar(255) DEFAULT NULL, `is_used` tinyint(1) NOT NULL DEFAULT '1', `is_deleted` tinyint(1) NOT NULL DEFAULT '0', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `created_by` varchar(20) DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `updated_by` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `estimate_id` (`estimate_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE=utf8mb4_general_ci COMMENT ='견적서 결제 정보'; -- 4. 결제 상태 변경 이력 (로그 테이블) CREATE TABLE IF NOT EXISTS `estimate_payment_log` ( `id` int NOT NULL AUTO_INCREMENT, `payment_id` int NOT NULL COMMENT '결제 정보 ID', `estimate_id` int NOT NULL COMMENT '견적서 ID', `previous_status` varchar(50) DEFAULT NULL COMMENT '이전 상태', `new_status` varchar(50) NOT NULL COMMENT '새 상태', `memo` varchar(255) DEFAULT NULL COMMENT '변경 사유 또는 메모', `temp_1` varchar(255) DEFAULT NULL, `temp_2` varchar(255) DEFAULT NULL, `temp_3` varchar(255) DEFAULT NULL, `temp_4` varchar(255) DEFAULT NULL, `temp_5` varchar(255) DEFAULT NULL, `extra_1` varchar(255) DEFAULT NULL, `extra_2` varchar(255) DEFAULT NULL, `extra_3` varchar(255) DEFAULT NULL, `extra_4` varchar(255) DEFAULT NULL, `extra_5` varchar(255) DEFAULT NULL, `is_used` tinyint(1) NOT NULL DEFAULT '1', `is_deleted` tinyint(1) NOT NULL DEFAULT '0', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `created_by` varchar(20) NOT NULL COMMENT '변경자 ID', `updated_at` datetime DEFAULT NULL, `updated_by` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `payment_id` (`payment_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE=utf8mb4_general_ci COMMENT ='결제 상태 변경 이력'; -- 5. PG사 연동 전문 (로그) 테이블 CREATE TABLE IF NOT EXISTS `estimate_payment_payload` ( `id` int NOT NULL AUTO_INCREMENT, `payment_id` int NOT NULL COMMENT '결제 정보 ID', `payload_type` VARCHAR(20) NOT NULL COMMENT '전문 종류 (request, response, webhook 등)', `payload` LONGTEXT COMMENT 'PG사에서 받은 원본 전문 (JSON, XML 등)', `temp_1` varchar(255) DEFAULT NULL, `temp_2` varchar(255) DEFAULT NULL, `temp_3` varchar(255) DEFAULT NULL, `temp_4` varchar(255) DEFAULT NULL, `temp_5` varchar(255) DEFAULT NULL, `extra_1` varchar(255) DEFAULT NULL, `extra_2` varchar(255) DEFAULT NULL, `extra_3` varchar(255) DEFAULT NULL, `extra_4` varchar(255) DEFAULT NULL, `extra_5` varchar(255) DEFAULT NULL, `is_used` tinyint(1) NOT NULL DEFAULT '1', `is_deleted` tinyint(1) NOT NULL DEFAULT '0', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `created_by` varchar(20) DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `updated_by` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `payment_id` (`payment_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE=utf8mb4_general_ci COMMENT ='PG사 연동 전문';