package cn.teammodel.service;

import cn.teammodel.model.dto.admin.weekduty.AdminFindDutyRecordDto;
import cn.teammodel.model.dto.weekDuty.*;
import cn.teammodel.model.entity.weekDuty.WeekDuty;
import cn.teammodel.model.vo.weekDuty.DutyRecordVo;

import java.util.List;

/**
 * @author winter
 * @create 2024-01-03 10:07
 */
public interface DutyService {
    WeekDuty insertNode(InsertDutyNodeDto insertDutyNodeDto);

    WeekDuty getTree();

    WeekDuty deleteNode(DeleteDutyNodeDto deleteDutyNodeDto);

    WeekDuty updateNode(UpdateDutyNodeDto updateDutyNodeDto);

    void vote(DutyVoteDto dutyVoteDto);

    List<WeekDuty.DutySpot> insertSpot(InsertSpotDto insertSpotDto);

    List<WeekDuty.DutySpot> deleteSpot(String id);

    List<DutyRecordVo> findRecords(FindDutyRecordDto findDutyRecordDto);

    void recallVote(RecallDutyVoteDto recallDutyVoteDto);

    List<DutyRecordVo> findAdminRecords(AdminFindDutyRecordDto adminFindDutyRecordDto);
}
