feat: migrate snowflake ids and refresh migrations
This commit is contained in:
@@ -11,7 +11,7 @@ public sealed class MetricAlertRule : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 关联指标。
|
||||
/// </summary>
|
||||
public Guid MetricDefinitionId { get; set; }
|
||||
public long MetricDefinitionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 触发条件 JSON。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class MetricSnapshot : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 指标定义 ID。
|
||||
/// </summary>
|
||||
public Guid MetricDefinitionId { get; set; }
|
||||
public long MetricDefinitionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 维度键(JSON)。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class Coupon : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 模板标识。
|
||||
/// </summary>
|
||||
public Guid CouponTemplateId { get; set; }
|
||||
public long CouponTemplateId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 券码或序列号。
|
||||
@@ -21,12 +21,12 @@ public sealed class Coupon : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 归属用户。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单 ID(已使用时记录)。
|
||||
/// </summary>
|
||||
public Guid? OrderId { get; set; }
|
||||
public long? OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class ChatMessage : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 会话标识。
|
||||
/// </summary>
|
||||
public Guid ChatSessionId { get; set; }
|
||||
public long ChatSessionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发送方类型。
|
||||
@@ -21,7 +21,7 @@ public sealed class ChatMessage : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 发送方用户 ID。
|
||||
/// </summary>
|
||||
public Guid? SenderUserId { get; set; }
|
||||
public long? SenderUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 消息内容。
|
||||
|
||||
@@ -16,17 +16,17 @@ public sealed class ChatSession : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 顾客用户 ID。
|
||||
/// </summary>
|
||||
public Guid CustomerUserId { get; set; }
|
||||
public long CustomerUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前客服员工 ID。
|
||||
/// </summary>
|
||||
public Guid? AgentUserId { get; set; }
|
||||
public long? AgentUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属门店(可空为平台)。
|
||||
/// </summary>
|
||||
public Guid? StoreId { get; set; }
|
||||
public long? StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 会话状态。
|
||||
|
||||
@@ -16,12 +16,12 @@ public sealed class SupportTicket : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 客户用户 ID。
|
||||
/// </summary>
|
||||
public Guid CustomerUserId { get; set; }
|
||||
public long CustomerUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联订单(如有)。
|
||||
/// </summary>
|
||||
public Guid? OrderId { get; set; }
|
||||
public long? OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单主题。
|
||||
@@ -46,7 +46,7 @@ public sealed class SupportTicket : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 指派的客服。
|
||||
/// </summary>
|
||||
public Guid? AssignedAgentId { get; set; }
|
||||
public long? AssignedAgentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关闭时间。
|
||||
|
||||
@@ -10,12 +10,12 @@ public sealed class TicketComment : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 工单标识。
|
||||
/// </summary>
|
||||
public Guid SupportTicketId { get; set; }
|
||||
public long SupportTicketId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论人 ID。
|
||||
/// </summary>
|
||||
public Guid? AuthorUserId { get; set; }
|
||||
public long? AuthorUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论内容。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class DeliveryEvent : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 配送单标识。
|
||||
/// </summary>
|
||||
public Guid DeliveryOrderId { get; set; }
|
||||
public long DeliveryOrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 事件类型。
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace TakeoutSaaS.Domain.Deliveries.Entities;
|
||||
/// </summary>
|
||||
public sealed class DeliveryOrder : MultiTenantEntityBase
|
||||
{
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 配送服务商。
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Domain.Deliveries.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Deliveries.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// 配送聚合仓储契约。
|
||||
/// </summary>
|
||||
public interface IDeliveryRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// 依据标识获取配送单。
|
||||
/// </summary>
|
||||
Task<DeliveryOrder?> FindByIdAsync(long deliveryOrderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 依据订单标识获取配送单。
|
||||
/// </summary>
|
||||
Task<DeliveryOrder?> FindByOrderIdAsync(long orderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取配送事件轨迹。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<DeliveryEvent>> GetEventsAsync(long deliveryOrderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增配送单。
|
||||
/// </summary>
|
||||
Task AddDeliveryOrderAsync(DeliveryOrder deliveryOrder, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增配送事件。
|
||||
/// </summary>
|
||||
Task AddEventAsync(DeliveryEvent deliveryEvent, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 持久化变更。
|
||||
/// </summary>
|
||||
Task SaveChangesAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -10,7 +10,7 @@ public sealed class DictionaryItem : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 关联分组 ID。
|
||||
/// </summary>
|
||||
public Guid GroupId { get; set; }
|
||||
public long GroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 字典项键。
|
||||
|
||||
@@ -14,7 +14,7 @@ public interface IDictionaryRepository
|
||||
/// <summary>
|
||||
/// 依据 ID 获取分组。
|
||||
/// </summary>
|
||||
Task<DictionaryGroup?> FindGroupByIdAsync(Guid id, CancellationToken cancellationToken = default);
|
||||
Task<DictionaryGroup?> FindGroupByIdAsync(long id, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 依据编码获取分组。
|
||||
@@ -39,17 +39,17 @@ public interface IDictionaryRepository
|
||||
/// <summary>
|
||||
/// 依据 ID 获取字典项。
|
||||
/// </summary>
|
||||
Task<DictionaryItem?> FindItemByIdAsync(Guid id, CancellationToken cancellationToken = default);
|
||||
Task<DictionaryItem?> FindItemByIdAsync(long id, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取某分组下的所有字典项。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<DictionaryItem>> GetItemsByGroupIdAsync(Guid groupId, CancellationToken cancellationToken = default);
|
||||
Task<IReadOnlyList<DictionaryItem>> GetItemsByGroupIdAsync(long groupId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按分组编码集合获取字典项(可包含系统参数)。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<DictionaryItem>> GetItemsByCodesAsync(IEnumerable<string> codes, Guid tenantId, bool includeSystem, CancellationToken cancellationToken = default);
|
||||
Task<IReadOnlyList<DictionaryItem>> GetItemsByCodesAsync(IEnumerable<string> codes, long tenantId, bool includeSystem, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增字典项。
|
||||
|
||||
@@ -11,17 +11,17 @@ public sealed class AffiliateOrder : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 推广人标识。
|
||||
/// </summary>
|
||||
public Guid AffiliatePartnerId { get; set; }
|
||||
public long AffiliatePartnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联订单。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户 ID。
|
||||
/// </summary>
|
||||
public Guid BuyerUserId { get; set; }
|
||||
public long BuyerUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单金额。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class AffiliatePartner : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 用户 ID(如绑定平台账号)。
|
||||
/// </summary>
|
||||
public Guid? UserId { get; set; }
|
||||
public long? UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称或渠道名称。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class AffiliatePayout : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 合作伙伴标识。
|
||||
/// </summary>
|
||||
public Guid AffiliatePartnerId { get; set; }
|
||||
public long AffiliatePartnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结算周期描述。
|
||||
|
||||
@@ -10,12 +10,12 @@ public sealed class CheckInRecord : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 活动标识。
|
||||
/// </summary>
|
||||
public Guid CheckInCampaignId { get; set; }
|
||||
public long CheckInCampaignId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户标识。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 签到日期(本地)。
|
||||
|
||||
@@ -10,12 +10,12 @@ public sealed class CommunityComment : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 动态标识。
|
||||
/// </summary>
|
||||
public Guid PostId { get; set; }
|
||||
public long PostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论人。
|
||||
/// </summary>
|
||||
public Guid AuthorUserId { get; set; }
|
||||
public long AuthorUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论内容。
|
||||
@@ -25,7 +25,7 @@ public sealed class CommunityComment : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 父级评论 ID。
|
||||
/// </summary>
|
||||
public Guid? ParentId { get; set; }
|
||||
public long? ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class CommunityPost : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 作者用户 ID。
|
||||
/// </summary>
|
||||
public Guid AuthorUserId { get; set; }
|
||||
public long AuthorUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标题。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class CommunityReaction : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 动态 ID。
|
||||
/// </summary>
|
||||
public Guid PostId { get; set; }
|
||||
public long PostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户 ID。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 反应类型。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class GroupOrder : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联商品或套餐。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 拼单编号。
|
||||
@@ -26,7 +26,7 @@ public sealed class GroupOrder : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 团长用户 ID。
|
||||
/// </summary>
|
||||
public Guid LeaderUserId { get; set; }
|
||||
public long LeaderUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成团需要的人数。
|
||||
|
||||
@@ -11,17 +11,17 @@ public sealed class GroupParticipant : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 拼单活动标识。
|
||||
/// </summary>
|
||||
public Guid GroupOrderId { get; set; }
|
||||
public long GroupOrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 对应订单标识。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户标识。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 参与状态。
|
||||
|
||||
@@ -25,7 +25,7 @@ public sealed class IdentityUser : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商户(平台管理员为空)。
|
||||
/// </summary>
|
||||
public Guid? MerchantId { get; set; }
|
||||
public long? MerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色集合。
|
||||
|
||||
@@ -18,5 +18,5 @@ public interface IIdentityUserRepository
|
||||
/// <summary>
|
||||
/// 根据 ID 获取后台用户。
|
||||
/// </summary>
|
||||
Task<IdentityUser?> FindByIdAsync(Guid userId, CancellationToken cancellationToken = default);
|
||||
Task<IdentityUser?> FindByIdAsync(long userId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public interface IMiniUserRepository
|
||||
/// <param name="id">用户 ID</param>
|
||||
/// <param name="cancellationToken">取消令牌</param>
|
||||
/// <returns>小程序用户,如果不存在则返回 null</returns>
|
||||
Task<MiniUser?> FindByIdAsync(Guid id, CancellationToken cancellationToken = default);
|
||||
Task<MiniUser?> FindByIdAsync(long id, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 创建或更新小程序用户(如果 OpenId 已存在则更新,否则创建)。
|
||||
@@ -33,5 +33,5 @@ public interface IMiniUserRepository
|
||||
/// <param name="tenantId">租户 ID</param>
|
||||
/// <param name="cancellationToken">取消令牌</param>
|
||||
/// <returns>创建或更新后的小程序用户</returns>
|
||||
Task<MiniUser> CreateOrUpdateAsync(string openId, string? unionId, string? nickname, string? avatar, Guid tenantId, CancellationToken cancellationToken = default);
|
||||
Task<MiniUser> CreateOrUpdateAsync(string openId, string? unionId, string? nickname, string? avatar, long tenantId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class InventoryAdjustment : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 对应的库存记录标识。
|
||||
/// </summary>
|
||||
public Guid InventoryItemId { get; set; }
|
||||
public long InventoryItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 调整类型。
|
||||
@@ -31,7 +31,7 @@ public sealed class InventoryAdjustment : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 操作人标识。
|
||||
/// </summary>
|
||||
public Guid? OperatorId { get; set; }
|
||||
public long? OperatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发生时间。
|
||||
|
||||
@@ -10,12 +10,12 @@ public sealed class InventoryBatch : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU 标识。
|
||||
/// </summary>
|
||||
public Guid ProductSkuId { get; set; }
|
||||
public long ProductSkuId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次编号。
|
||||
|
||||
@@ -10,12 +10,12 @@ public sealed class InventoryItem : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU 标识。
|
||||
/// </summary>
|
||||
public Guid ProductSkuId { get; set; }
|
||||
public long ProductSkuId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批次编号,可为空表示混批。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class MemberGrowthLog : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 会员标识。
|
||||
/// </summary>
|
||||
public Guid MemberId { get; set; }
|
||||
public long MemberId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 变动数量。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class MemberPointLedger : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 会员标识。
|
||||
/// </summary>
|
||||
public Guid MemberId { get; set; }
|
||||
public long MemberId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 变动数量,可为负值。
|
||||
@@ -31,7 +31,7 @@ public sealed class MemberPointLedger : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 来源 ID(订单、活动等)。
|
||||
/// </summary>
|
||||
public Guid? SourceId { get; set; }
|
||||
public long? SourceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发生时间。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class MemberProfile : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 用户标识。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 手机号。
|
||||
@@ -31,7 +31,7 @@ public sealed class MemberProfile : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 当前会员等级 ID。
|
||||
/// </summary>
|
||||
public Guid? MemberTierId { get; set; }
|
||||
public long? MemberTierId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 会员状态。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class MerchantContract : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商户标识。
|
||||
/// </summary>
|
||||
public Guid MerchantId { get; set; }
|
||||
public long MerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合同编号。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class MerchantDocument : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商户标识。
|
||||
/// </summary>
|
||||
public Guid MerchantId { get; set; }
|
||||
public long MerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 证照类型。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class MerchantStaff : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商户标识。
|
||||
/// </summary>
|
||||
public Guid MerchantId { get; set; }
|
||||
public long MerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 可选的关联门店 ID。
|
||||
/// </summary>
|
||||
public Guid? StoreId { get; set; }
|
||||
public long? StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 员工姓名。
|
||||
@@ -36,7 +36,7 @@ public sealed class MerchantStaff : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 登录账号 ID(指向统一身份体系)。
|
||||
/// </summary>
|
||||
public Guid? IdentityUserId { get; set; }
|
||||
public long? IdentityUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 员工角色类型。
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Domain.Merchants.Entities;
|
||||
using TakeoutSaaS.Domain.Merchants.Enums;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Merchants.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// 商户聚合仓储契约,提供基础 CRUD 与查询能力。
|
||||
/// </summary>
|
||||
public interface IMerchantRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// 依据标识获取商户。
|
||||
/// </summary>
|
||||
Task<Merchant?> FindByIdAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按状态筛选商户列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<Merchant>> SearchAsync(long tenantId, MerchantStatus? status, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定商户的员工列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<MerchantStaff>> GetStaffAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定商户的合同列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<MerchantContract>> GetContractsAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定商户的资质文件列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<MerchantDocument>> GetDocumentsAsync(long merchantId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增商户主体。
|
||||
/// </summary>
|
||||
Task AddMerchantAsync(Merchant merchant, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增商户员工。
|
||||
/// </summary>
|
||||
Task AddStaffAsync(MerchantStaff staff, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增商户合同。
|
||||
/// </summary>
|
||||
Task AddContractAsync(MerchantContract contract, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增商户资质文件。
|
||||
/// </summary>
|
||||
Task AddDocumentAsync(MerchantDocument document, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 持久化变更。
|
||||
/// </summary>
|
||||
Task SaveChangesAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -10,7 +10,7 @@ public sealed class MapLocation : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 关联门店 ID,可空表示独立 POI。
|
||||
/// </summary>
|
||||
public Guid? StoreId { get; set; }
|
||||
public long? StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class NavigationRequest : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 用户 ID。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 门店 ID。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 来源通道(小程序、H5 等)。
|
||||
|
||||
@@ -11,17 +11,17 @@ public sealed class CartItem : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属购物车标识。
|
||||
/// </summary>
|
||||
public Guid ShoppingCartId { get; set; }
|
||||
public long ShoppingCartId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品或 SKU 标识。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU 标识。
|
||||
/// </summary>
|
||||
public Guid? ProductSkuId { get; set; }
|
||||
public long? ProductSkuId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品名称快照。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class CartItemAddon : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属购物车条目。
|
||||
/// </summary>
|
||||
public Guid CartItemId { get; set; }
|
||||
public long CartItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选项名称。
|
||||
@@ -25,5 +25,5 @@ public sealed class CartItemAddon : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 选项 ID(可对应 ProductAddonOption)。
|
||||
/// </summary>
|
||||
public Guid? OptionId { get; set; }
|
||||
public long? OptionId { get; set; }
|
||||
}
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class CheckoutSession : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 用户标识。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 会话 Token。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class ShoppingCart : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 用户标识。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 购物车状态,包含正常/锁定。
|
||||
|
||||
@@ -17,7 +17,7 @@ public sealed class Order : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下单渠道。
|
||||
@@ -62,7 +62,7 @@ public sealed class Order : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 预约 ID。
|
||||
/// </summary>
|
||||
public Guid? ReservationId { get; set; }
|
||||
public long? ReservationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品总额。
|
||||
|
||||
@@ -10,12 +10,12 @@ public sealed class OrderItem : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 订单 ID。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品 ID。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品名称。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class OrderStatusHistory : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 订单标识。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 变更后的状态。
|
||||
@@ -21,7 +21,7 @@ public sealed class OrderStatusHistory : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 操作人标识(可为空表示系统)。
|
||||
/// </summary>
|
||||
public Guid? OperatorId { get; set; }
|
||||
public long? OperatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注信息。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class RefundRequest : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 关联订单标识。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 退款单号。
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Domain.Orders.Entities;
|
||||
using TakeoutSaaS.Domain.Orders.Enums;
|
||||
using TakeoutSaaS.Domain.Payments.Enums;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Orders.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// 订单聚合仓储契约。
|
||||
/// </summary>
|
||||
public interface IOrderRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// 依据标识获取订单。
|
||||
/// </summary>
|
||||
Task<Order?> FindByIdAsync(long orderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 依据订单号获取订单。
|
||||
/// </summary>
|
||||
Task<Order?> FindByOrderNoAsync(string orderNo, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按状态筛选订单列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<Order>> SearchAsync(long tenantId, OrderStatus? status, PaymentStatus? paymentStatus, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取订单明细行。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<OrderItem>> GetItemsAsync(long orderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取订单状态流转记录。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<OrderStatusHistory>> GetStatusHistoryAsync(long orderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取订单退款申请。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<RefundRequest>> GetRefundsAsync(long orderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增订单。
|
||||
/// </summary>
|
||||
Task AddOrderAsync(Order order, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增订单明细。
|
||||
/// </summary>
|
||||
Task AddItemsAsync(IEnumerable<OrderItem> items, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增订单状态记录。
|
||||
/// </summary>
|
||||
Task AddStatusHistoryAsync(OrderStatusHistory history, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增退款申请。
|
||||
/// </summary>
|
||||
Task AddRefundAsync(RefundRequest refund, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 持久化变更。
|
||||
/// </summary>
|
||||
Task SaveChangesAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -11,7 +11,7 @@ public sealed class PaymentRecord : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 关联订单。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付方式。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class PaymentRefundRecord : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 原支付记录标识。
|
||||
/// </summary>
|
||||
public Guid PaymentRecordId { get; set; }
|
||||
public long PaymentRecordId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联订单标识。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 退款金额。
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Domain.Payments.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Payments.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// 支付记录仓储契约。
|
||||
/// </summary>
|
||||
public interface IPaymentRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// 依据标识获取支付记录。
|
||||
/// </summary>
|
||||
Task<PaymentRecord?> FindByIdAsync(long paymentId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 依据订单标识获取支付记录。
|
||||
/// </summary>
|
||||
Task<PaymentRecord?> FindByOrderIdAsync(long orderId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取支付对应的退款记录。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<PaymentRefundRecord>> GetRefundsAsync(long paymentId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增支付记录。
|
||||
/// </summary>
|
||||
Task AddPaymentAsync(PaymentRecord payment, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增退款记录。
|
||||
/// </summary>
|
||||
Task AddRefundAsync(PaymentRefundRecord refund, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 持久化变更。
|
||||
/// </summary>
|
||||
Task SaveChangesAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -11,12 +11,12 @@ public sealed class Product : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属门店。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属分类。
|
||||
/// </summary>
|
||||
public Guid CategoryId { get; set; }
|
||||
public long CategoryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品编码。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class ProductAddonGroup : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商品。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分组名称。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class ProductAddonOption : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属加料分组。
|
||||
/// </summary>
|
||||
public Guid AddonGroupId { get; set; }
|
||||
public long AddonGroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选项名称。
|
||||
|
||||
@@ -11,7 +11,12 @@ public sealed class ProductAttributeGroup : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 关联门店,可为空表示所有门店共享。
|
||||
/// </summary>
|
||||
public Guid? StoreId { get; set; }
|
||||
public long? StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属商品标识。
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分组名称,例如“辣度”“份量”。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class ProductAttributeOption : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属规格组。
|
||||
/// </summary>
|
||||
public Guid AttributeGroupId { get; set; }
|
||||
public long AttributeGroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选项名称。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class ProductCategory : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属门店。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类名称。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class ProductMediaAsset : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 商品标识。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 媒体类型。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class ProductPricingRule : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商品。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 策略类型。
|
||||
@@ -42,4 +42,9 @@ public sealed class ProductPricingRule : MultiTenantEntityBase
|
||||
/// 生效星期(JSON 数组)。
|
||||
/// </summary>
|
||||
public string? WeekdaysJson { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值。
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; } = 100;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class ProductSku : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商品标识。
|
||||
/// </summary>
|
||||
public Guid ProductId { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU 编码。
|
||||
@@ -46,4 +46,9 @@ public sealed class ProductSku : MultiTenantEntityBase
|
||||
/// 规格属性 JSON(记录选项 ID)。
|
||||
/// </summary>
|
||||
public string AttributesJson { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 排序值。
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; } = 100;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Domain.Products.Entities;
|
||||
using TakeoutSaaS.Domain.Products.Enums;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Products.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// 商品聚合仓储契约。
|
||||
/// </summary>
|
||||
public interface IProductRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// 依据标识获取商品。
|
||||
/// </summary>
|
||||
Task<Product?> FindByIdAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按分类与状态筛选商品列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<Product>> SearchAsync(long tenantId, long? categoryId, ProductStatus? status, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取租户下的商品分类。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductCategory>> GetCategoriesAsync(long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品 SKU。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductSku>> GetSkusAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品加料组与选项。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductAddonGroup>> GetAddonGroupsAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品加料选项。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductAddonOption>> GetAddonOptionsAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品规格组与选项。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductAttributeGroup>> GetAttributeGroupsAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品规格选项。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductAttributeOption>> GetAttributeOptionsAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品媒资。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductMediaAsset>> GetMediaAssetsAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取商品定价规则。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<ProductPricingRule>> GetPricingRulesAsync(long productId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增分类。
|
||||
/// </summary>
|
||||
Task AddCategoryAsync(ProductCategory category, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增商品。
|
||||
/// </summary>
|
||||
Task AddProductAsync(Product product, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增 SKU。
|
||||
/// </summary>
|
||||
Task AddSkusAsync(IEnumerable<ProductSku> skus, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增加料组与选项。
|
||||
/// </summary>
|
||||
Task AddAddonGroupsAsync(IEnumerable<ProductAddonGroup> groups, IEnumerable<ProductAddonOption> options, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增规格组与选项。
|
||||
/// </summary>
|
||||
Task AddAttributeGroupsAsync(IEnumerable<ProductAttributeGroup> groups, IEnumerable<ProductAttributeOption> options, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增媒资。
|
||||
/// </summary>
|
||||
Task AddMediaAssetsAsync(IEnumerable<ProductMediaAsset> assets, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增定价规则。
|
||||
/// </summary>
|
||||
Task AddPricingRulesAsync(IEnumerable<ProductPricingRule> rules, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 持久化变更。
|
||||
/// </summary>
|
||||
Task SaveChangesAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -8,7 +8,7 @@ namespace TakeoutSaaS.Domain.Queues.Entities;
|
||||
/// </summary>
|
||||
public sealed class QueueTicket : MultiTenantEntityBase
|
||||
{
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排队编号。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class Reservation : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预约号。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class Store : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 所属商户标识。
|
||||
/// </summary>
|
||||
public Guid MerchantId { get; set; }
|
||||
public long MerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 门店编码,便于扫码及外部对接。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class StoreBusinessHour : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 星期几,0 表示周日。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class StoreDeliveryZone : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 区域名称。
|
||||
@@ -36,4 +36,9 @@ public sealed class StoreDeliveryZone : MultiTenantEntityBase
|
||||
/// 预计送达分钟。
|
||||
/// </summary>
|
||||
public int? EstimatedMinutes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值。
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; } = 100;
|
||||
}
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class StoreEmployeeShift : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 员工标识。
|
||||
/// </summary>
|
||||
public Guid StaffId { get; set; }
|
||||
public long StaffId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 班次日期。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class StoreHoliday : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日期。
|
||||
|
||||
@@ -11,12 +11,12 @@ public sealed class StoreTable : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所在区域 ID。
|
||||
/// </summary>
|
||||
public Guid? AreaId { get; set; }
|
||||
public long? AreaId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 桌码。
|
||||
|
||||
@@ -10,7 +10,7 @@ public sealed class StoreTableArea : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 门店标识。
|
||||
/// </summary>
|
||||
public Guid StoreId { get; set; }
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 区域名称。
|
||||
@@ -21,4 +21,9 @@ public sealed class StoreTableArea : MultiTenantEntityBase
|
||||
/// 区域描述。
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序值。
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; } = 100;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Domain.Stores.Entities;
|
||||
using TakeoutSaaS.Domain.Stores.Enums;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Stores.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// 门店聚合仓储契约。
|
||||
/// </summary>
|
||||
public interface IStoreRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// 依据标识获取门店。
|
||||
/// </summary>
|
||||
Task<Store?> FindByIdAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 按租户筛选门店列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<Store>> SearchAsync(long tenantId, StoreStatus? status, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取门店营业时段。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<StoreBusinessHour>> GetBusinessHoursAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取门店配送区域配置。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<StoreDeliveryZone>> GetDeliveryZonesAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取门店节假日配置。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<StoreHoliday>> GetHolidaysAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取门店桌台区域。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<StoreTableArea>> GetTableAreasAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取门店桌台列表。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<StoreTable>> GetTablesAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 获取门店员工排班。
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<StoreEmployeeShift>> GetShiftsAsync(long storeId, long tenantId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增门店。
|
||||
/// </summary>
|
||||
Task AddStoreAsync(Store store, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增营业时段。
|
||||
/// </summary>
|
||||
Task AddBusinessHoursAsync(IEnumerable<StoreBusinessHour> hours, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增配送区域。
|
||||
/// </summary>
|
||||
Task AddDeliveryZonesAsync(IEnumerable<StoreDeliveryZone> zones, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增节假日配置。
|
||||
/// </summary>
|
||||
Task AddHolidaysAsync(IEnumerable<StoreHoliday> holidays, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增桌台区域。
|
||||
/// </summary>
|
||||
Task AddTableAreasAsync(IEnumerable<StoreTableArea> areas, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增桌台。
|
||||
/// </summary>
|
||||
Task AddTablesAsync(IEnumerable<StoreTable> tables, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 新增排班。
|
||||
/// </summary>
|
||||
Task AddShiftsAsync(IEnumerable<StoreEmployeeShift> shifts, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 持久化变更。
|
||||
/// </summary>
|
||||
Task SaveChangesAsync(CancellationToken cancellationToken = default);
|
||||
}
|
||||
@@ -86,7 +86,7 @@ public sealed class Tenant : AuditableEntityBase
|
||||
/// <summary>
|
||||
/// 系统内对应的租户所有者账号 ID。
|
||||
/// </summary>
|
||||
public Guid? PrimaryOwnerUserId { get; set; }
|
||||
public long? PrimaryOwnerUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 租户当前状态,涵盖审核、启用、停用等场景。
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class TenantSubscription : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 当前订阅关联的套餐标识。
|
||||
/// </summary>
|
||||
public Guid TenantPackageId { get; set; }
|
||||
public long TenantPackageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订阅生效时间(UTC)。
|
||||
@@ -41,7 +41,7 @@ public sealed class TenantSubscription : MultiTenantEntityBase
|
||||
/// <summary>
|
||||
/// 若已排期升降配,对应的新套餐 ID。
|
||||
/// </summary>
|
||||
public Guid? ScheduledPackageId { get; set; }
|
||||
public long? ScheduledPackageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 运营备注信息。
|
||||
|
||||
Reference in New Issue
Block a user