package com.ruoyi.jarvis.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 批量发品明细对象 batch_publish_item
 * 
 * @author ruoyi
 * @date 2025-01-10
 */
public class BatchPublishItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long id;

    /** 任务ID */
    @Excel(name = "任务ID")
    private Long taskId;

    /** SKUID */
    @Excel(name = "SKUID")
    private String skuid;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 目标ERP账号 */
    @Excel(name = "目标账号")
    private String targetAccount;

    /** 账号备注名 */
    @Excel(name = "账号名称")
    private String accountRemark;

    /** 子账号（会员名） */
    @Excel(name = "子账号")
    private String subAccount;

    /** 发品状态：0待发布 1发布中 2发布成功 3发布失败 4上架中 5已上架 6上架失败 */
    @Excel(name = "发品状态", readConverterExp = "0=待发布,1=发布中,2=发布成功,3=发布失败,4=上架中,5=已上架,6=上架失败")
    private Integer status;

    /** ERP商品ID（发品成功后返回） */
    @Excel(name = "商品ID")
    private Long productId;

    /** 商品状态（发品成功后返回） */
    private Integer productStatus;

    /** 商家编码（发品成功后返回） */
    @Excel(name = "商家编码")
    private String outerId;

    /** 发品价格（分） */
    @Excel(name = "发品价格")
    private Long publishPrice;

    /** 失败原因 */
    @Excel(name = "失败原因")
    private String errorMessage;

    /** 执行日志 */
    private String execLog;

    /** 上架时间 */
    @Excel(name = "上架时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;

    /** 延迟上架时间（秒） */
    private Integer delaySeconds;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getTaskId() {
        return taskId;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }

    public String getSkuid() {
        return skuid;
    }

    public void setSkuid(String skuid) {
        this.skuid = skuid;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getTargetAccount() {
        return targetAccount;
    }

    public void setTargetAccount(String targetAccount) {
        this.targetAccount = targetAccount;
    }

    public String getAccountRemark() {
        return accountRemark;
    }

    public void setAccountRemark(String accountRemark) {
        this.accountRemark = accountRemark;
    }

    public String getSubAccount() {
        return subAccount;
    }

    public void setSubAccount(String subAccount) {
        this.subAccount = subAccount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Integer getProductStatus() {
        return productStatus;
    }

    public void setProductStatus(Integer productStatus) {
        this.productStatus = productStatus;
    }

    public String getOuterId() {
        return outerId;
    }

    public void setOuterId(String outerId) {
        this.outerId = outerId;
    }

    public Long getPublishPrice() {
        return publishPrice;
    }

    public void setPublishPrice(Long publishPrice) {
        this.publishPrice = publishPrice;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public String getExecLog() {
        return execLog;
    }

    public void setExecLog(String execLog) {
        this.execLog = execLog;
    }

    public Date getPublishTime() {
        return publishTime;
    }

    public void setPublishTime(Date publishTime) {
        this.publishTime = publishTime;
    }

    public Integer getDelaySeconds() {
        return delaySeconds;
    }

    public void setDelaySeconds(Integer delaySeconds) {
        this.delaySeconds = delaySeconds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskId", getTaskId())
            .append("skuid", getSkuid())
            .append("productName", getProductName())
            .append("targetAccount", getTargetAccount())
            .append("accountRemark", getAccountRemark())
            .append("subAccount", getSubAccount())
            .append("status", getStatus())
            .append("productId", getProductId())
            .append("productStatus", getProductStatus())
            .append("outerId", getOuterId())
            .append("publishPrice", getPublishPrice())
            .append("errorMessage", getErrorMessage())
            .append("execLog", getExecLog())
            .append("publishTime", getPublishTime())
            .append("delaySeconds", getDelaySeconds())
            .append("createTime", getCreateTime())
            .toString();
    }
}

