package com.jeesite.modules.sys.entity.schedule;

import javax.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 日程表Entity
 * @author Q
 * @version 2022-05-31
 */
@Table(name="${_prefix}sys_schedule", alias="a", label="日程表信息", columns={
		@Column(name="id", attrName="id", label="id", isPK=true),
		@Column(name="f_schedulename", attrName="fschedulename", label="日程名称"),
		@Column(name="f_schedulecontent", attrName="fschedulecontent", label="日程内容", isQuery=false),
		@Column(name="f_category", attrName="fcategory", label="类别"),
		@Column(name="f_startdate", attrName="fstartdate", label="开始日期"),
		@Column(name="f_starttime", attrName="fstarttime", label="开始时间", isQuery=false),
		@Column(name="f_enddate", attrName="fenddate", label="结束日期"),
		@Column(name="f_endtime", attrName="fendtime", label="结束时间", isQuery=false),
		@Column(name="f_early", attrName="fearly", label="提前提醒", isQuery=false, isUpdateForce=true),
		@Column(name="f_ismailalert", attrName="fismailalert", label="邮件提醒", isQuery=false, isUpdateForce=true),
		@Column(name="f_ismobilealert", attrName="fismobilealert", label="手机提醒", isQuery=false, isUpdateForce=true),
		@Column(name="f_iswechatalert", attrName="fiswechatalert", label="微信提醒", isQuery=false, isUpdateForce=true),
		@Column(name="f_schedulestate", attrName="fschedulestate", label="日程状态", isQuery=false, isUpdateForce=true),
		@Column(name="f_sortcode", attrName="fsortcode", label="排序码", isQuery=false, isUpdateForce=true),
		@Column(name="f_deletemark", attrName="fdeletemark", label="删除标记", isQuery=false, isUpdateForce=true),
		@Column(name="f_enabledmark", attrName="fenabledmark", label="有效标志", isQuery=false, isUpdateForce=true),
		@Column(name="f_description", attrName="fdescription", label="备注", isQuery=false),
		@Column(name="create_by", attrName="createBy", label="创建者", isUpdate=false, isQuery=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false),
		@Column(name="update_by", attrName="updateBy", label="更新者", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false),
	}, orderBy="a.update_date DESC"
)
public class Schedule extends DataEntity<Schedule> {
	
	private static final long serialVersionUID = 1L;
	private String fschedulename;		// 日程名称
	private String fschedulecontent;		// 日程内容
	private String fcategory;		// 类别
	private Date fstartdate;		// 开始日期
	private String fstarttime;		// 开始时间
	private Date fenddate;		// 结束日期
	private String fendtime;		// 结束时间
	private Long fearly;		// 提前提醒
	private Long fismailalert;		// 邮件提醒
	private Long fismobilealert;		// 手机提醒
	private Long fiswechatalert;		// 微信提醒
	private Long fschedulestate;		// 日程状态
	private Long fsortcode;		// 排序码
	private Long fdeletemark;		// 删除标记
	private Long fenabledmark;		// 有效标志
	private String fdescription;		// 备注
	
	public Schedule() {
		this(null);
	}
	
	public Schedule(String id){
		super(id);
	}
	
	@Size(min=0, max=255, message="日程名称长度不能超过 255 个字符")
	public String getFschedulename() {
		return fschedulename;
	}

	public void setFschedulename(String fschedulename) {
		this.fschedulename = fschedulename;
	}
	
	@Size(min=0, max=200, message="日程内容长度不能超过 200 个字符")
	public String getFschedulecontent() {
		return fschedulecontent;
	}

	public void setFschedulecontent(String fschedulecontent) {
		this.fschedulecontent = fschedulecontent;
	}
	
	@Size(min=0, max=50, message="类别长度不能超过 50 个字符")
	public String getFcategory() {
		return fcategory;
	}

	public void setFcategory(String fcategory) {
		this.fcategory = fcategory;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="开始日期不能为空")
	public Date getFstartdate() {
		return fstartdate;
	}

	public void setFstartdate(Date fstartdate) {
		this.fstartdate = fstartdate;
	}
	
	@Size(min=0, max=50, message="开始时间长度不能超过 50 个字符")
	public String getFstarttime() {
		return fstarttime;
	}

	public void setFstarttime(String fstarttime) {
		this.fstarttime = fstarttime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="结束日期不能为空")
	public Date getFenddate() {
		return fenddate;
	}

	public void setFenddate(Date fenddate) {
		this.fenddate = fenddate;
	}
	
	@Size(min=0, max=50, message="结束时间长度不能超过 50 个字符")
	public String getFendtime() {
		return fendtime;
	}

	public void setFendtime(String fendtime) {
		this.fendtime = fendtime;
	}
	
	public Long getFearly() {
		return fearly;
	}

	public void setFearly(Long fearly) {
		this.fearly = fearly;
	}
	
	public Long getFismailalert() {
		return fismailalert;
	}

	public void setFismailalert(Long fismailalert) {
		this.fismailalert = fismailalert;
	}
	
	public Long getFismobilealert() {
		return fismobilealert;
	}

	public void setFismobilealert(Long fismobilealert) {
		this.fismobilealert = fismobilealert;
	}
	
	public Long getFiswechatalert() {
		return fiswechatalert;
	}

	public void setFiswechatalert(Long fiswechatalert) {
		this.fiswechatalert = fiswechatalert;
	}
	
	public Long getFschedulestate() {
		return fschedulestate;
	}

	public void setFschedulestate(Long fschedulestate) {
		this.fschedulestate = fschedulestate;
	}
	
	public Long getFsortcode() {
		return fsortcode;
	}

	public void setFsortcode(Long fsortcode) {
		this.fsortcode = fsortcode;
	}
	
	public Long getFdeletemark() {
		return fdeletemark;
	}

	public void setFdeletemark(Long fdeletemark) {
		this.fdeletemark = fdeletemark;
	}
	
	public Long getFenabledmark() {
		return fenabledmark;
	}

	public void setFenabledmark(Long fenabledmark) {
		this.fenabledmark = fenabledmark;
	}
	
	@Size(min=0, max=200, message="备注长度不能超过 200 个字符")
	public String getFdescription() {
		return fdescription;
	}

	public void setFdescription(String fdescription) {
		this.fdescription = fdescription;
	}
	
}