package com.goafanti.common.model;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonFormat.Shape;
import com.goafanti.common.constant.AFTConstants;
import com.goafanti.common.utils.FileUtils;

public class OrgIntellectualProperty {
    private String id;

    private String uid;
    
    private String pid;

    /**
    * 知识产权编号
    */
    private String intellectualPropertyNumber;

    /**
    * 知识产权名称
    */
    private String intellectualPropertyName;

    /**
    * 排序号
    */
    private String sortNumber;

    /**
    * 类别
    */
    private Integer catagory;

    /**
    * 获得方式
    */
    private Integer obtainWay;

    /**
    * 授权号
    */
    private String authorizationNumber;

    /**
    * 授权日期
    */
    private Date authorizationDate;

    /**
    * 0--Ⅰ类, 1--Ⅱ类
    */
    private Integer evaluationCategory;
    
    /**
     * 知识产权URL
     */
    private String propertyRightUrl;
    
    /**
     * 专利或软著稿件URL
     */
    private Integer type;
    
    /**
     * 删除标记
     */
    private Integer deletedSign;

    public String getId() {
        return id;
    }

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

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getPid() {
		return pid;
	}

	public void setPid(String pid) {
		this.pid = pid;
	}

	public String getIntellectualPropertyNumber() {
        return intellectualPropertyNumber;
    }

    public void setIntellectualPropertyNumber(String intellectualPropertyNumber) {
        this.intellectualPropertyNumber = intellectualPropertyNumber;
    }

    public String getIntellectualPropertyName() {
        return intellectualPropertyName;
    }

    public void setIntellectualPropertyName(String intellectualPropertyName) {
        this.intellectualPropertyName = intellectualPropertyName;
    }

    public String getSortNumber() {
        return sortNumber;
    }

    public void setSortNumber(String sortNumber) {
        this.sortNumber = sortNumber;
    }
    
    @JsonFormat(shape = Shape.STRING)
    public Integer getCatagory() {
        return catagory;
    }

    public void setCatagory(Integer catagory) {
        this.catagory = catagory;
    }
    
    @JsonFormat(shape = Shape.STRING)
    public Integer getObtainWay() {
        return obtainWay;
    }

    public void setObtainWay(Integer obtainWay) {
        this.obtainWay = obtainWay;
    }

    public String getAuthorizationNumber() {
        return authorizationNumber;
    }

    public void setAuthorizationNumber(String authorizationNumber) {
        this.authorizationNumber = authorizationNumber;
    }

    public Date getAuthorizationDate() {
        return authorizationDate;
    }

    public void setAuthorizationDate(Date authorizationDate) {
        this.authorizationDate = authorizationDate;
    }
    
    
    

	public String getPropertyRightUrl() {
		return propertyRightUrl;
	}

	public void setPropertyRightUrl(String propertyRightUrl) {
		this.propertyRightUrl = propertyRightUrl;
	}
	
	


	public Integer getType() {
		return type;
	}

	public void setType(Integer type) {
		this.type = type;
	}

	@JsonIgnore
    public Integer getEvaluationCategory() {
        return evaluationCategory;
    }

    public void setEvaluationCategory(Integer evaluationCategory) {
        this.evaluationCategory = evaluationCategory;
    }
    
    @JsonIgnore
    public Integer getDeletedSign() {
		return deletedSign;
	}

	public void setDeletedSign(Integer deletedSign) {
		this.deletedSign = deletedSign;
	}

	public String getAuthorizationDateFormattedDate(){
		if (this.authorizationDate == null) {
			return null;
		} else {
			return DateFormatUtils.format(this.getAuthorizationDate(), AFTConstants.YYYYMMDD);
		}
	}
	
	public void setAuthorizationDateFormattedDate(String authorizationDateFormattedDate){
		
	}
	
	//知识产权证明
	public String getPropertyRightDownloadFileName(){
		if (StringUtils.isBlank(this.propertyRightUrl)){
			return null;
		} else {
			return (null == this.intellectualPropertyName) ? "" : this.intellectualPropertyName +FileUtils.getDownloadFileName(this.propertyRightUrl);
		}
	}
	
	public void setPropertyRightDownloadFileName(String propertyRightDownloadFileName){
		
	}
	
}