/*
 * mm_core.h - 마스터 모듈 핵심 계약 (레코드/상태/표준 DBIO API)
 *
 * 이 모듈의 온라인/배치 프로그램은 SQL 을 직접 다루지 않고 아래 표준
 * DBIO API 만 호출한다. 구현은 app/dbio/mm_dbio_main.pgc (ECPG).
 */
#ifndef MM_CORE_H
#define MM_CORE_H

#include "txcore.h"

/* 마스터 처리 상태코드 */
#define MM_ST_RECV    "R"   /* 접수/수신   */
#define MM_ST_DONE    "M"   /* 처리완료    */
#define MM_ST_FAIL    "U"   /* 불일치/실패 */
#define MM_ST_SETTLED "S"   /* 정산완료    */

/* 마스터 원장 레코드 (1행) */
typedef struct {
    char key[16];        /* 처리키(승인/거래 번호) PK */
    char merch_id[16];   /* 가맹점번호        */
    char card_no[20];    /* 카드번호(마스킹)  */
    long amount;         /* 거래금액(원)      */
    char biz_date[9];    /* 영업일 YYYYMMDD   */
    char status[2];      /* 상태코드          */
    long fee;            /* 수수료(원)        */
} mm_rec_t;

/* 표준 DBIO API (구현: mm_dbio_main.pgc) */
int  mm_dbio_connect(const char *target);
int  mm_dbio_disconnect(void);
int  mm_rec_insert(const mm_rec_t *rec);
int  mm_rec_select(const char *key, mm_rec_t *out);
int  mm_rec_update_status(const char *key, const char *status);
long mm_rec_count(const char *biz_date, const char *status);
int  mm_rec_sum(const char *biz_date, long *out_sum);

#endif /* MM_CORE_H */
