package com.erp.print.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.Builder;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName("print_record")
public class PrintRecord {

    @TableId(type = IdType.AUTO)
    private Long id;

    /** 记录编号 */
    private String recordNo;

    /** 任务ID */
    private Long taskId;

    /** 任务编号 */
    private String taskNo;

    /** 模板ID */
    private Long templateId;

    /** 模板名称 */
    private String templateName;

    /** 打印机ID */
    private Long printerId;

    /** 打印机名称 */
    private String printerName;

    /** 单据类型 */
    private String documentType;

    /** 单据ID */
    private Long documentId;

    /** 单据编号 */
    private String documentNo;

    /** 打印份数 */
    private Integer copies;

    /** 打印状态: success/failed */
    private String printStatus;

    /** 错误信息 */
    private String errorMessage;

    /** 打印耗时(ms) */
    private Long duration;

    /** 用户ID */
    private Long userId;

    /** 用户名称 */
    private String userName;

    /** 租户ID */
    private Long tenantId;

    /** IP地址 */
    private String ipAddress;

    /** 用户代理 */
    private String userAgent;

    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;

    @TableLogic
    private Integer deleted;
}
