using Hotline.Share.Requests;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hotline.Share.Dtos.Schedulings
{
	public class SchedulingDto : BaseDto 
	{
		/// <summary>
		/// 排班人员ID
		/// </summary>
		public string? SchedulingUserId { get; set; }

		/// <summary>
		/// 排班人员名称
		/// </summary>
		public string? SchedulingUserName { get; set; }

		/// <summary>
		/// 
		/// </summary>
		public SchedulingUserDto SchedulingUser { get; set; }

		/// <summary>
		/// 
		/// </summary>
		public SchedulingShiftDto SchedulingShift { get; set; }

		/// <summary>
		/// 班次名称
		/// </summary>
		public string? ShiftId { get; set; }

		/// <summary>
		/// 班次名称
		/// </summary>
		public string? ShiftName { get; set; }

		/// <summary>
		/// 上班时间
		/// </summary>
		public TimeSpan? WorkingTime { get; set; }

		/// <summary>
		/// 下班时间
		/// </summary>
		public TimeSpan? OffDutyTime { get; set; }

		/// <summary>
		/// 排班时间
		/// </summary>
		public DateTime? SchedulingTime { get; set; }
	}
	public class AddDto
	{
		public List<string> UserIds { get; set; }

		/// <summary>
		/// 班次名称
		/// </summary>
		public string? ShiftId { get; set; }

		/// <summary>
		/// 班次名称
		/// </summary>
		public string? ShiftName { get; set; }

		/// <summary>
		/// 排班时间
		/// </summary>
		public DateTime? SchedulingTime { get; set; }

		/// <summary>
		/// 排班开始时间
		/// </summary>
		public DateTime? SchedulingStartTime { get; set; }

		/// <summary>
		/// 排班结束时间
		/// </summary>
		public DateTime? SchedulingEndTime { get; set; }
	}
	public class UpdateDto : AddDto
	{
		public string? Id { get; set; }
	}

	public class DeleteDto
	{
		public List<string> Ids { get; set; }
	}

	public class BaseDto 
	{
		public DateTime? LastModificationTime { get; set; }

		public bool IsDeleted { get; set; }

		/// <summary>
		/// 删除时间
		/// </summary>
		public DateTime? DeletionTime { get; set; }


		/// <summary>
		/// 创建时间
		/// </summary>
		public DateTime CreationTime { get; set; }

		public string Id { get; set; }

		/// <summary>
		/// 组织Id
		/// </summary>
		public string? CreatorOrgId { get; set; }


		public string? CreatorOrgName { get; set; }

		/// <summary>
		/// 创建人
		/// </summary>
		public string? CreatorId { get; set; }

		public string? CreatorName { get; set; }
	}

	public record ListDto : PagedKeywordRequest
	{
		/// <summary>
		/// 开始时间
		/// </summary>
		public DateTime? StartTime { get; set; }

		/// <summary>
		/// 结束时间
		/// </summary>
		public DateTime? EndTime { get; set; }
	}

	public record DataDto { 
	
		/// <summary>
		/// 时间
		/// </summary>
		public DateTime Time { get; set; }
	}
}
