using Microsoft.AspNetCore.Http;
namespace OASystem.Domain.Dtos.Task
{
    public class GetTaskDefaultDto
    {
        public int TypeId { get; set; }
    }
    public class GetTaskListDto
    {
        public int UserId { get; set; }
        public int PageSize { get; set; }
        public int PageIndex { get; set; }
        public int TypeId { get; set; }
        public string Search_Name { get; set; }
        //public int Search_UserId { get; set; }
        public string Seach_StartTime { get; set; }
        public string Seach_EndTime { get; set; }
        public int isLv { get; set; } = 0;
    }
    public class TaskOperationDto
    {
        public int Id { get; set; }
        public int CreateUserId { get; set; }
        /// 
        /// 工单名称
        /// 
        public string Name { get; set; }
        /// 
        /// 任务开始时间
        /// 
        public string StartTime { get; set; }
        /// 
        /// 所属团组ID
        /// 
        public int GroupId { get; set; }
        /// 
        /// 指派用户ID
        /// 
        public int AssignedUserId { get; set; }
        /// 
        /// 外办选项ID
        /// 
        public int ForeignOptionId { get; set; }
        /// 
        /// 部门类型
        /// 
        public int TypeId { get; set; }
        /// 
        /// 步骤索引
        /// 
        public int Action { get; set; }
        public List Tasks { get; set; }
    }
    public class TaskInitDto
    {
        public int TypeId { get; set; }
    }
    public class TaskDetailDto
    {
        public int Id { get; set; }
    }
    public class WorkTaskView
    {
        public int Id { get; set; }
        /// 
        /// 任务名称
        /// 
        public string Name { get; set; }
        /// 
        /// 优先级ID
        /// 
        public int PriorityId { get; set; }
        /// 
        /// 是否加急
        /// 
        public bool IsUrgent { get; set; }
        /// 
        /// 指派用户ID
        /// 
        public int AssignedUserId { get; set; }
        /// 
        /// 任务开始时间
        /// 
        public DateTime StartTime { get; set; }
        /// 
        /// 任务结束时间
        /// 
        public DateTime? EndTime { get; set; }
        /// 
        /// 任务耗时(小时数)
        /// 
        public double? DurationHours { get; set; }
        /// 
        /// 是否为额外任务
        /// 
        public bool IsExtraTask { get; set; }
        /// 
        /// 工单主表ID
        /// 
        public int WorkOrderId { get; set; }
        public int Sort { get; set; }
        public string Remark { get; set; }
    }
    public class WorkOrdeView
    {
        public int Id { get; set; }
        public string TaskName { get; set; }
        public string StartTime { get; set; }
        public string Team { get; set; }
        public string Assignee { get; set; }
        public string ExternalOption { get; set; }
        public StepInfo StepInfo { get; set; }
        public bool isReview { get; set; }
        public int UrgentCount { get; set; }
    }
    public class StepInfo
    {
        public int Active { get; set; }
        public List Steps { get; set; }
        public int ExtraActive { get; set; }
        public List ExtraStep { get; set; }
    }
    public class Steps
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
    public class ExtraSteps : Steps
    {
        public int Approved { get; set; }
    }
    public class GetWorkTaskReceiptDto
    {
        public int OrderId { get; set; }
        public int TaskId { get; set; }
        /// 
        /// 审核状态 0未审核 1通过 -1未通过
        /// 
        //public int IsApproved { get; set; }
    }
    public class WorkTaskReceiptView
    {
        public int Id { get; set; }
        /// 
        /// 工单主表ID
        /// 
        public int WorkOrderId { get; set; }
        /// 
        /// 任务ID
        /// 
        public int WorkTaskId { get; set; }
        /// 
        /// 任务是否完成
        /// 
        public int IsCompleted { get; set; }
        /// 
        /// 相关内容
        /// 
        public string Content { get; set; }
        /// 
        /// 文件路径
        /// 
        public string FilePath { get; set; }
        /// 
        /// 是否通过审核
        /// 
        public int IsApproved { get; set; }
        /// 
        /// 未通过审核原因
        /// 
        public string RejectReason { get; set; }
        public string Remark { get; set; }
    }
    public class SubmitWorkTaskReceiptDto
    {
        /// 
        /// 工单主表ID
        /// 
        public int WorkOrderId { get; set; }
        /// 
        /// 任务ID
        /// 
        public int WorkTaskId { get; set; }
        /// 
        /// 任务是否完成
        /// 
        public int IsCompleted { get; set; }
        /// 
        /// 相关内容
        /// 
        public string Content { get; set; }
        /// 
        /// 文件
        /// 
        public List Files { get; set; }
        public int UserId { get; set; }
    }
    public class SubmitWorkTaskNotRecord
    {
        public int UserId { get; set; }
        /// 
        /// 工单主表ID
        /// 
        public int WorkOrderId { get; set; }
        /// 
        /// 任务ID
        /// 
        public int WorkTaskId { get; set; }
    }
    /// 
    /// 软删除工作订单DTO
    /// 
    public class SoftDeleteWorkOrderDto
    {
        /// 
        /// 工作订单ID
        /// 
        public int WorkOrderId { get; set; }
        /// 
        /// 操作用户ID
        /// 
        public int UserId { get; set; }
    }
    public class AuditWorkTaskReceiptDto
    {
        /// 
        /// 回执单Id
        /// 
        public int ReceiptId { get; set; }
        /// 
        /// 审核人Id
        /// 
        public int ApproverId { get; set; }
        // 1通过 -1驳回
        public int Approve { get; set; }
        // 驳回原因(驳回时必填)
        public string? RejectReason { get; set; }
    }
}