Files
TakeoutSaaS.TenantApi/src/Api/TakeoutSaaS.TenantApi/Contracts/Store/StoreHoursContracts.cs
MSuMshk 1b185af718
All checks were successful
Build and Deploy TenantApi / build-and-deploy (push) Successful in 46s
feat: 完成门店管理剩余接口并补齐文档注释
2026-02-17 14:54:35 +08:00

230 lines
4.9 KiB
C#

namespace TakeoutSaaS.TenantApi.Contracts.Store;
/// <summary>
/// 时段类型。
/// </summary>
public enum StoreHourSlotType
{
/// <summary>
/// 营业时段。
/// </summary>
Business = 1,
/// <summary>
/// 配送时段。
/// </summary>
Delivery = 2,
/// <summary>
/// 自提时段。
/// </summary>
Pickup = 3
}
/// <summary>
/// 特殊日期类型。
/// </summary>
public enum StoreHolidayType
{
/// <summary>
/// 休息日。
/// </summary>
Closed = 1,
/// <summary>
/// 特殊营业日。
/// </summary>
Special = 2
}
/// <summary>
/// 时段 DTO。
/// </summary>
public sealed class StoreHourTimeSlotDto
{
/// <summary>
/// Id。
/// </summary>
public string Id { get; set; } = string.Empty;
/// <summary>
/// Type。
/// </summary>
public int Type { get; set; }
/// <summary>
/// StartTime。
/// </summary>
public string StartTime { get; set; } = string.Empty;
/// <summary>
/// EndTime。
/// </summary>
public string EndTime { get; set; } = string.Empty;
/// <summary>
/// Capacity。
/// </summary>
public int? Capacity { get; set; }
/// <summary>
/// Remark。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 每日营业时间 DTO。
/// </summary>
public sealed class StoreHourDayHoursDto
{
/// <summary>
/// DayOfWeek。
/// </summary>
public int DayOfWeek { get; set; }
/// <summary>
/// IsOpen。
/// </summary>
public bool IsOpen { get; set; }
/// <summary>
/// Slots。
/// </summary>
public List<StoreHourTimeSlotDto> Slots { get; set; } = [];
}
/// <summary>
/// 特殊日期 DTO。
/// </summary>
public sealed class StoreHourHolidayDto
{
/// <summary>
/// Id。
/// </summary>
public string Id { get; set; } = string.Empty;
/// <summary>
/// StartDate。
/// </summary>
public string StartDate { get; set; } = string.Empty;
/// <summary>
/// EndDate。
/// </summary>
public string EndDate { get; set; } = string.Empty;
/// <summary>
/// Type。
/// </summary>
public int Type { get; set; }
/// <summary>
/// StartTime。
/// </summary>
public string? StartTime { get; set; }
/// <summary>
/// EndTime。
/// </summary>
public string? EndTime { get; set; }
/// <summary>
/// Reason。
/// </summary>
public string Reason { get; set; } = string.Empty;
/// <summary>
/// Remark。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 门店营业时间聚合。
/// </summary>
public sealed class StoreHoursDto
{
/// <summary>
/// StoreId。
/// </summary>
public string StoreId { get; set; } = string.Empty;
/// <summary>
/// WeeklyHours。
/// </summary>
public List<StoreHourDayHoursDto> WeeklyHours { get; set; } = [];
/// <summary>
/// Holidays。
/// </summary>
public List<StoreHourHolidayDto> Holidays { get; set; } = [];
}
/// <summary>
/// 保存每周时段请求。
/// </summary>
public sealed class SaveWeeklyHoursRequest
{
/// <summary>
/// StoreId。
/// </summary>
public string StoreId { get; set; } = string.Empty;
/// <summary>
/// WeeklyHours。
/// </summary>
public List<StoreHourDayHoursDto> WeeklyHours { get; set; } = [];
}
/// <summary>
/// 保存特殊日期请求。
/// </summary>
public sealed class SaveHolidayRequest
{
/// <summary>
/// StoreId。
/// </summary>
public string StoreId { get; set; } = string.Empty;
/// <summary>
/// Holiday。
/// </summary>
public StoreHourHolidayDto Holiday { get; set; } = new();
}
/// <summary>
/// 删除特殊日期请求。
/// </summary>
public sealed class DeleteHolidayRequest
{
/// <summary>
/// Id。
/// </summary>
public string Id { get; set; } = string.Empty;
}
/// <summary>
/// 复制营业时间请求。
/// </summary>
public sealed class CopyStoreHoursRequest
{
/// <summary>
/// SourceStoreId。
/// </summary>
public string SourceStoreId { get; set; } = string.Empty;
/// <summary>
/// TargetStoreIds。
/// </summary>
public List<string> TargetStoreIds { get; set; } = [];
/// <summary>
/// IncludeWeeklyHours。
/// </summary>
public bool? IncludeWeeklyHours { get; set; }
/// <summary>
/// IncludeHolidays。
/// </summary>
public bool? IncludeHolidays { get; set; }
}
/// <summary>
/// 复制结果。
/// </summary>
public sealed class CopyStoreHoursResult
{
/// <summary>
/// CopiedCount。
/// </summary>
public int CopiedCount { get; set; }
/// <summary>
/// IncludeWeeklyHours。
/// </summary>
public bool IncludeWeeklyHours { get; set; }
/// <summary>
/// IncludeHolidays。
/// </summary>
public bool IncludeHolidays { get; set; }
}