/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.workcalendar.entity;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.jeeplus.modules.sys.entity.Office;

import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.User;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 工作日历Entity
 * @author ssrh
 * @version 2018-07-17
 */
public class WorkCalendar extends DataEntity<WorkCalendar> {
	
	private static final long serialVersionUID = 1L;
	private String subject;		// 主       题
	private String address;		// 地      点
	private String content;		// 内       容
	private Date startDate;		// 开始日期
	private Date endDate;		// 结束日期
	private String repeatType;		// 重复类型
	private String repeatDate;		// 重复日期
	private String remind;		// 是否提醒
    @DateTimeFormat(pattern = "HH:mm")
	private Date remindTime;		// 提醒时间
	private Date nextRemindTime;
	private String sendDaily;		// 发送日常事务
	private Office office;		// 部门
	private Office company;		// 公司
    private List<User> userList; //日历共享人
    private String weekDay;
    private String monthDay;

	public WorkCalendar() {
		super();
	}

	public WorkCalendar(String id){
		super(id);
	}

	@ExcelField(title="主       题", align=2, sort=7)
	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}
	
	@ExcelField(title="地      点", align=2, sort=8)
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	@ExcelField(title="内       容", align=2, sort=9)
	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="开始日期不能为空")
	@ExcelField(title="开始日期", align=2, sort=10)
	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="结束日期", align=2, sort=11)
	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}
	
	@ExcelField(title="重复类型", dictType="", align=2, sort=12)
	public String getRepeatType() {
		return repeatType;
	}

	public void setRepeatType(String repeatType) {
		this.repeatType = repeatType;
	}
	
	@ExcelField(title="重复日期", align=2, sort=13)
	public String getRepeatDate() {
		return repeatDate;
	}

	public void setRepeatDate(String repeatDate) {
		this.repeatDate = repeatDate;
	}
	
	@ExcelField(title="是否提醒", dictType="", align=2, sort=14)
	public String getRemind() {
		return remind;
	}

	public void setRemind(String remind) {
		this.remind = remind;
	}
	
	@ExcelField(title="提醒时间", align=2, sort=15)
	public Date getRemindTime() {
		return remindTime;
	}

	public void setRemindTime(Date remindTime) {
		this.remindTime = remindTime;
	}
	
	@ExcelField(title="发送日常事务", align=2, sort=16)
	public String getSendDaily() {
		return sendDaily;
	}

	public void setSendDaily(String sendDaily) {
		this.sendDaily = sendDaily;
	}
	
	@ExcelField(title="部门", align=2, sort=17)
	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}
	
	@ExcelField(title="公司", align=2, sort=18)
	public Office getCompany() {
		return company;
	}

	public void setCompany(Office company) {
		this.company = company;
	}

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

    public String getWeekDay() {
        return weekDay;
    }

    public void setWeekDay(String weekDay) {
        this.weekDay = weekDay;
    }

    public String getMonthDay() {
        return monthDay;
    }

    public void setMonthDay(String monthDay) {
        this.monthDay = monthDay;
    }

    public Date getNextRemindTime() {
        return nextRemindTime;
    }

    public void setNextRemindTime(Date nextRemindTime) {
        this.nextRemindTime = nextRemindTime;
    }
}