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

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 = 20, message = "项目名称长度为1到20个字符")
    private String projectName;

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

    @NotBlank(message = "项目简介不能为空")
    @Size(min = 1, max = 50, message = "项目简介长度为1到50个字符")
    private String introduction;

    @NotBlank(message = "项目内容不能为空")
    @Size(min = 1, max = 500, message = "项目内容长度为1到500个字符")
    private String projectContent;

    @NotNull(message = "实施开始日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date implStartDate;

    @NotNull(message = "实施结束日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date implEndDate;

    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 Date getImplStartDate()
    {
        return implStartDate;
    }

    public void setImplStartDate(Date implStartDate)
    {
        this.implStartDate = implStartDate;
    }

    public Date getImplEndDate()
    {
        return implEndDate;
    }

    public void setImplEndDate(Date implEndDate)
    {
        this.implEndDate = implEndDate;
    }

    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;
    }
}
