package com.njcn.rdms.module.project.service.personal;

import com.njcn.rdms.framework.common.pojo.PageResult;
import com.njcn.rdms.module.project.controller.admin.personal.vo.item.PersonalItemPageReqVO;
import com.njcn.rdms.module.project.controller.admin.personal.vo.item.PersonalItemRespVO;
import com.njcn.rdms.module.project.controller.admin.personal.vo.item.PersonalItemSaveReqVO;
import com.njcn.rdms.module.project.controller.admin.personal.vo.item.PersonalItemStatusActionReqVO;
import com.njcn.rdms.module.project.controller.admin.project.task.vo.worklog.TaskWorklogPageReqVO;
import com.njcn.rdms.module.project.controller.admin.project.task.vo.worklog.TaskWorklogRespVO;
import com.njcn.rdms.module.project.controller.admin.project.task.vo.worklog.TaskWorklogSaveReqVO;

import java.util.List;

public interface PersonalItemService {

    Long createItem(PersonalItemSaveReqVO reqVO);

    void updateItem(Long id, PersonalItemSaveReqVO reqVO);

    PersonalItemRespVO getItemRespVO(Long id);

    PageResult<PersonalItemRespVO> getItemRespVOPage(PersonalItemPageReqVO reqVO);

    void changeStatus(Long id, PersonalItemStatusActionReqVO reqVO);

    Long createWorklog(Long id, TaskWorklogSaveReqVO reqVO);

    PageResult<TaskWorklogRespVO> getWorklogPage(Long id, TaskWorklogPageReqVO reqVO);

    void updateWorklog(Long id, Long worklogId, TaskWorklogSaveReqVO reqVO);

    void deleteWorklog(Long id, Long worklogId);

    void deleteWorklogs(Long id, List<Long> ids);

    void deleteItem(Long id);

    void deleteItems(List<Long> ids);

    void relateExecution(List<Long> itemIds, Long executionId);
}
