package com.izouma.uwip.domain;

import com.izouma.uwip.enums.ApplyStatus;
import com.izouma.uwip.enums.PatentType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.time.LocalDate;

@AllArgsConstructor
@Data
@Builder
@NoArgsConstructor
@ApiModel(value = "专利申请")
public class Patent extends BaseEntity {
//    private String workflow;

    @ApiModelProperty(value = "专利名称")
    private String name;

    private ApplyStatus status;

    @ApiModelProperty(value = "专利类型")
    @Enumerated(EnumType.STRING)
    private PatentType type;

    /*
    客户编码（由客户经理填写）+年份+案件类型+连接符+案件阶段[+国家]+序列号
     */
    @ApiModelProperty(value = "寰球案号")
    private String uwNo;

    @ApiModelProperty(value = "客户id")
    private Long clientPartnerId;

    @ApiModelProperty(value = "供应商")
    private Long supplierPartnerId;

    @ApiModelProperty(value = "供应商案号")
    private String supplierNo;

    @ApiModelProperty(value = "供应商提交期限")
    private LocalDate supplierSubmitPeriod;

    @ApiModelProperty(value = "申请人名称")
    private String applicantName;

    @ApiModelProperty(value = "申请人英文名称")
    private String applicantEnName;

    @ApiModelProperty(value = "申请人地址")
    private String applicantAddress;

    @ApiModelProperty(value = "申请人英文地址")
    private String applicantEnAddress;

    @ApiModelProperty(value = "发明人名称")
    private String inventorName;

    @ApiModelProperty(value = "发明人英文名称")
    private String inventorEnName;

    @ApiModelProperty(value = "优先权号")
    private String priorityNo;

    @ApiModelProperty(value = "优先权日")
    private LocalDate priorityDate;

    @ApiModelProperty(value = "优先权国别")
    private String priorityCountry;

    @ApiModelProperty(value = "提交期限/内部期限")
    private LocalDate submitPeriod;

    /*
    =优先权日+30个月
     */
    @ApiModelProperty(value = "官方期限")
    private LocalDate officialPeriod;

    @ApiModelProperty(value = "申请号")
    private String applyNo;

    @ApiModelProperty(value = "申请日")
    private LocalDate applyDate;



}
