using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Dtos.PersonnelModule
{
    public class TaskAllocationDto
    {
    }

    /// <summary>
    /// 任务分配 Init Dto
    /// </summary>
    public class TaskAllocationInitDto : UserPageFuncDtoBase
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public new int UserId { get; set; }

    }

    /// <summary>
    /// 任务分配 Page
    /// </summary>
    public class TaskAllocationPageDto : UserPageFuncDtoBase
    {
        public int PageIndex { get; set; } = 1;
        public int PageSize { get; set; } = 10;

        /// <summary>
        /// 数据类型
        /// 0 全部 1 由我指派 2 指派给我
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 任务状态
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 任务名称
        /// </summary>
        public string? TaskName { get; set; }

        public string GroupNames { get; set; }
    }

    /// <summary>
    /// 任务分配 Details Dto
    /// </summary>
    public class TaskAllocationDetailsDto : UserPageFuncDtoBase
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }
    }

    /// <summary>
    /// 任务分配 AddOrEdit Dto
    /// </summary>
    public class TaskAllocationAddOrEditDto : UserPageFuncDtoBase
    {
        /// <summary>
        /// Id
        /// Id == 0 添加
        /// Id > 0 修改
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 部门Id
        /// </summary>
        public int DepId { get; set; }

        /// <summary>
        /// 团组Id
        /// </summary>
        public int DiId { get; set; }

        /// <summary>
        /// 优先级
        /// 1 2 3 4
        /// </summary>
        public int TaskPriority { get; set; }

        /// <summary>
        /// 任务名称
        /// </summary>
        public string? TaskName { get; set; }

        /// <summary>
        /// 任务内容
        /// </summary>
        public string? TaskContent { get; set; }

        /// <summary>
        /// 指派人员
        /// </summary>
        public List<int>? UserIds { get; set; }

        /// <summary>
        /// 任务预计开始时间(由发布者设置开始时间)
        /// </summary>
        public string? PredictBeginTime { get; set; }

        /// <summary>
        /// 任务预计结束时间(由发布者设置结束时间)
        /// </summary>
        public string? PredictEndTime { get; set; }

        /// <summary>
        /// 0 否 1 是  
        /// 是否纳入绩效考核
        /// </summary>
        public int IsIntoPerformance { get; set; } = 0;
    }

    //

    /// <summary>
    /// 任务分配 
    /// 任务归属人 状态操作
    /// </summary>
    public class TaskerDetailsDto
    {
        public int Id { get; set; }

    }

    /// <summary>
    /// 任务分配 
    /// 任务归属人 状态操作
    /// </summary>
    public class TaskerStatusDto
    {

        public int UserId { get; set; }

        public int Id { get; set; }

    }

    /// <summary>
    /// 任务分配 
    /// 任务确认完成 
    /// </summary>
    public class TaskAllocationConfirmCompletionDto : UserPageFuncDtoBase
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

    }

    /// <summary>
    /// 任务分配 
    /// 任务状态更改
    /// </summary>
    public class TaskAllocationStatusDto
    {
        /// <summary>
        /// Id
        /// </summary>
        public int SubId { get; set; }

    }

    /// <summary>
    /// 任务分配 
    /// 任务状态更改
    /// </summary>
    public class TaskAllocationSetUnFinishedStatusDto: TaskAllocationStatusDto
    {
        /// <summary>
        /// 未完成原因
        /// </summary>
        public string Cause { get; set; }

    }

    /// <summary>
    /// 任务分配 
    /// 任务评分
    /// </summary>
    public class TaskAllocationScoreDto : UserPageFuncDtoBase
    {
        public int SubId { get; set; }

        public int Score { get; set; }

        public string ScoreRemark { get; set; }

    }

    public class ScoreInfo
    {
        
    }
}