package com.persagy.calendar.service;

import java.util.List;

import com.persagy.calendar.pojo.dto.OldWorkCalendar;
import com.persagy.calendar.pojo.old.OldCalendarIntervalCreateVO;
import com.persagy.calendar.pojo.old.OldCalendarIntervalDeleteVO;
import com.persagy.calendar.pojo.old.OldCalendarIntervalsByTag;
import com.persagy.calendar.pojo.old.OldCalendarRuleCreateVO;
import com.persagy.calendar.pojo.old.OldCalendarRuleDeleteVO;
import com.persagy.calendar.pojo.old.OldCalendarRuleVO;
import com.persagy.calendar.pojo.old.OldCalendarTagVO;

/**
 * 老版服务接口
 * 
 * @version 1.0.0
 * @company persagy 
 * @author zhangqiankun
 * @date 2020-10-03 13:54:22
 */
public interface OldWorkCalendarDateService {
	
	/**
	 * 查询工作历详情
	 * @param oldWorkCalendar
	 * @return
	 */
	List<OldWorkCalendar> queryOldCalendarList(OldWorkCalendar oldWorkCalendar);

	/**
	 * 创建老版规则信息
	 * @param requestData
	 * @return
	 */
	boolean createOldCalendarRule(OldCalendarRuleVO<OldCalendarRuleCreateVO> requestData);

	/**
	 * 删除老版规则信息
	 * @param requestData
	 * @return
	 */
	boolean deleteOldCalendarRule(OldCalendarRuleVO<OldCalendarRuleDeleteVO> requestData);

	/**
	 * 修改老版规则信息
	 * @param requestData
	 * @return
	 */
	boolean updateOldCalendarRule(OldCalendarRuleCreateVO requestData);
	
	/**
	 * 查询规则信息
	 * @param requestData
	 */
	List<OldWorkCalendar> queryOldCalendarRuleList(String id, String tag, String groupId);
	
	/**
	 * 设置作息日期
	 * @param id 工作历ID
	 * @param tags
	 * @return
	 */
	boolean setTags(String id, List<OldCalendarTagVO> tags);

	/**
	 * 删除作息日期
	 * @param id 工作历ID
	 * @param tags
	 * @return
	 */
	boolean unsetTags(String id, List<OldCalendarTagVO> tags);

	/**
	 * 设置作息时段 from - to 和 已录入的作息日期相同
	 * @param id 工作历ID
	 * @param intervals
	 * @return
	 */
	boolean setIntervals(String id, List<OldCalendarIntervalCreateVO> intervals);
	
	/**
	 * 删除作息时间段
	 * @param id 工作历ID
	 * @param intervals
	 * @return
	 */
	boolean unsetIntervals(String id, List<OldCalendarIntervalDeleteVO> intervals);
	
	/**
	 * 根据Tag设置作息时间段
	 * @param requestData
	 * @return
	 */
	boolean setIntervalsByTag(OldCalendarIntervalsByTag requestData);
	
}

