package com.microservices.pms.product.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.microservices.common.core.utils.bean.BeanUtils;
import com.microservices.common.core.web.domain.BaseEntity;
import com.microservices.pms.product.domain.vo.PmsProductDataVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 产品对象 pms_product
 * 
 * @author otto
 * @date 2023-10-10
 */
@Data
@ApiModel("产品对象")
public class PmsProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品ID */
    private Long id;

    /** 产品名 */
    @ApiModelProperty(value = "产品名")
    private String productName;

    /** 产品描述 */
    @ApiModelProperty(value = "产品描述")
    private String productDescription;

    /**
     * 产品负责人Gitlink ID列表
     */
    @ApiModelProperty(value = "产品负责人Gitlink ID列表")
    private String productAssigneeGitlinkIds;

    /** 产品标识 */
    @ApiModelProperty(value = "产品标识")
    private String productIdentifier;

    /** 是否置顶（0否，1是） */
    @ApiModelProperty(value = "是否置顶（0=否，1是）")
    private Integer isTop;

    /** 排序 */
    @ApiModelProperty(value = "排序")
    private Integer sort;

    /** 关联组织ID */
    @ApiModelProperty(value = "关联组织ID")
    private Long deptId;

    /** 关联企业ID */
    @ApiModelProperty(value = "关联企业ID")
    private Long pmsEnterpriseId;

    /**
     * 关联企业ID
     */
    @ApiModelProperty(value = "关联企业ID")
    private String pmsEnterpriseIdentifier;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 预留字段1 */
    @ApiModelProperty(value = "预留字段1")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String reservedField1;

    /** 预留字段2 */
    @ApiModelProperty(value = "预留字段2")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String reservedField2;


    public PmsProductDataVo toPmsProductDataVo() {
        PmsProductDataVo target = new PmsProductDataVo();
        BeanUtils.copyProperties(this, target);
        return target;
    }
}
