Browse Source
- 删除所有现有迁移文件 - 重新创建初始迁移文件 - 更新所有表名为tb_开头的小写下划线格式 - 修改的配置文件包括: * 设备相关表配置 * 身份认证相关表配置 * 权限相关表配置 * 网络配置相关表配置 * 日志相关表配置 - 更新modify.md记录修改历史feature/x1-web-request
28 changed files with 875 additions and 3340 deletions
@ -1,929 +0,0 @@ |
|||
// <auto-generated />
|
|||
using System; |
|||
using CellularManagement.Infrastructure.Context; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
|||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
[DbContext(typeof(AppDbContext))] |
|||
[Migration("20250728081332_InitialCreate")] |
|||
partial class InitialCreate |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|||
{ |
|||
#pragma warning disable 612, 618
|
|||
modelBuilder |
|||
.HasAnnotation("ProductVersion", "8.0.0") |
|||
.HasAnnotation("Relational:MaxIdentifierLength", 63); |
|||
|
|||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppRole", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("角色ID,主键"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("角色描述"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("角色名称"); |
|||
|
|||
b.Property<string>("NormalizedName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化角色名称(大写)"); |
|||
|
|||
b.Property<DateTime>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Roles_Name"); |
|||
|
|||
b.HasIndex("NormalizedName") |
|||
.IsUnique() |
|||
.HasDatabaseName("RoleNameIndex"); |
|||
|
|||
b.ToTable("Roles", null, t => |
|||
{ |
|||
t.HasComment("角色表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppUser", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("用户ID,主键"); |
|||
|
|||
b.Property<int>("AccessFailedCount") |
|||
.HasColumnType("integer") |
|||
.HasComment("登录失败次数"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Email") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("电子邮箱"); |
|||
|
|||
b.Property<bool>("EmailConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("邮箱是否已验证"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(true) |
|||
.HasComment("用户状态(true: 启用, false: 禁用)"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(false) |
|||
.HasComment("是否已删除"); |
|||
|
|||
b.Property<DateTime?>("LastLoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("最后登录时间"); |
|||
|
|||
b.Property<bool>("LockoutEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用账户锁定"); |
|||
|
|||
b.Property<DateTimeOffset?>("LockoutEnd") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("账户锁定结束时间"); |
|||
|
|||
b.Property<DateTime?>("ModifiedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("修改时间"); |
|||
|
|||
b.Property<string>("NormalizedEmail") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化电子邮箱(大写)"); |
|||
|
|||
b.Property<string>("NormalizedUserName") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化账号(大写)"); |
|||
|
|||
b.Property<string>("PasswordHash") |
|||
.HasColumnType("text") |
|||
.HasComment("密码哈希值"); |
|||
|
|||
b.Property<string>("PhoneNumber") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("电话号码"); |
|||
|
|||
b.Property<bool>("PhoneNumberConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("电话号码是否已验证"); |
|||
|
|||
b.Property<string>("RealName") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("用户名"); |
|||
|
|||
b.Property<string>("SecurityStamp") |
|||
.HasColumnType("text") |
|||
.HasComment("安全戳,用于并发控制"); |
|||
|
|||
b.Property<bool>("TwoFactorEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用双因素认证"); |
|||
|
|||
b.Property<string>("UserName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("账号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Email") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_Email"); |
|||
|
|||
b.HasIndex("NormalizedEmail") |
|||
.HasDatabaseName("EmailIndex"); |
|||
|
|||
b.HasIndex("NormalizedUserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("UserNameIndex"); |
|||
|
|||
b.HasIndex("PhoneNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_PhoneNumber"); |
|||
|
|||
b.HasIndex("UserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_UserName"); |
|||
|
|||
b.ToTable("Users", null, t => |
|||
{ |
|||
t.HasComment("用户表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("设备ID"); |
|||
|
|||
b.Property<int>("AgentPort") |
|||
.HasColumnType("integer") |
|||
.HasComment("Agent端口"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备描述"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(45) |
|||
.HasColumnType("character varying(45)") |
|||
.HasComment("IP地址"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<bool>("IsRunning") |
|||
.HasColumnType("boolean") |
|||
.HasComment("设备状态(启动/未启动)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("设备名称"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_CellularDevices_SerialNumber"); |
|||
|
|||
b.ToTable("CellularDevices", null, t => |
|||
{ |
|||
t.HasComment("蜂窝设备表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("版本ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("版本描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<string>("MinimumSupportedVersion") |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("最低支持版本"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("版本名称"); |
|||
|
|||
b.Property<DateTime?>("ReleaseDate") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("发布日期"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("设备序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Version") |
|||
.IsRequired() |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("版本号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.HasDatabaseName("IX_ProtocolVersions_SerialNumber"); |
|||
|
|||
b.HasIndex("Version") |
|||
.HasDatabaseName("IX_ProtocolVersions_Version"); |
|||
|
|||
b.ToTable("ProtocolVersions", null, t => |
|||
{ |
|||
t.HasComment("协议版本表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("日志ID"); |
|||
|
|||
b.Property<string>("Browser") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("浏览器信息"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("FailureReason") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("失败原因"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("登录IP"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsSuccess") |
|||
.HasColumnType("boolean") |
|||
.HasComment("登录状态(成功/失败)"); |
|||
|
|||
b.Property<string>("Location") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("登录位置"); |
|||
|
|||
b.Property<string>("LoginSource") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("LoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("登录时间"); |
|||
|
|||
b.Property<string>("LoginType") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("OperatingSystem") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("操作系统信息"); |
|||
|
|||
b.Property<string>("SessionId") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("UserAgent") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备信息"); |
|||
|
|||
b.Property<string>("UserId") |
|||
.IsRequired() |
|||
.HasMaxLength(450) |
|||
.HasColumnType("character varying(450)") |
|||
.HasComment("用户ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IpAddress") |
|||
.HasDatabaseName("IX_LoginLogs_IpAddress"); |
|||
|
|||
b.HasIndex("LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_LoginTime"); |
|||
|
|||
b.HasIndex("UserId") |
|||
.HasDatabaseName("IX_LoginLogs_UserId"); |
|||
|
|||
b.HasIndex("UserId", "LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_UserId_LoginTime"); |
|||
|
|||
b.ToTable("LoginLogs", null, t => |
|||
{ |
|||
t.HasComment("用户登录日志表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_CoreNetworkConfigs_Name"); |
|||
|
|||
b.ToTable("CoreNetworkConfigs", null, t => |
|||
{ |
|||
t.HasComment("核心网配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_IMS_Configurations_Name"); |
|||
|
|||
b.ToTable("IMS_Configurations", null, t => |
|||
{ |
|||
t.HasComment("IMS配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("描述"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否激活"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<string>("RanId") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("RAN配置ID"); |
|||
|
|||
b.Property<string>("StackId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("栈ID"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IsActive") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_IsActive"); |
|||
|
|||
b.HasIndex("RanId") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_RanId"); |
|||
|
|||
b.HasIndex("StackId") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_NetworkStackConfigs_StackId"); |
|||
|
|||
b.ToTable("NetworkStackConfigs", null, t => |
|||
{ |
|||
t.HasComment("网络栈配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_RAN_Configurations_Name"); |
|||
|
|||
b.ToTable("RAN_Configurations", null, t => |
|||
{ |
|||
t.HasComment("RAN配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("绑定关系ID"); |
|||
|
|||
b.Property<string>("CnId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("核心网配置ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("ImsId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("IMS配置ID"); |
|||
|
|||
b.Property<int>("Index") |
|||
.HasColumnType("integer") |
|||
.HasComment("索引"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<string>("StackId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("栈ID"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("CnId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_CnId"); |
|||
|
|||
b.HasIndex("ImsId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_ImsId"); |
|||
|
|||
b.HasIndex("StackId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_StackId"); |
|||
|
|||
b.HasIndex("StackId", "Index") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_StackId_Index"); |
|||
|
|||
b.ToTable("Stack_CoreIMS_Bindings", null, t => |
|||
{ |
|||
t.HasComment("栈与核心网/IMS绑定关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Code") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("Type") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.ToTable("Permissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("PermissionId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.HasKey("RoleId", "PermissionId"); |
|||
|
|||
b.HasIndex("PermissionId"); |
|||
|
|||
b.ToTable("RolePermissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.Property<string>("UserId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("UserId", "RoleId"); |
|||
|
|||
b.HasIndex("RoleId"); |
|||
|
|||
b.ToTable("UserRoles", null, t => |
|||
{ |
|||
t.HasComment("用户角色关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Device.CellularDevice", null) |
|||
.WithMany("ProtocolVersions") |
|||
.HasForeignKey("SerialNumber") |
|||
.HasPrincipalKey("SerialNumber") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", null) |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", null) |
|||
.WithMany() |
|||
.HasForeignKey("RanId") |
|||
.OnDelete(DeleteBehavior.SetNull); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", "CoreNetworkConfig") |
|||
.WithMany() |
|||
.HasForeignKey("CnId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", "IMSConfiguration") |
|||
.WithMany() |
|||
.HasForeignKey("ImsId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", "NetworkStackConfig") |
|||
.WithMany("StackCoreIMSBindings") |
|||
.HasForeignKey("StackId") |
|||
.HasPrincipalKey("StackId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("CoreNetworkConfig"); |
|||
|
|||
b.Navigation("IMSConfiguration"); |
|||
|
|||
b.Navigation("NetworkStackConfig"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Permission", "Permission") |
|||
.WithMany("RolePermissions") |
|||
.HasForeignKey("PermissionId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Permission"); |
|||
|
|||
b.Navigation("Role"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", "User") |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Role"); |
|||
|
|||
b.Navigation("User"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Navigation("ProtocolVersions"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Navigation("StackCoreIMSBindings"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Navigation("RolePermissions"); |
|||
}); |
|||
#pragma warning restore 612, 618
|
|||
} |
|||
} |
|||
} |
@ -1,909 +0,0 @@ |
|||
// <auto-generated />
|
|||
using System; |
|||
using CellularManagement.Infrastructure.Context; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
|||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
[DbContext(typeof(AppDbContext))] |
|||
[Migration("20250728164913_UpdateNetworkStackConfigAndBindings")] |
|||
partial class UpdateNetworkStackConfigAndBindings |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|||
{ |
|||
#pragma warning disable 612, 618
|
|||
modelBuilder |
|||
.HasAnnotation("ProductVersion", "8.0.0") |
|||
.HasAnnotation("Relational:MaxIdentifierLength", 63); |
|||
|
|||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppRole", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("角色ID,主键"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("角色描述"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("角色名称"); |
|||
|
|||
b.Property<string>("NormalizedName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化角色名称(大写)"); |
|||
|
|||
b.Property<DateTime>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Roles_Name"); |
|||
|
|||
b.HasIndex("NormalizedName") |
|||
.IsUnique() |
|||
.HasDatabaseName("RoleNameIndex"); |
|||
|
|||
b.ToTable("Roles", null, t => |
|||
{ |
|||
t.HasComment("角色表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppUser", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("用户ID,主键"); |
|||
|
|||
b.Property<int>("AccessFailedCount") |
|||
.HasColumnType("integer") |
|||
.HasComment("登录失败次数"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Email") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("电子邮箱"); |
|||
|
|||
b.Property<bool>("EmailConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("邮箱是否已验证"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(true) |
|||
.HasComment("用户状态(true: 启用, false: 禁用)"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(false) |
|||
.HasComment("是否已删除"); |
|||
|
|||
b.Property<DateTime?>("LastLoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("最后登录时间"); |
|||
|
|||
b.Property<bool>("LockoutEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用账户锁定"); |
|||
|
|||
b.Property<DateTimeOffset?>("LockoutEnd") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("账户锁定结束时间"); |
|||
|
|||
b.Property<DateTime?>("ModifiedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("修改时间"); |
|||
|
|||
b.Property<string>("NormalizedEmail") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化电子邮箱(大写)"); |
|||
|
|||
b.Property<string>("NormalizedUserName") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化账号(大写)"); |
|||
|
|||
b.Property<string>("PasswordHash") |
|||
.HasColumnType("text") |
|||
.HasComment("密码哈希值"); |
|||
|
|||
b.Property<string>("PhoneNumber") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("电话号码"); |
|||
|
|||
b.Property<bool>("PhoneNumberConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("电话号码是否已验证"); |
|||
|
|||
b.Property<string>("RealName") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("用户名"); |
|||
|
|||
b.Property<string>("SecurityStamp") |
|||
.HasColumnType("text") |
|||
.HasComment("安全戳,用于并发控制"); |
|||
|
|||
b.Property<bool>("TwoFactorEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用双因素认证"); |
|||
|
|||
b.Property<string>("UserName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("账号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Email") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_Email"); |
|||
|
|||
b.HasIndex("NormalizedEmail") |
|||
.HasDatabaseName("EmailIndex"); |
|||
|
|||
b.HasIndex("NormalizedUserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("UserNameIndex"); |
|||
|
|||
b.HasIndex("PhoneNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_PhoneNumber"); |
|||
|
|||
b.HasIndex("UserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_UserName"); |
|||
|
|||
b.ToTable("Users", null, t => |
|||
{ |
|||
t.HasComment("用户表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("设备ID"); |
|||
|
|||
b.Property<int>("AgentPort") |
|||
.HasColumnType("integer") |
|||
.HasComment("Agent端口"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备描述"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(45) |
|||
.HasColumnType("character varying(45)") |
|||
.HasComment("IP地址"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<bool>("IsRunning") |
|||
.HasColumnType("boolean") |
|||
.HasComment("设备状态(启动/未启动)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("设备名称"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_CellularDevices_SerialNumber"); |
|||
|
|||
b.ToTable("CellularDevices", null, t => |
|||
{ |
|||
t.HasComment("蜂窝设备表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("版本ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("版本描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<string>("MinimumSupportedVersion") |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("最低支持版本"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("版本名称"); |
|||
|
|||
b.Property<DateTime?>("ReleaseDate") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("发布日期"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("设备序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Version") |
|||
.IsRequired() |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("版本号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.HasDatabaseName("IX_ProtocolVersions_SerialNumber"); |
|||
|
|||
b.HasIndex("Version") |
|||
.HasDatabaseName("IX_ProtocolVersions_Version"); |
|||
|
|||
b.ToTable("ProtocolVersions", null, t => |
|||
{ |
|||
t.HasComment("协议版本表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("日志ID"); |
|||
|
|||
b.Property<string>("Browser") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("浏览器信息"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("FailureReason") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("失败原因"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("登录IP"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsSuccess") |
|||
.HasColumnType("boolean") |
|||
.HasComment("登录状态(成功/失败)"); |
|||
|
|||
b.Property<string>("Location") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("登录位置"); |
|||
|
|||
b.Property<string>("LoginSource") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("LoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("登录时间"); |
|||
|
|||
b.Property<string>("LoginType") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("OperatingSystem") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("操作系统信息"); |
|||
|
|||
b.Property<string>("SessionId") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("UserAgent") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备信息"); |
|||
|
|||
b.Property<string>("UserId") |
|||
.IsRequired() |
|||
.HasMaxLength(450) |
|||
.HasColumnType("character varying(450)") |
|||
.HasComment("用户ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IpAddress") |
|||
.HasDatabaseName("IX_LoginLogs_IpAddress"); |
|||
|
|||
b.HasIndex("LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_LoginTime"); |
|||
|
|||
b.HasIndex("UserId") |
|||
.HasDatabaseName("IX_LoginLogs_UserId"); |
|||
|
|||
b.HasIndex("UserId", "LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_UserId_LoginTime"); |
|||
|
|||
b.ToTable("LoginLogs", null, t => |
|||
{ |
|||
t.HasComment("用户登录日志表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_CoreNetworkConfigs_Name"); |
|||
|
|||
b.ToTable("CoreNetworkConfigs", null, t => |
|||
{ |
|||
t.HasComment("核心网配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_IMS_Configurations_Name"); |
|||
|
|||
b.ToTable("IMS_Configurations", null, t => |
|||
{ |
|||
t.HasComment("IMS配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("描述"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否激活"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<string>("NetworkStackName") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("网络栈名称"); |
|||
|
|||
b.Property<string>("RanId") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("RAN配置ID"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IsActive") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_IsActive"); |
|||
|
|||
b.HasIndex("NetworkStackName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_NetworkStackConfigs_NetworkStackName"); |
|||
|
|||
b.HasIndex("RanId") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_RanId"); |
|||
|
|||
b.ToTable("NetworkStackConfigs", null, t => |
|||
{ |
|||
t.HasComment("网络栈配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_RAN_Configurations_Name"); |
|||
|
|||
b.ToTable("RAN_Configurations", null, t => |
|||
{ |
|||
t.HasComment("RAN配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("绑定关系ID"); |
|||
|
|||
b.Property<string>("CnId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("核心网配置ID"); |
|||
|
|||
b.Property<string>("ImsId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("IMS配置ID"); |
|||
|
|||
b.Property<int>("Index") |
|||
.HasColumnType("integer") |
|||
.HasComment("索引"); |
|||
|
|||
b.Property<string>("NetworkStackConfigId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("网络栈配置ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("CnId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_CnId"); |
|||
|
|||
b.HasIndex("ImsId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_ImsId"); |
|||
|
|||
b.HasIndex("NetworkStackConfigId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_NetworkStackConfigId"); |
|||
|
|||
b.HasIndex("NetworkStackConfigId", "Index") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index"); |
|||
|
|||
b.ToTable("Stack_CoreIMS_Bindings", null, t => |
|||
{ |
|||
t.HasComment("栈与核心网/IMS绑定关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Code") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("Type") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.ToTable("Permissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("PermissionId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.HasKey("RoleId", "PermissionId"); |
|||
|
|||
b.HasIndex("PermissionId"); |
|||
|
|||
b.ToTable("RolePermissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.Property<string>("UserId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("UserId", "RoleId"); |
|||
|
|||
b.HasIndex("RoleId"); |
|||
|
|||
b.ToTable("UserRoles", null, t => |
|||
{ |
|||
t.HasComment("用户角色关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Device.CellularDevice", null) |
|||
.WithMany("ProtocolVersions") |
|||
.HasForeignKey("SerialNumber") |
|||
.HasPrincipalKey("SerialNumber") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", null) |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", null) |
|||
.WithMany() |
|||
.HasForeignKey("RanId") |
|||
.OnDelete(DeleteBehavior.SetNull); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", "CoreNetworkConfig") |
|||
.WithMany() |
|||
.HasForeignKey("CnId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", "IMSConfiguration") |
|||
.WithMany() |
|||
.HasForeignKey("ImsId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", "NetworkStackConfig") |
|||
.WithMany("StackCoreIMSBindings") |
|||
.HasForeignKey("NetworkStackConfigId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("CoreNetworkConfig"); |
|||
|
|||
b.Navigation("IMSConfiguration"); |
|||
|
|||
b.Navigation("NetworkStackConfig"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Permission", "Permission") |
|||
.WithMany("RolePermissions") |
|||
.HasForeignKey("PermissionId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Permission"); |
|||
|
|||
b.Navigation("Role"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", "User") |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Role"); |
|||
|
|||
b.Navigation("User"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Navigation("ProtocolVersions"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Navigation("StackCoreIMSBindings"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Navigation("RolePermissions"); |
|||
}); |
|||
#pragma warning restore 612, 618
|
|||
} |
|||
} |
|||
} |
@ -1,266 +0,0 @@ |
|||
using System; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
/// <inheritdoc />
|
|||
public partial class UpdateNetworkStackConfigAndBindings : Migration |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_StackId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId_Index", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropUniqueConstraint( |
|||
name: "AK_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "CreatedAt", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "CreatedBy", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "IsDeleted", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "StackId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "UpdatedAt", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "UpdatedBy", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "StackId", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "网络栈配置ID"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkStackName", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(100)", |
|||
maxLength: 100, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "网络栈名称"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "NetworkStackConfigId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
columns: new[] { "NetworkStackConfigId", "Index" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_NetworkStackConfigs_NetworkStackName", |
|||
table: "NetworkStackConfigs", |
|||
column: "NetworkStackName", |
|||
unique: true); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "CnId", |
|||
principalTable: "CoreNetworkConfigs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Restrict); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "ImsId", |
|||
principalTable: "IMS_Configurations", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Restrict); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_NetworkStackConf~", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "NetworkStackConfigId", |
|||
principalTable: "NetworkStackConfigs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
} |
|||
|
|||
/// <inheritdoc />
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_NetworkStackConf~", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropIndex( |
|||
name: "IX_NetworkStackConfigs_NetworkStackName", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkStackConfigId", |
|||
table: "Stack_CoreIMS_Bindings"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkStackName", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.AddColumn<DateTime>( |
|||
name: "CreatedAt", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "timestamp with time zone", |
|||
nullable: false, |
|||
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), |
|||
comment: "创建时间"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "CreatedBy", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "text", |
|||
nullable: false, |
|||
defaultValue: ""); |
|||
|
|||
migrationBuilder.AddColumn<bool>( |
|||
name: "IsDeleted", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "boolean", |
|||
nullable: false, |
|||
defaultValue: false); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "StackId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "栈ID"); |
|||
|
|||
migrationBuilder.AddColumn<DateTime>( |
|||
name: "UpdatedAt", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "timestamp with time zone", |
|||
nullable: false, |
|||
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), |
|||
comment: "更新时间"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "UpdatedBy", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
type: "text", |
|||
nullable: true); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "StackId", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "栈ID"); |
|||
|
|||
migrationBuilder.AddUniqueConstraint( |
|||
name: "AK_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs", |
|||
column: "StackId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "StackId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_Stack_CoreIMS_Bindings_StackId_Index", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
columns: new[] { "StackId", "Index" }, |
|||
unique: true); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_NetworkStackConfigs_StackId", |
|||
table: "NetworkStackConfigs", |
|||
column: "StackId", |
|||
unique: true); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_CoreNetworkConfigs_CnId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "CnId", |
|||
principalTable: "CoreNetworkConfigs", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_IMS_Configurations_ImsId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "ImsId", |
|||
principalTable: "IMS_Configurations", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
|
|||
migrationBuilder.AddForeignKey( |
|||
name: "FK_Stack_CoreIMS_Bindings_NetworkStackConfigs_StackId", |
|||
table: "Stack_CoreIMS_Bindings", |
|||
column: "StackId", |
|||
principalTable: "NetworkStackConfigs", |
|||
principalColumn: "StackId", |
|||
onDelete: ReferentialAction.Cascade); |
|||
} |
|||
} |
|||
} |
@ -1,923 +0,0 @@ |
|||
// <auto-generated />
|
|||
using System; |
|||
using CellularManagement.Infrastructure.Context; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
|||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
[DbContext(typeof(AppDbContext))] |
|||
[Migration("20250729142128_AddNetworkCodeToNetworkStackConfig")] |
|||
partial class AddNetworkCodeToNetworkStackConfig |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|||
{ |
|||
#pragma warning disable 612, 618
|
|||
modelBuilder |
|||
.HasAnnotation("ProductVersion", "8.0.0") |
|||
.HasAnnotation("Relational:MaxIdentifierLength", 63); |
|||
|
|||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppRole", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("角色ID,主键"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("角色描述"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("角色名称"); |
|||
|
|||
b.Property<string>("NormalizedName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化角色名称(大写)"); |
|||
|
|||
b.Property<DateTime>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Roles_Name"); |
|||
|
|||
b.HasIndex("NormalizedName") |
|||
.IsUnique() |
|||
.HasDatabaseName("RoleNameIndex"); |
|||
|
|||
b.ToTable("Roles", null, t => |
|||
{ |
|||
t.HasComment("角色表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.AppUser", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("用户ID,主键"); |
|||
|
|||
b.Property<int>("AccessFailedCount") |
|||
.HasColumnType("integer") |
|||
.HasComment("登录失败次数"); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken() |
|||
.HasColumnType("text") |
|||
.HasComment("并发控制戳"); |
|||
|
|||
b.Property<DateTime>("CreatedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("Email") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("电子邮箱"); |
|||
|
|||
b.Property<bool>("EmailConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("邮箱是否已验证"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(true) |
|||
.HasComment("用户状态(true: 启用, false: 禁用)"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.ValueGeneratedOnAdd() |
|||
.HasColumnType("boolean") |
|||
.HasDefaultValue(false) |
|||
.HasComment("是否已删除"); |
|||
|
|||
b.Property<DateTime?>("LastLoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("最后登录时间"); |
|||
|
|||
b.Property<bool>("LockoutEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用账户锁定"); |
|||
|
|||
b.Property<DateTimeOffset?>("LockoutEnd") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("账户锁定结束时间"); |
|||
|
|||
b.Property<DateTime?>("ModifiedTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("修改时间"); |
|||
|
|||
b.Property<string>("NormalizedEmail") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化电子邮箱(大写)"); |
|||
|
|||
b.Property<string>("NormalizedUserName") |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("标准化账号(大写)"); |
|||
|
|||
b.Property<string>("PasswordHash") |
|||
.HasColumnType("text") |
|||
.HasComment("密码哈希值"); |
|||
|
|||
b.Property<string>("PhoneNumber") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("电话号码"); |
|||
|
|||
b.Property<bool>("PhoneNumberConfirmed") |
|||
.HasColumnType("boolean") |
|||
.HasComment("电话号码是否已验证"); |
|||
|
|||
b.Property<string>("RealName") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("用户名"); |
|||
|
|||
b.Property<string>("SecurityStamp") |
|||
.HasColumnType("text") |
|||
.HasComment("安全戳,用于并发控制"); |
|||
|
|||
b.Property<bool>("TwoFactorEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用双因素认证"); |
|||
|
|||
b.Property<string>("UserName") |
|||
.IsRequired() |
|||
.HasMaxLength(256) |
|||
.HasColumnType("character varying(256)") |
|||
.HasComment("账号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Email") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_Email"); |
|||
|
|||
b.HasIndex("NormalizedEmail") |
|||
.HasDatabaseName("EmailIndex"); |
|||
|
|||
b.HasIndex("NormalizedUserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("UserNameIndex"); |
|||
|
|||
b.HasIndex("PhoneNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_PhoneNumber"); |
|||
|
|||
b.HasIndex("UserName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Users_UserName"); |
|||
|
|||
b.ToTable("Users", null, t => |
|||
{ |
|||
t.HasComment("用户表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("设备ID"); |
|||
|
|||
b.Property<int>("AgentPort") |
|||
.HasColumnType("integer") |
|||
.HasComment("Agent端口"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备描述"); |
|||
|
|||
b.Property<string>("DeviceCode") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("设备编码"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(45) |
|||
.HasColumnType("character varying(45)") |
|||
.HasComment("IP地址"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<bool>("IsRunning") |
|||
.HasColumnType("boolean") |
|||
.HasComment("设备状态(启动/未启动)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("设备名称"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("DeviceCode") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_CellularDevices_DeviceCode"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_CellularDevices_SerialNumber"); |
|||
|
|||
b.ToTable("CellularDevices", null, t => |
|||
{ |
|||
t.HasComment("蜂窝设备表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("版本ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("版本描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsEnabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否启用"); |
|||
|
|||
b.Property<string>("MinimumSupportedVersion") |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("最低支持版本"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("版本名称"); |
|||
|
|||
b.Property<DateTime?>("ReleaseDate") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("发布日期"); |
|||
|
|||
b.Property<string>("SerialNumber") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("设备序列号"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Version") |
|||
.IsRequired() |
|||
.HasMaxLength(20) |
|||
.HasColumnType("character varying(20)") |
|||
.HasComment("版本号"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("SerialNumber") |
|||
.HasDatabaseName("IX_ProtocolVersions_SerialNumber"); |
|||
|
|||
b.HasIndex("Version") |
|||
.HasDatabaseName("IX_ProtocolVersions_Version"); |
|||
|
|||
b.ToTable("ProtocolVersions", null, t => |
|||
{ |
|||
t.HasComment("协议版本表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("日志ID"); |
|||
|
|||
b.Property<string>("Browser") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("浏览器信息"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("FailureReason") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("失败原因"); |
|||
|
|||
b.Property<string>("IpAddress") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("登录IP"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsSuccess") |
|||
.HasColumnType("boolean") |
|||
.HasComment("登录状态(成功/失败)"); |
|||
|
|||
b.Property<string>("Location") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)") |
|||
.HasComment("登录位置"); |
|||
|
|||
b.Property<string>("LoginSource") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("LoginTime") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("登录时间"); |
|||
|
|||
b.Property<string>("LoginType") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("OperatingSystem") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("操作系统信息"); |
|||
|
|||
b.Property<string>("SessionId") |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("UserAgent") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("设备信息"); |
|||
|
|||
b.Property<string>("UserId") |
|||
.IsRequired() |
|||
.HasMaxLength(450) |
|||
.HasColumnType("character varying(450)") |
|||
.HasComment("用户ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IpAddress") |
|||
.HasDatabaseName("IX_LoginLogs_IpAddress"); |
|||
|
|||
b.HasIndex("LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_LoginTime"); |
|||
|
|||
b.HasIndex("UserId") |
|||
.HasDatabaseName("IX_LoginLogs_UserId"); |
|||
|
|||
b.HasIndex("UserId", "LoginTime") |
|||
.HasDatabaseName("IX_LoginLogs_UserId_LoginTime"); |
|||
|
|||
b.ToTable("LoginLogs", null, t => |
|||
{ |
|||
t.HasComment("用户登录日志表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_CoreNetworkConfigs_Name"); |
|||
|
|||
b.ToTable("CoreNetworkConfigs", null, t => |
|||
{ |
|||
t.HasComment("核心网配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_IMS_Configurations_Name"); |
|||
|
|||
b.ToTable("IMS_Configurations", null, t => |
|||
{ |
|||
t.HasComment("IMS配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("描述"); |
|||
|
|||
b.Property<bool>("IsActive") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否激活"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<string>("NetworkCode") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("NetworkStackName") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("网络栈名称"); |
|||
|
|||
b.Property<string>("RanId") |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("RAN配置ID"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("IsActive") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_IsActive"); |
|||
|
|||
b.HasIndex("NetworkStackName") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_NetworkStackConfigs_NetworkStackName"); |
|||
|
|||
b.HasIndex("RanId") |
|||
.HasDatabaseName("IX_NetworkStackConfigs_RanId"); |
|||
|
|||
b.ToTable("NetworkStackConfigs", null, t => |
|||
{ |
|||
t.HasComment("网络栈配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("配置ID"); |
|||
|
|||
b.Property<string>("ConfigContent") |
|||
.IsRequired() |
|||
.HasColumnType("text") |
|||
.HasComment("配置内容(JSON格式)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("创建时间"); |
|||
|
|||
b.Property<string>("CreatedBy") |
|||
.IsRequired() |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Description") |
|||
.IsRequired() |
|||
.HasMaxLength(500) |
|||
.HasColumnType("character varying(500)") |
|||
.HasComment("配置描述"); |
|||
|
|||
b.Property<bool>("IsDeleted") |
|||
.HasColumnType("boolean"); |
|||
|
|||
b.Property<bool>("IsDisabled") |
|||
.HasColumnType("boolean") |
|||
.HasComment("是否禁用"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(100) |
|||
.HasColumnType("character varying(100)") |
|||
.HasComment("配置名称"); |
|||
|
|||
b.Property<DateTime?>("UpdatedAt") |
|||
.IsRequired() |
|||
.HasColumnType("timestamp with time zone") |
|||
.HasComment("更新时间"); |
|||
|
|||
b.Property<string>("UpdatedBy") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name") |
|||
.HasDatabaseName("IX_RAN_Configurations_Name"); |
|||
|
|||
b.ToTable("RAN_Configurations", null, t => |
|||
{ |
|||
t.HasComment("RAN配置表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text") |
|||
.HasComment("绑定关系ID"); |
|||
|
|||
b.Property<string>("CnId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("核心网配置ID"); |
|||
|
|||
b.Property<string>("ImsId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("IMS配置ID"); |
|||
|
|||
b.Property<int>("Index") |
|||
.HasColumnType("integer") |
|||
.HasComment("索引"); |
|||
|
|||
b.Property<string>("NetworkStackConfigId") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)") |
|||
.HasComment("网络栈配置ID"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("CnId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_CnId"); |
|||
|
|||
b.HasIndex("ImsId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_ImsId"); |
|||
|
|||
b.HasIndex("NetworkStackConfigId") |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_NetworkStackConfigId"); |
|||
|
|||
b.HasIndex("NetworkStackConfigId", "Index") |
|||
.IsUnique() |
|||
.HasDatabaseName("IX_Stack_CoreIMS_Bindings_NetworkStackConfigId_Index"); |
|||
|
|||
b.ToTable("Stack_CoreIMS_Bindings", null, t => |
|||
{ |
|||
t.HasComment("栈与核心网/IMS绑定关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Property<string>("Id") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("Code") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.Property<string>("Description") |
|||
.HasMaxLength(200) |
|||
.HasColumnType("character varying(200)"); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.Property<string>("Type") |
|||
.IsRequired() |
|||
.HasMaxLength(50) |
|||
.HasColumnType("character varying(50)"); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.ToTable("Permissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("PermissionId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<DateTime>("CreatedAt") |
|||
.HasColumnType("timestamp with time zone"); |
|||
|
|||
b.HasKey("RoleId", "PermissionId"); |
|||
|
|||
b.HasIndex("PermissionId"); |
|||
|
|||
b.ToTable("RolePermissions", (string)null); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.Property<string>("UserId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.Property<string>("RoleId") |
|||
.HasColumnType("text"); |
|||
|
|||
b.HasKey("UserId", "RoleId"); |
|||
|
|||
b.HasIndex("RoleId"); |
|||
|
|||
b.ToTable("UserRoles", null, t => |
|||
{ |
|||
t.HasComment("用户角色关系表"); |
|||
}); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.ProtocolVersion", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Device.CellularDevice", null) |
|||
.WithMany("ProtocolVersions") |
|||
.HasForeignKey("SerialNumber") |
|||
.HasPrincipalKey("SerialNumber") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Logging.LoginLog", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", null) |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.RAN_Configuration", null) |
|||
.WithMany() |
|||
.HasForeignKey("RanId") |
|||
.OnDelete(DeleteBehavior.SetNull); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.Stack_CoreIMS_Binding", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.CoreNetworkConfig", "CoreNetworkConfig") |
|||
.WithMany() |
|||
.HasForeignKey("CnId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.IMS_Configuration", "IMSConfiguration") |
|||
.WithMany() |
|||
.HasForeignKey("ImsId") |
|||
.OnDelete(DeleteBehavior.Restrict) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", "NetworkStackConfig") |
|||
.WithMany("StackCoreIMSBindings") |
|||
.HasForeignKey("NetworkStackConfigId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("CoreNetworkConfig"); |
|||
|
|||
b.Navigation("IMSConfiguration"); |
|||
|
|||
b.Navigation("NetworkStackConfig"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.RolePermission", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.Permission", "Permission") |
|||
.WithMany("RolePermissions") |
|||
.HasForeignKey("PermissionId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Permission"); |
|||
|
|||
b.Navigation("Role"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.UserRole", b => |
|||
{ |
|||
b.HasOne("CellularManagement.Domain.Entities.AppRole", "Role") |
|||
.WithMany() |
|||
.HasForeignKey("RoleId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.HasOne("CellularManagement.Domain.Entities.AppUser", "User") |
|||
.WithMany() |
|||
.HasForeignKey("UserId") |
|||
.OnDelete(DeleteBehavior.Cascade) |
|||
.IsRequired(); |
|||
|
|||
b.Navigation("Role"); |
|||
|
|||
b.Navigation("User"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Device.CellularDevice", b => |
|||
{ |
|||
b.Navigation("ProtocolVersions"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.NetworkProfile.NetworkStackConfig", b => |
|||
{ |
|||
b.Navigation("StackCoreIMSBindings"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("CellularManagement.Domain.Entities.Permission", b => |
|||
{ |
|||
b.Navigation("RolePermissions"); |
|||
}); |
|||
#pragma warning restore 612, 618
|
|||
} |
|||
} |
|||
} |
@ -1,52 +0,0 @@ |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
/// <inheritdoc />
|
|||
public partial class AddNetworkCodeToNetworkStackConfig : Migration |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkCode", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: true); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "DeviceCode", |
|||
table: "CellularDevices", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
defaultValue: "", |
|||
comment: "设备编码"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_CellularDevices_DeviceCode", |
|||
table: "CellularDevices", |
|||
column: "DeviceCode", |
|||
unique: true); |
|||
} |
|||
|
|||
/// <inheritdoc />
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropIndex( |
|||
name: "IX_CellularDevices_DeviceCode", |
|||
table: "CellularDevices"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkCode", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "DeviceCode", |
|||
table: "CellularDevices"); |
|||
} |
|||
} |
|||
} |
@ -1,76 +0,0 @@ |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
#nullable disable |
|||
|
|||
namespace X1.Infrastructure.Migrations |
|||
{ |
|||
/// <inheritdoc />
|
|||
public partial class AddNetworkStackCode : Migration |
|||
{ |
|||
/// <inheritdoc />
|
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkCode", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkStackCode", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: true, |
|||
comment: "网络栈编码"); |
|||
|
|||
// 为现有数据生成编码
|
|||
migrationBuilder.Sql(@"
|
|||
WITH numbered_configs AS ( |
|||
SELECT |
|||
""Id"", |
|||
ROW_NUMBER() OVER (ORDER BY ""CreatedAt"") as row_num, |
|||
to_char(""CreatedAt"", 'YYYYMMDD-HH24MISS-MS') as time_stamp |
|||
FROM ""NetworkStackConfigs"" |
|||
WHERE ""NetworkStackCode"" IS NULL |
|||
) |
|||
UPDATE ""NetworkStackConfigs"" |
|||
SET ""NetworkStackCode"" = 'NSC-' || nc.time_stamp || '-' || LPAD(nc.row_num::text, 3, '0') |
|||
FROM numbered_configs nc |
|||
WHERE ""NetworkStackConfigs"".""Id"" = nc.""Id""; |
|||
");
|
|||
|
|||
// 设置字段为非空
|
|||
migrationBuilder.AlterColumn<string>( |
|||
name: "NetworkStackCode", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: false, |
|||
comment: "网络栈编码"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_NetworkStackConfigs_NetworkStackCode", |
|||
table: "NetworkStackConfigs", |
|||
column: "NetworkStackCode", |
|||
unique: true); |
|||
} |
|||
|
|||
/// <inheritdoc />
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropIndex( |
|||
name: "IX_NetworkStackConfigs_NetworkStackCode", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.DropColumn( |
|||
name: "NetworkStackCode", |
|||
table: "NetworkStackConfigs"); |
|||
|
|||
migrationBuilder.AddColumn<string>( |
|||
name: "NetworkCode", |
|||
table: "NetworkStackConfigs", |
|||
type: "character varying(50)", |
|||
maxLength: 50, |
|||
nullable: true); |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue