package com.zioinfo.mall.payment;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 결제 (mall_payment).
 *
 * <p>보안: card_no_enc / account_no_enc 는 AES-256-GCM 암호화 저장.
 * API 응답에는 절대 노출하지 않고 마스킹된 cardMasked / accountMasked 만 노출.
 */
@Data
public class MallPayment {
    private Long id;
    private Long orderId;
    private String method;          // CARD / VBANK / TRANSFER
    private String pgTid;
    private BigDecimal amount;
    private String status;          // READY / PAID / FAILED / CANCELLED
    private String cardNoEnc;       // 내부 저장(응답 제외)
    private String accountNoEnc;    // 내부 저장(응답 제외)
    private String vbankNo;         // 가상계좌 번호(발급)
    private String vbankBank;
    private LocalDateTime paidAt;
    private LocalDateTime createdAt;

    // 응답 노출용(마스킹)
    private String cardMasked;
    private String accountMasked;
}
