package jnpf.model.certificate.vo;

import jnpf.model.certificate.po.CertificateInstanceEntity;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 证照实例返回对象。
 */
@Data
public class CertificateInstanceVO {

    private String id;
    private String type;
    private String templateId;
    private Integer subjectType;
    private String subjectId;
    private String certificateNo;
    private Date issueDate;
    private Date expireDate;
    private Integer isLongTerm;
    /**
     * 状态，1为缺失，2为过期，3为临期，4为正常
     */
    private Integer status;
    private String certificateImage;

    /**
     * 营业执照扩展：公司名称。
     */
    private String companyName;

    /**
     * 营业执照扩展：公司地址。
     */
    private String companyAddress;

    /**
     * 营业执照扩展：法定代表人。
     */
    private String legalRepresentative;

    /**
     * 营业执照扩展：成立时间。
     */
    private Date establishDate;

    /**
     * 营业执照扩展：经营范围。
     */
    private String businessScope;

    /**
     * 食品许可证扩展：经营项目。
     */
    private String businessProject;

    private List<CertificateInstanceItemVO> itemList = new ArrayList<>();

    public static CertificateInstanceVO convert(CertificateInstanceEntity entity) {
        if (entity == null) {
            return null;
        }
        CertificateInstanceVO vo = new CertificateInstanceVO();
        vo.setId(entity.getId());
        vo.setType(entity.getCertificateType());
        vo.setTemplateId(entity.getTemplateId());
        vo.setSubjectType(entity.getSubjectType());
        vo.setSubjectId(entity.getSubjectId());
        vo.setCertificateNo(entity.getCertificateNo());
        vo.setIssueDate(entity.getIssueDate());
        vo.setExpireDate(entity.getExpireDate());
        vo.setIsLongTerm(entity.getIsLongTerm());
        vo.setStatus(entity.getStatus());
        vo.setCertificateImage(entity.getCertificateImage());
        return vo;
    }
}
