// using System; using ColaFlow.Modules.Identity.Infrastructure.Persistence; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace ColaFlow.Modules.Identity.Infrastructure.Persistence.Migrations { [DbContext(typeof(IdentityDbContext))] partial class IdentityDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.10") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("ColaFlow.Modules.Identity.Domain.Aggregates.Tenants.Tenant", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); b.Property("MaxProjects") .HasColumnType("integer") .HasColumnName("max_projects"); b.Property("MaxStorageGB") .HasColumnType("integer") .HasColumnName("max_storage_gb"); b.Property("MaxUsers") .HasColumnType("integer") .HasColumnName("max_users"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("name"); b.Property("Plan") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("plan"); b.Property("Slug") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("slug"); b.Property("SsoConfig") .HasColumnType("jsonb") .HasColumnName("sso_config"); b.Property("Status") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("status"); b.Property("SuspendedAt") .HasColumnType("timestamp with time zone") .HasColumnName("suspended_at"); b.Property("SuspensionReason") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("suspension_reason"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("updated_at"); b.HasKey("Id"); b.HasIndex("Slug") .IsUnique() .HasDatabaseName("ix_tenants_slug"); b.ToTable("tenants", (string)null); }); modelBuilder.Entity("ColaFlow.Modules.Identity.Domain.Aggregates.Users.RefreshToken", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); b.Property("DeviceInfo") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("device_info"); b.Property("ExpiresAt") .HasColumnType("timestamp with time zone") .HasColumnName("expires_at"); b.Property("IpAddress") .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("ip_address"); b.Property("ReplacedByToken") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("replaced_by_token"); b.Property("RevokedAt") .HasColumnType("timestamp with time zone") .HasColumnName("revoked_at"); b.Property("RevokedReason") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("revoked_reason"); b.Property("TenantId") .HasColumnType("uuid") .HasColumnName("tenant_id"); b.Property("TokenHash") .IsRequired() .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("token_hash"); b.Property("UserAgent") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("user_agent"); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id"); b.HasIndex("ExpiresAt") .HasDatabaseName("ix_refresh_tokens_expires_at"); b.HasIndex("TenantId") .HasDatabaseName("ix_refresh_tokens_tenant_id"); b.HasIndex("TokenHash") .IsUnique() .HasDatabaseName("ix_refresh_tokens_token_hash"); b.HasIndex("UserId") .HasDatabaseName("ix_refresh_tokens_user_id"); b.ToTable("refresh_tokens", "identity"); }); modelBuilder.Entity("ColaFlow.Modules.Identity.Domain.Aggregates.Users.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("AuthProvider") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("auth_provider"); b.Property("AvatarUrl") .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("avatar_url"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); b.Property("Email") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("email"); b.Property("EmailVerificationToken") .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("email_verification_token"); b.Property("EmailVerifiedAt") .HasColumnType("timestamp with time zone") .HasColumnName("email_verified_at"); b.Property("ExternalEmail") .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("external_email"); b.Property("ExternalUserId") .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("external_user_id"); b.Property("FullName") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("full_name"); b.Property("JobTitle") .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("job_title"); b.Property("LastLoginAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_login_at"); b.Property("PasswordHash") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("password_hash"); b.Property("PasswordResetToken") .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("password_reset_token"); b.Property("PasswordResetTokenExpiresAt") .HasColumnType("timestamp with time zone") .HasColumnName("password_reset_token_expires_at"); b.Property("PhoneNumber") .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("phone_number"); b.Property("Status") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("status"); b.Property("TenantId") .HasColumnType("uuid") .HasColumnName("tenant_id"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone") .HasColumnName("updated_at"); b.HasKey("Id"); b.HasIndex("TenantId", "Email") .IsUnique() .HasDatabaseName("ix_users_tenant_id_email"); b.ToTable("users", (string)null); }); modelBuilder.Entity("ColaFlow.Modules.Identity.Domain.Aggregates.Users.UserTenantRole", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("AssignedAt") .HasColumnType("timestamp with time zone") .HasColumnName("assigned_at"); b.Property("AssignedByUserId") .HasColumnType("uuid") .HasColumnName("assigned_by_user_id"); b.Property("Role") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("role"); b.Property("TenantId") .HasColumnType("uuid") .HasColumnName("tenant_id"); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id"); b.HasIndex("Role") .HasDatabaseName("ix_user_tenant_roles_role"); b.HasIndex("TenantId") .HasDatabaseName("ix_user_tenant_roles_tenant_id"); b.HasIndex("UserId") .HasDatabaseName("ix_user_tenant_roles_user_id"); b.HasIndex("UserId", "TenantId") .IsUnique() .HasDatabaseName("uq_user_tenant_roles_user_tenant"); b.ToTable("user_tenant_roles", "identity"); }); #pragma warning restore 612, 618 } } }