-- 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사 연동 전문';