using System.Text.Json.Serialization;
using TakeoutSaaS.Domain.Merchants.Enums;
using TakeoutSaaS.Shared.Abstractions.Serialization;
namespace TakeoutSaaS.Application.App.Stores.Dto;
///
/// 员工排班 DTO。
///
public sealed record StoreEmployeeShiftDto
{
///
/// 排班 ID。
///
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long Id { get; init; }
///
/// 租户 ID。
///
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long TenantId { get; init; }
///
/// 门店 ID。
///
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long StoreId { get; init; }
///
/// 员工 ID。
///
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long StaffId { get; init; }
///
/// 班次日期。
///
public DateTime ShiftDate { get; init; }
///
/// 开始时间。
///
public TimeSpan StartTime { get; init; }
///
/// 结束时间。
///
public TimeSpan EndTime { get; init; }
///
/// 排班角色。
///
public StaffRoleType RoleType { get; init; }
///
/// 备注。
///
public string? Notes { get; init; }
///
/// 创建时间。
///
public DateTime CreatedAt { get; init; }
}