package cn.ysk.cashier.dto.shop;

import lombok.Data;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 店铺打印机配置
 *
 * @author tankaikai
 * @since 2024-09-24 17:13
 */
@Data
public class ShopPrinterDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Integer id;

    /**
     * 名称
     */
    private String name;

    /**
     * 冗余/遗留字段
     */
    private String type;

    /**
     * 打印机类型：本地打印机-local USB打印机-USB 云打印机-network
     */
    private String connectionType;

    /**
     * 打印机编号/IP地址
     */
    private String address;

    /**
     * 打印机密钥/端口
     */
    private String port;

    /**
     * 打印类型 标签-label 出品-kitchen 小票-cash
     */
    private String subType;

    /**
     * 启用状态 0-启用 1-停用
     */
    private Integer status;

    /**
     * 店铺id
     */
    private String shopId;

    /**
     * 部分分类id 用逗号隔开，部分打印时必传，如：1,2,3
     */
    private String categoryIds;

    /**
     * 部分分类列表 分类打印选择部分打印时必传，JsonArray字符串数据 如：[{"id":125,"name":"意式咖啡"},{"id":127,"name":"饮品"}]
     */
    private String categoryList;

    /**
     * 打印机品牌
     * 云想印 = yxyPrinter
     * 飞鹅 = fePrinter
     * 本地 = local
     * USB = printer
     */
    private String contentType;

    /**
     * 创建时间
     */
    private String createdAt;

    /**
     * 更新时间
     */
    private String updatedAt;

    /**
     * 排序码 从小到大升序排列
     */
    private Integer sort;

    /**
     * 冗余/遗留字段
     */
    private String vendorId;

    /**
     * 冗余/遗留字段
     */
    private String productId;
    /**
     * 冗余/遗留字段（打印机个性化配置，存储JSON数据）
     */
    private String config;

    /**
     * 小票尺寸 58mm 80mm
     */
    private String receiptSize;
    /**
     * 分类打印 0-所以 1-部分分类 2-部分商品
     */
    private String classifyPrint;
    /**
     * 桌台打印 0-所有 1-部分
     */
    private String tablePrint;
    /**
     * 打印数量 c1m1^2=顾客+商家[2张] m1^1=商家[1张] c1^1顾客[1张] c2m1^3顾客2+商家1[3张]
     */
    private String printQty;
    /**
     * 打印方式 all-全部打印 normal-仅打印结账单「前台」one-仅打印制作单「厨房」
     */
    private String printMethod;
    /**
     * 打印类型，JSON数组 refund-确认退款单 handover-交班单 queue-排队取号，如：['refund','handover','queue']
     */
    private String printType;
    /**
     * 打印单据 0-全部打印 1-仅厨房 2-仅前台
     */
    private String printReceipt;


    public String getCreatedAt() {
        if ("".equals(createdAt) || createdAt == null) {
            return "";
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(new Date(Long.valueOf(createdAt)));
    }

    public String getUpdatedAt() {
        if ("".equals(updatedAt) || updatedAt == null) {
            return "";
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(new Date(Long.valueOf(updatedAt)));
    }
}
