feat(member): implement member center management module
Some checks failed
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Failing after 1m54s
Some checks failed
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Failing after 1m54s
This commit is contained in:
@@ -390,6 +390,14 @@ public sealed class TakeoutAppDbContext(
|
||||
/// </summary>
|
||||
public DbSet<MemberTier> MemberTiers => Set<MemberTier>();
|
||||
/// <summary>
|
||||
/// 会员标签。
|
||||
/// </summary>
|
||||
public DbSet<MemberProfileTag> MemberProfileTags => Set<MemberProfileTag>();
|
||||
/// <summary>
|
||||
/// 会员日设置。
|
||||
/// </summary>
|
||||
public DbSet<MemberDaySetting> MemberDaySettings => Set<MemberDaySetting>();
|
||||
/// <summary>
|
||||
/// 积分流水。
|
||||
/// </summary>
|
||||
public DbSet<MemberPointLedger> MemberPointLedgers => Set<MemberPointLedger>();
|
||||
@@ -557,6 +565,8 @@ public sealed class TakeoutAppDbContext(
|
||||
ConfigurePunchCardUsageRecord(modelBuilder.Entity<PunchCardUsageRecord>());
|
||||
ConfigureMemberProfile(modelBuilder.Entity<MemberProfile>());
|
||||
ConfigureMemberTier(modelBuilder.Entity<MemberTier>());
|
||||
ConfigureMemberProfileTag(modelBuilder.Entity<MemberProfileTag>());
|
||||
ConfigureMemberDaySetting(modelBuilder.Entity<MemberDaySetting>());
|
||||
ConfigureMemberPointLedger(modelBuilder.Entity<MemberPointLedger>());
|
||||
ConfigureChatSession(modelBuilder.Entity<ChatSession>());
|
||||
ConfigureChatMessage(modelBuilder.Entity<ChatMessage>());
|
||||
@@ -1785,8 +1795,12 @@ public sealed class TakeoutAppDbContext(
|
||||
builder.Property(x => x.Mobile).HasMaxLength(32).IsRequired();
|
||||
builder.Property(x => x.Nickname).HasMaxLength(64);
|
||||
builder.Property(x => x.AvatarUrl).HasMaxLength(256);
|
||||
builder.Property(x => x.StoredBalance).HasPrecision(18, 2);
|
||||
builder.Property(x => x.StoredRechargeBalance).HasPrecision(18, 2);
|
||||
builder.Property(x => x.StoredGiftBalance).HasPrecision(18, 2);
|
||||
builder.Property(x => x.Status).HasConversion<int>();
|
||||
builder.HasIndex(x => new { x.TenantId, x.Mobile }).IsUnique();
|
||||
builder.HasIndex(x => new { x.TenantId, x.MemberTierId });
|
||||
}
|
||||
|
||||
private static void ConfigureMemberTier(EntityTypeBuilder<MemberTier> builder)
|
||||
@@ -1794,8 +1808,33 @@ public sealed class TakeoutAppDbContext(
|
||||
builder.ToTable("member_tiers");
|
||||
builder.HasKey(x => x.Id);
|
||||
builder.Property(x => x.Name).HasMaxLength(64).IsRequired();
|
||||
builder.Property(x => x.IconKey).HasMaxLength(32).IsRequired();
|
||||
builder.Property(x => x.ColorHex).HasMaxLength(16).IsRequired();
|
||||
builder.Property(x => x.UpgradeRuleType).HasMaxLength(16).IsRequired();
|
||||
builder.Property(x => x.UpgradeAmountThreshold).HasPrecision(18, 2);
|
||||
builder.Property(x => x.BenefitsJson).HasColumnType("text");
|
||||
builder.HasIndex(x => new { x.TenantId, x.Name }).IsUnique();
|
||||
builder.HasIndex(x => new { x.TenantId, x.SortOrder });
|
||||
}
|
||||
|
||||
private static void ConfigureMemberProfileTag(EntityTypeBuilder<MemberProfileTag> builder)
|
||||
{
|
||||
builder.ToTable("member_profile_tags");
|
||||
builder.HasKey(x => x.Id);
|
||||
builder.Property(x => x.MemberProfileId).IsRequired();
|
||||
builder.Property(x => x.TagName).HasMaxLength(32).IsRequired();
|
||||
builder.HasIndex(x => new { x.TenantId, x.MemberProfileId, x.TagName }).IsUnique();
|
||||
builder.HasIndex(x => new { x.TenantId, x.MemberProfileId });
|
||||
}
|
||||
|
||||
private static void ConfigureMemberDaySetting(EntityTypeBuilder<MemberDaySetting> builder)
|
||||
{
|
||||
builder.ToTable("member_day_settings");
|
||||
builder.HasKey(x => x.Id);
|
||||
builder.Property(x => x.IsEnabled).IsRequired();
|
||||
builder.Property(x => x.Weekday).IsRequired();
|
||||
builder.Property(x => x.ExtraDiscountRate).HasPrecision(5, 2);
|
||||
builder.HasIndex(x => x.TenantId).IsUnique();
|
||||
}
|
||||
|
||||
private static void ConfigureMemberPointLedger(EntityTypeBuilder<MemberPointLedger> builder)
|
||||
|
||||
Reference in New Issue
Block a user