refactor(architecture): harden module boundaries
Some checks failed
ci / release-gate (push) Has been cancelled

This commit is contained in:
2026-08-04 12:10:36 +08:00
parent b38f12e60b
commit 33375a38d7
218 changed files with 5124 additions and 3828 deletions

View File

@@ -24,7 +24,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
if (command.RegionId.HasValue)
{
var regionExists = await dbContext.Regions
var regionExists = await catalogPersistence.Regions
.AnyAsync(item => item.TenantId == actor.TenantId && item.Id == command.RegionId.Value,
cancellationToken);
if (!regionExists) throw new CommerceException("Region was not found.", "region_not_found");
@@ -45,9 +45,9 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
IssuedAt = DateTimeOffset.UtcNow,
Remark = command.Remark
};
dbContext.CodeBatches.Add(batch);
commercePersistence.CodeBatches.Add(batch);
for (var index = 0; index < command.TotalCount; index++)
dbContext.ActivationCodes.Add(new ActivationCode
commercePersistence.ActivationCodes.Add(new ActivationCode
{
TenantId = actor.TenantId,
BatchId = batch.Id,
@@ -58,7 +58,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
Remark = batch.Remark
});
await dbContext.SaveChangesAsync(cancellationToken);
await unitOfWork.SaveChangesAsync(cancellationToken);
return ToCodeBatchItem(batch);
}
@@ -68,7 +68,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var codes = dbContext.ActivationCodes.AsNoTracking()
var codes = commercePersistence.ActivationCodes.AsNoTracking()
.Where(item => item.TenantId == actor.TenantId);
if (!string.IsNullOrWhiteSpace(query.Status))
{
@@ -89,7 +89,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var code = await dbContext.ActivationCodes
var code = await commercePersistence.ActivationCodes
.SingleOrDefaultAsync(item =>
item.TenantId == actor.TenantId &&
item.Code == command.Code.Trim(),
@@ -97,7 +97,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
?? throw new CommerceException("Activation code was not found.", "activation_code_not_found");
if (code.IsUsed) throw new CommerceException("Activation code has already been used.", "activation_code_used");
var userIsMember = await dbContext.TenantMemberships.AnyAsync(item =>
var userIsMember = await identityPersistence.TenantMemberships.AnyAsync(item =>
item.TenantId == actor.TenantId &&
item.UserId == command.UserId &&
item.Status == MembershipStatus.Active,
@@ -109,7 +109,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
code.UsedBy = command.UserId;
code.UsedRegionId = command.RegionId;
code.UsedAt = DateTimeOffset.UtcNow;
dbContext.Entitlements.Add(new Entitlement
commercePersistence.Entitlements.Add(new Entitlement
{
TenantId = actor.TenantId,
UserId = command.UserId,
@@ -122,7 +122,7 @@ internal sealed class ActivationCodeAdministrationService(CommerceAdministration
Metadata = JsonSerializer.SerializeToElement(new { code.Code, code.BatchId })
});
await dbContext.SaveChangesAsync(cancellationToken);
await unitOfWork.SaveChangesAsync(cancellationToken);
return ToActivationCodeItem(code);
}
}