package com.ruoyi.web.modules.prosperity.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 共同富裕项目 biz_common_prosperity_project
 */
public class BizCommonProsperityProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    @NotBlank(message = "项目名称不能为空")
    @Size(min = 1, max = 64, message = "项目名称长度为1到64个字符")
    private String projectName;

    @NotNull(message = "项目类型不能为空")
    private Integer projectType;

    /** 选填 */
    @Size(max = 50, message = "项目简介长度不能超过50个字符")
    private String introduction;

    /** 选填 */
    @Size(max = 500, message = "建设规模及内容长度不能超过500个字符")
    private String projectContent;

    /** 投资金额（万元） */
    private BigDecimal investmentAmount;

    @NotNull(message = "实施年限不能为空")
    private Integer implYear;

    /** 实施情况（选填） */
    @Size(max = 500, message = "实施情况长度不能超过500个字符")
    private String implStatus;

    private String videoFileUrl;

    private String videoFilePath;

    private String coverFileUrl;

    private String coverFilePath;

    /** 0 未发布 1 已发布 */
    private Integer publishStatus;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date offlineTime;

    /** 列表：运营图片数量 */
    private Integer opImageCount;

    /** 详情/保存：运营图片（非表字段） */
    private List<BizCommonProsperityProjectOpImage> operationImages;

    public Long getId()
    {
        return id;
    }

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

    public String getProjectName()
    {
        return projectName;
    }

    public void setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public Integer getProjectType()
    {
        return projectType;
    }

    public void setProjectType(Integer projectType)
    {
        this.projectType = projectType;
    }

    public String getIntroduction()
    {
        return introduction;
    }

    public void setIntroduction(String introduction)
    {
        this.introduction = introduction;
    }

    public String getProjectContent()
    {
        return projectContent;
    }

    public void setProjectContent(String projectContent)
    {
        this.projectContent = projectContent;
    }

    public BigDecimal getInvestmentAmount()
    {
        return investmentAmount;
    }

    public void setInvestmentAmount(BigDecimal investmentAmount)
    {
        this.investmentAmount = investmentAmount;
    }

    public Integer getImplYear()
    {
        return implYear;
    }

    public void setImplYear(Integer implYear)
    {
        this.implYear = implYear;
    }

    public String getImplStatus()
    {
        return implStatus;
    }

    public void setImplStatus(String implStatus)
    {
        this.implStatus = implStatus;
    }

    public String getVideoFileUrl()
    {
        return videoFileUrl;
    }

    public void setVideoFileUrl(String videoFileUrl)
    {
        this.videoFileUrl = videoFileUrl;
    }

    public String getVideoFilePath()
    {
        return videoFilePath;
    }

    public void setVideoFilePath(String videoFilePath)
    {
        this.videoFilePath = videoFilePath;
    }

    public String getCoverFileUrl()
    {
        return coverFileUrl;
    }

    public void setCoverFileUrl(String coverFileUrl)
    {
        this.coverFileUrl = coverFileUrl;
    }

    public String getCoverFilePath()
    {
        return coverFilePath;
    }

    public void setCoverFilePath(String coverFilePath)
    {
        this.coverFilePath = coverFilePath;
    }

    public Integer getPublishStatus()
    {
        return publishStatus;
    }

    public void setPublishStatus(Integer publishStatus)
    {
        this.publishStatus = publishStatus;
    }

    public Date getPublishTime()
    {
        return publishTime;
    }

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

    public Date getOfflineTime()
    {
        return offlineTime;
    }

    public void setOfflineTime(Date offlineTime)
    {
        this.offlineTime = offlineTime;
    }

    public Integer getOpImageCount()
    {
        return opImageCount;
    }

    public void setOpImageCount(Integer opImageCount)
    {
        this.opImageCount = opImageCount;
    }

    public List<BizCommonProsperityProjectOpImage> getOperationImages()
    {
        return operationImages;
    }

    public void setOperationImages(List<BizCommonProsperityProjectOpImage> operationImages)
    {
        this.operationImages = operationImages;
    }
}
