-- schema.sql - acquire-core 매입/정산 스키마 -- -- ECPG DBIO 코드가 참조하는 테이블 정의. 컴파일에는 필요 없으며, -- 실행(런타임) 시 PostgreSQL 에 적용한다. -- 매입 원장 (전문수신 → 접수) CREATE TABLE IF NOT EXISTS purchase ( appr_no VARCHAR(9) NOT NULL, -- 승인번호 (PK) merch_id VARCHAR(15) NOT NULL, -- 가맹점번호 card_no VARCHAR(16) NOT NULL, -- 카드번호(마스킹) amount BIGINT NOT NULL, -- 거래금액(원) txn_date CHAR(8) NOT NULL, -- 거래일자 YYYYMMDD status CHAR(1) NOT NULL DEFAULT 'R', -- R:접수 M:대사완료 U:불일치 S:정산완료 reg_ts TIMESTAMP NOT NULL DEFAULT now(), upd_ts TIMESTAMP, CONSTRAINT pk_purchase PRIMARY KEY (appr_no) ); CREATE INDEX IF NOT EXISTS ix_purchase_date_status ON purchase (txn_date, status); -- 승인 원장 (매입 대사 기준) CREATE TABLE IF NOT EXISTS approval ( appr_no VARCHAR(9) NOT NULL, merch_id VARCHAR(15) NOT NULL, amount BIGINT NOT NULL, appr_date CHAR(8) NOT NULL, status CHAR(1) NOT NULL DEFAULT 'A', -- A:승인 C:취소 reg_ts TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT pk_approval PRIMARY KEY (appr_no) ); -- 정산 집계 (가맹점/영업일 단위) CREATE TABLE IF NOT EXISTS settlement ( merch_id VARCHAR(15) NOT NULL, biz_date CHAR(8) NOT NULL, -- 정산 영업일 YYYYMMDD total_amount BIGINT NOT NULL DEFAULT 0, txn_cnt INTEGER NOT NULL DEFAULT 0, upd_ts TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT pk_settlement PRIMARY KEY (merch_id, biz_date) );