package com.aucma.base.domain;

import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aucma.common.annotation.Excel;
import com.aucma.common.core.domain.BaseEntity;

/**
 * 工艺快照对象 process_snapshot
 *
 * @author Cascade
 * @date 2026-01-19
 */
public class ProcessSnapshot extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 快照ID */
    private Long snapshotId;

    /** 设备编号 */
    @Excel(name = "设备编号")
    private String deviceCode;

    /** 设备名称（非表字段，关联查询） */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 快照时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "快照时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date snapshotTime;

    /** 快照类型：START-开始生产/END-结束生产/MANUAL-手动创建/CHANGE-参数变化 */
    @Excel(name = "快照类型")
    private String snapshotType;

    /** 关联工单号 */
    @Excel(name = "工单号")
    private String orderCode;

    /** 删除标志 */
    private String isFlag;

    /** 模具编号（调试备份专用） */
    @Excel(name = "模具编号")
    private String moldCode;

    /** 产品编号（调试备份专用） */
    @Excel(name = "产品编号")
    private String productCode;

    /** 备份名称（调试备份专用） */
    @Excel(name = "备份名称")
    private String backupName;

    /** 是否默认备份：1-是/0-否（调试备份专用） */
    private String isDefault;

    /** 快照详情参数列表（非表字段） */
    private List<BaseDeviceParamVal> paramList;

    public void setSnapshotId(Long snapshotId) {
        this.snapshotId = snapshotId;
    }

    public Long getSnapshotId() {
        return snapshotId;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setSnapshotTime(Date snapshotTime) {
        this.snapshotTime = snapshotTime;
    }

    public Date getSnapshotTime() {
        return snapshotTime;
    }

    public void setSnapshotType(String snapshotType) {
        this.snapshotType = snapshotType;
    }

    public String getSnapshotType() {
        return snapshotType;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setIsFlag(String isFlag) {
        this.isFlag = isFlag;
    }

    public String getIsFlag() {
        return isFlag;
    }

    public String getMoldCode() {
        return moldCode;
    }

    public void setMoldCode(String moldCode) {
        this.moldCode = moldCode;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getBackupName() {
        return backupName;
    }

    public void setBackupName(String backupName) {
        this.backupName = backupName;
    }

    public String getIsDefault() {
        return isDefault;
    }

    public void setIsDefault(String isDefault) {
        this.isDefault = isDefault;
    }

    public List<BaseDeviceParamVal> getParamList() {
        return paramList;
    }

    public void setParamList(List<BaseDeviceParamVal> paramList) {
        this.paramList = paramList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("snapshotId", getSnapshotId())
                .append("deviceCode", getDeviceCode())
                .append("deviceName", getDeviceName())
                .append("snapshotTime", getSnapshotTime())
                .append("snapshotType", getSnapshotType())
                .append("orderCode", getOrderCode())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("isFlag", getIsFlag())
                .append("moldCode", getMoldCode())
                .append("productCode", getProductCode())
                .append("backupName", getBackupName())
                .append("isDefault", getIsDefault())
                .toString();
    }
}
