//
using System;
using Bit.Infrastructure.EntityFramework.Repositories;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Bit.PostgresMigrations.Migrations
{
[DbContext(typeof(DatabaseContext))]
[Migration("20230201192558_LastUserDates")]
partial class LastUserDates
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Npgsql:CollationDefinition:postgresIndetermanisticCollation", "en-u-ks-primary,en-u-ks-primary,icu,False")
.HasAnnotation("ProductVersion", "6.0.12")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.AuthRequest", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessCode")
.HasMaxLength(25)
.HasColumnType("character varying(25)");
b.Property("Approved")
.HasColumnType("boolean");
b.Property("AuthenticationDate")
.HasColumnType("timestamp with time zone");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Key")
.HasColumnType("text");
b.Property("MasterPasswordHash")
.HasColumnType("text");
b.Property("PublicKey")
.HasColumnType("text");
b.Property("RequestDeviceIdentifier")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("RequestDeviceType")
.HasColumnType("smallint");
b.Property("RequestFingerprint")
.HasColumnType("text");
b.Property("RequestIpAddress")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("ResponseDate")
.HasColumnType("timestamp with time zone");
b.Property("ResponseDeviceId")
.HasColumnType("uuid");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ResponseDeviceId");
b.HasIndex("UserId");
b.ToTable("AuthRequest", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Cipher", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("Attachments")
.HasColumnType("text");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("DeletedDate")
.HasColumnType("timestamp with time zone");
b.Property("Favorites")
.HasColumnType("text");
b.Property("Folders")
.HasColumnType("text");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("Reprompt")
.HasColumnType("smallint");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("Cipher", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Collection", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("ExternalId")
.HasMaxLength(300)
.HasColumnType("character varying(300)");
b.Property("Name")
.HasColumnType("text");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("Collection", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionCipher", b =>
{
b.Property("CollectionId")
.HasColumnType("uuid");
b.Property("CipherId")
.HasColumnType("uuid");
b.HasKey("CollectionId", "CipherId");
b.HasIndex("CipherId");
b.ToTable("CollectionCipher", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionGroup", b =>
{
b.Property("CollectionId")
.HasColumnType("uuid");
b.Property("GroupId")
.HasColumnType("uuid");
b.Property("HidePasswords")
.HasColumnType("boolean");
b.Property("ReadOnly")
.HasColumnType("boolean");
b.HasKey("CollectionId", "GroupId");
b.HasIndex("GroupId");
b.ToTable("CollectionGroups");
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionUser", b =>
{
b.Property("CollectionId")
.HasColumnType("uuid");
b.Property("OrganizationUserId")
.HasColumnType("uuid");
b.Property("HidePasswords")
.HasColumnType("boolean");
b.Property("ReadOnly")
.HasColumnType("boolean");
b.HasKey("CollectionId", "OrganizationUserId");
b.HasIndex("OrganizationUserId");
b.ToTable("CollectionUsers");
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Device", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Identifier")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("Name")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("PushToken")
.HasMaxLength(255)
.HasColumnType("character varying(255)");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Device", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.EmergencyAccess", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Email")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("GranteeId")
.HasColumnType("uuid");
b.Property("GrantorId")
.HasColumnType("uuid");
b.Property("KeyEncrypted")
.HasColumnType("text");
b.Property("LastNotificationDate")
.HasColumnType("timestamp with time zone");
b.Property("RecoveryInitiatedDate")
.HasColumnType("timestamp with time zone");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Status")
.HasColumnType("smallint");
b.Property("Type")
.HasColumnType("smallint");
b.Property("WaitTimeDays")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("GranteeId");
b.HasIndex("GrantorId");
b.ToTable("EmergencyAccess", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Event", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("ActingUserId")
.HasColumnType("uuid");
b.Property("CipherId")
.HasColumnType("uuid");
b.Property("CollectionId")
.HasColumnType("uuid");
b.Property("Date")
.HasColumnType("timestamp with time zone");
b.Property("DeviceType")
.HasColumnType("smallint");
b.Property("GroupId")
.HasColumnType("uuid");
b.Property("InstallationId")
.HasColumnType("uuid");
b.Property("IpAddress")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("OrganizationUserId")
.HasColumnType("uuid");
b.Property("PolicyId")
.HasColumnType("uuid");
b.Property("ProviderId")
.HasColumnType("uuid");
b.Property("ProviderOrganizationId")
.HasColumnType("uuid");
b.Property("ProviderUserId")
.HasColumnType("uuid");
b.Property("SystemUser")
.HasColumnType("smallint");
b.Property("Type")
.HasColumnType("integer");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.ToTable("Event", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Folder", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Name")
.HasColumnType("text");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Folder", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Grant", b =>
{
b.Property("Key")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("ClientId")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("ConsumedDate")
.HasColumnType("timestamp with time zone");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("Description")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("ExpirationDate")
.HasColumnType("timestamp with time zone");
b.Property("SessionId")
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("SubjectId")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("Type")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.HasKey("Key");
b.ToTable("Grant", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Group", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessAll")
.HasColumnType("boolean");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("ExternalId")
.HasMaxLength(300)
.HasColumnType("character varying(300)");
b.Property("Name")
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("Group", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.GroupUser", b =>
{
b.Property("GroupId")
.HasColumnType("uuid");
b.Property("OrganizationUserId")
.HasColumnType("uuid");
b.HasKey("GroupId", "OrganizationUserId");
b.HasIndex("OrganizationUserId");
b.ToTable("GroupUser", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Installation", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Email")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("Key")
.HasMaxLength(150)
.HasColumnType("character varying(150)");
b.HasKey("Id");
b.ToTable("Installation", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Organization", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("BillingEmail")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("BusinessAddress1")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("BusinessAddress2")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("BusinessAddress3")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("BusinessCountry")
.HasMaxLength(2)
.HasColumnType("character varying(2)");
b.Property("BusinessName")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("BusinessTaxNumber")
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("ExpirationDate")
.HasColumnType("timestamp with time zone");
b.Property("Gateway")
.HasColumnType("smallint");
b.Property("GatewayCustomerId")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("GatewaySubscriptionId")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("Identifier")
.HasMaxLength(50)
.HasColumnType("character varying(50)")
.UseCollation("postgresIndetermanisticCollation");
b.Property("LicenseKey")
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("MaxAutoscaleSeats")
.HasColumnType("integer");
b.Property("MaxCollections")
.HasColumnType("smallint");
b.Property("MaxStorageGb")
.HasColumnType("smallint");
b.Property("Name")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("OwnersNotifiedOfAutoscaling")
.HasColumnType("timestamp with time zone");
b.Property("Plan")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("PlanType")
.HasColumnType("smallint");
b.Property("PrivateKey")
.HasColumnType("text");
b.Property("PublicKey")
.HasColumnType("text");
b.Property("ReferenceData")
.HasColumnType("text");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Seats")
.HasColumnType("integer");
b.Property("SelfHost")
.HasColumnType("boolean");
b.Property("Storage")
.HasColumnType("bigint");
b.Property("TwoFactorProviders")
.HasColumnType("text");
b.Property("Use2fa")
.HasColumnType("boolean");
b.Property("UseApi")
.HasColumnType("boolean");
b.Property("UseCustomPermissions")
.HasColumnType("boolean");
b.Property("UseDirectory")
.HasColumnType("boolean");
b.Property("UseEvents")
.HasColumnType("boolean");
b.Property("UseGroups")
.HasColumnType("boolean");
b.Property("UseKeyConnector")
.HasColumnType("boolean");
b.Property("UsePolicies")
.HasColumnType("boolean");
b.Property("UseResetPassword")
.HasColumnType("boolean");
b.Property("UseScim")
.HasColumnType("boolean");
b.Property("UseSecretsManager")
.HasColumnType("boolean");
b.Property("UseSso")
.HasColumnType("boolean");
b.Property("UseTotp")
.HasColumnType("boolean");
b.Property("UsersGetPremium")
.HasColumnType("boolean");
b.HasKey("Id");
b.ToTable("Organization", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationApiKey", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("ApiKey")
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Type")
.HasColumnType("smallint");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("OrganizationApiKey", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationConnection", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("Config")
.HasColumnType("text");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("Type")
.HasColumnType("smallint");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("OrganizationConnection", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationSponsorship", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("FriendlyName")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("LastSyncDate")
.HasColumnType("timestamp with time zone");
b.Property("OfferedToEmail")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("PlanSponsorshipType")
.HasColumnType("smallint");
b.Property("SponsoredOrganizationId")
.HasColumnType("uuid");
b.Property("SponsoringOrganizationId")
.HasColumnType("uuid");
b.Property("SponsoringOrganizationUserId")
.HasColumnType("uuid");
b.Property("ToDelete")
.HasColumnType("boolean");
b.Property("ValidUntil")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("SponsoredOrganizationId");
b.HasIndex("SponsoringOrganizationId");
b.ToTable("OrganizationSponsorship", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessAll")
.HasColumnType("boolean");
b.Property("AccessSecretsManager")
.HasColumnType("boolean");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Email")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("ExternalId")
.HasMaxLength(300)
.HasColumnType("character varying(300)");
b.Property("Key")
.HasColumnType("text");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("Permissions")
.HasColumnType("text");
b.Property("ResetPasswordKey")
.HasColumnType("text");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Status")
.HasColumnType("smallint");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("OrganizationUser", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Policy", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Type")
.HasColumnType("smallint");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("Policy", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Provider", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("BillingEmail")
.HasColumnType("text");
b.Property("BillingPhone")
.HasColumnType("text");
b.Property("BusinessAddress1")
.HasColumnType("text");
b.Property("BusinessAddress2")
.HasColumnType("text");
b.Property("BusinessAddress3")
.HasColumnType("text");
b.Property("BusinessCountry")
.HasColumnType("text");
b.Property("BusinessName")
.HasColumnType("text");
b.Property("BusinessTaxNumber")
.HasColumnType("text");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("Name")
.HasColumnType("text");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Status")
.HasColumnType("smallint");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UseEvents")
.HasColumnType("boolean");
b.HasKey("Id");
b.ToTable("Provider", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.ProviderOrganization", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Key")
.HasColumnType("text");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("ProviderId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Settings")
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("ProviderId");
b.ToTable("ProviderOrganization", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.ProviderUser", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Email")
.HasColumnType("text");
b.Property("Key")
.HasColumnType("text");
b.Property("Permissions")
.HasColumnType("text");
b.Property("ProviderId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Status")
.HasColumnType("smallint");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ProviderId");
b.HasIndex("UserId");
b.ToTable("ProviderUser", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Send", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessCount")
.HasColumnType("integer");
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("DeletionDate")
.HasColumnType("timestamp with time zone");
b.Property("Disabled")
.HasColumnType("boolean");
b.Property("ExpirationDate")
.HasColumnType("timestamp with time zone");
b.Property("HideEmail")
.HasColumnType("boolean");
b.Property("Key")
.HasColumnType("text");
b.Property("MaxAccessCount")
.HasColumnType("integer");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("Password")
.HasMaxLength(300)
.HasColumnType("character varying(300)");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("Send", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.SsoConfig", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("SsoConfig", (string)null);
});
modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.SsoUser", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property