using Fengling.Platform.Domain.AggregatesModel.GatewayAggregate;
using Fengling.Platform.Domain.AggregatesModel.RoleAggregate;
using Fengling.Platform.Domain.AggregatesModel.TenantAggregate;
using Fengling.Platform.Domain.AggregatesModel.UserAggregate;
using Fengling.Platform.Infrastructure;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
namespace Fengling.Console.Data;
///
/// Console 项目的 DbContext,继承 PlatformDbContext 并配置表命名规范
/// PostgreSQL 命名规范:小写字母 + 下划线,模块前缀
///
public class ConsoleDbContext : PlatformDbContext
{
public ConsoleDbContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// ========== Gateway 模块 ==========
modelBuilder.Entity(entity =>
{
entity.ToTable("gw_tenant_routes");
});
// ========== Tenant 模块 ==========
modelBuilder.Entity(entity =>
{
entity.ToTable("sys_tenants");
});
// ========== Audit 模块 ==========
modelBuilder.Entity(entity =>
{
entity.ToTable("sys_access_logs");
});
modelBuilder.Entity(entity =>
{
entity.ToTable("sys_audit_logs");
});
// ========== Identity 模块 ==========
modelBuilder.Entity(entity =>
{
entity.ToTable("idn_users");
});
modelBuilder.Entity(entity =>
{
entity.ToTable("idn_roles");
});
// Identity tables - custom names
modelBuilder.Entity>(entity => entity.ToTable("idn_user_claims"));
modelBuilder.Entity>(entity => entity.ToTable("idn_role_claims"));
modelBuilder.Entity>(entity => entity.ToTable("idn_user_logins"));
modelBuilder.Entity>(entity => entity.ToTable("idn_user_tokens"));
modelBuilder.Entity>(entity => entity.ToTable("idn_user_roles"));
}
}