package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * 门店 OMG(歐買尬/FunPoint) 支付凭证 pos_store_omg
 *
 * <p>与 pos_store 1:1，记录该门店的 OMG 申请状态、启用开关、金钥、启用支付方式。
 * 门店无此行即视为「未申请」（omg_status=0）。
 * 状态机：0 未申请 --apply--> 1 申请中 --saveCredentials(验证通过)--> 2 已开通 <--reset--> 1；
 * 2 已开通 下 toggleEnable 切换 is_enabled。
 *
 * @author ruoyi
 * @date 2026-07-29
 */
@Data
@TableName(value = "pos_store_omg")
public class PosStoreOmg {

    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 关联 pos_store.id（门店），唯一 */
    private Long storeId;

    /** 申请状态:0未申请/1申请中/2已开通 */
    private Integer omgStatus;

    /** 启用开关:0停用/1启用(仅 status=2 有意义) */
    private Integer isEnabled;

    /** OMG 商店代号 MerchantID */
    private String merchantId;

    /** OMG HashKey */
    private String hashKey;

    /** OMG HashIV */
    private String hashIv;

    /** 启用支付方式（本期固定 ALL，字段保留以备收敛） */
    private String enabledPayments;

    /** 提交申请时间（0→1） */
    private Date applyTime;

    /** 开通时间（→2） */
    private Date approvedTime;

    /** 最近一次凭证验证结果 */
    private String lastVerifyResult;

    /** 备注 */
    private String remark;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /** 更新人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
}
