feat: add points persistence foundation

This commit is contained in:
xiong
2026-07-26 19:53:45 +08:00
parent f512e9d367
commit 77cac70344
7 changed files with 17140 additions and 1 deletions

View File

@@ -31,7 +31,7 @@ public sealed class PersistenceModelTests
.Select(entity => entity.GetTableName())
.ToHashSet(StringComparer.Ordinal);
Assert.Equal(127, tableNames.Count);
Assert.Equal(131, tableNames.Count);
Assert.Contains("tenants", tableNames);
Assert.Contains("tenant_settings", tableNames);
Assert.Contains("content_entries", tableNames);
@@ -96,6 +96,10 @@ public sealed class PersistenceModelTests
Assert.Contains("commerce_reconciliation_items", tableNames);
Assert.Contains("commerce_reconciliation_issues", tableNames);
Assert.Contains("commerce_reconciliation_issue_events", tableNames);
Assert.Contains("point_activity_tasks", tableNames);
Assert.Contains("point_activity_claims", tableNames);
Assert.Contains("point_exchange_items", tableNames);
Assert.Contains("point_exchange_orders", tableNames);
Assert.Contains("content_asset_access_events", tableNames);
Assert.Contains("content_asset_security_scan_events", tableNames);
Assert.Contains("question_bank_grants", tableNames);
@@ -661,6 +665,13 @@ public sealed class PersistenceModelTests
}
[Theory]
[InlineData(typeof(PointActivityTask), nameof(PointActivityTask.Rules), "'{}'::jsonb")]
[InlineData(typeof(PointActivityTask), nameof(PointActivityTask.Metadata), "'{}'::jsonb")]
[InlineData(typeof(PointActivityClaim), nameof(PointActivityClaim.Metadata), "'{}'::jsonb")]
[InlineData(typeof(PointExchangeItem), nameof(PointExchangeItem.FulfillmentPayload), "'{}'::jsonb")]
[InlineData(typeof(PointExchangeItem), nameof(PointExchangeItem.Metadata), "'{}'::jsonb")]
[InlineData(typeof(PointExchangeOrder), nameof(PointExchangeOrder.FulfillmentSnapshot), "'{}'::jsonb")]
[InlineData(typeof(PointExchangeOrder), nameof(PointExchangeOrder.Metadata), "'{}'::jsonb")]
[InlineData(typeof(ReferralTrack), nameof(ReferralTrack.Metadata), "'{}'::jsonb")]
[InlineData(typeof(ReferralCode), nameof(ReferralCode.Metadata), "'{}'::jsonb")]
[InlineData(typeof(ReferralLead), nameof(ReferralLead.Metadata), "'{}'::jsonb")]
@@ -693,6 +704,9 @@ public sealed class PersistenceModelTests
{
using var context = new TikuDbContext(Options);
AssertHasUniqueIndex<PointActivityTask>(nameof(PointActivityTask.TenantId), nameof(PointActivityTask.TaskKey));
AssertHasUniqueIndex<PointExchangeItem>(nameof(PointExchangeItem.TenantId), nameof(PointExchangeItem.ItemKey));
AssertHasUniqueIndex<PointExchangeOrder>(nameof(PointExchangeOrder.TenantId), nameof(PointExchangeOrder.OrderNo));
AssertHasUniqueIndex<ReferralCode>(nameof(ReferralCode.TenantId), nameof(ReferralCode.Code));
AssertHasUniqueIndex<ReferralLead>(nameof(ReferralLead.TenantId), nameof(ReferralLead.StudentUserId));
AssertHasUniqueIndex<CrmConfig>(nameof(CrmConfig.TenantId));