//
using System;
using Bit.Core.Repositories.EntityFramework;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace Bit.PostgresMigrations.Migrations
{
[DbContext(typeof(DatabaseContext))]
[Migration("20211108225011_OrganizationSponsorship")]
partial class OrganizationSponsorship
{
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("Relational:MaxIdentifierLength", 63)
.HasAnnotation("ProductVersion", "5.0.9")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Cipher", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("Attachments")
.HasColumnType("text");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("DeletedDate")
.HasColumnType("timestamp without 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 without time zone");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("Cipher");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Collection", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without 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 without time zone");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("Collection");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.CollectionCipher", b =>
{
b.Property("CollectionId")
.HasColumnType("uuid");
b.Property("CipherId")
.HasColumnType("uuid");
b.HasKey("CollectionId", "CipherId");
b.HasIndex("CipherId");
b.ToTable("CollectionCipher");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.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.Core.Models.EntityFramework.CollectionUser", b =>
{
b.Property("CollectionId")
.HasColumnType("uuid");
b.Property("OrganizationUserId")
.HasColumnType("uuid");
b.Property("HidePasswords")
.HasColumnType("boolean");
b.Property("ReadOnly")
.HasColumnType("boolean");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("CollectionId", "OrganizationUserId");
b.HasIndex("OrganizationUserId");
b.HasIndex("UserId");
b.ToTable("CollectionUsers");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Device", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without 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 without time zone");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Device");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.EmergencyAccess", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without 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 without time zone");
b.Property("RecoveryInitiatedDate")
.HasColumnType("timestamp without time zone");
b.Property("RevisionDate")
.HasColumnType("timestamp without 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");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.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 without time zone");
b.Property("DeviceType")
.HasColumnType("smallint");
b.Property("GroupId")
.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("Type")
.HasColumnType("integer");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.ToTable("Event");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Folder", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Name")
.HasColumnType("text");
b.Property("RevisionDate")
.HasColumnType("timestamp without time zone");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Folder");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.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 without time zone");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("Description")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("ExpirationDate")
.HasColumnType("timestamp without 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");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Group", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessAll")
.HasColumnType("boolean");
b.Property("CreationDate")
.HasColumnType("timestamp without 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 without time zone");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("Group");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.GroupUser", b =>
{
b.Property("GroupId")
.HasColumnType("uuid");
b.Property("OrganizationUserId")
.HasColumnType("uuid");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("GroupId", "OrganizationUserId");
b.HasIndex("OrganizationUserId");
b.HasIndex("UserId");
b.ToTable("GroupUser");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Installation", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without 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");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Organization", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("ApiKey")
.HasMaxLength(30)
.HasColumnType("character varying(30)");
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 without time zone");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("ExpirationDate")
.HasColumnType("timestamp without 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 without 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 without 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("UseDirectory")
.HasColumnType("boolean");
b.Property("UseEvents")
.HasColumnType("boolean");
b.Property("UseGroups")
.HasColumnType("boolean");
b.Property("UsePolicies")
.HasColumnType("boolean");
b.Property("UseResetPassword")
.HasColumnType("boolean");
b.Property("UseSso")
.HasColumnType("boolean");
b.Property("UseTotp")
.HasColumnType("boolean");
b.Property("UsersGetPremium")
.HasColumnType("boolean");
b.HasKey("Id");
b.ToTable("Organization");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.OrganizationSponsorship", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CloudSponsor")
.HasColumnType("boolean");
b.Property("FriendlyName")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property("InstallationId")
.HasColumnType("uuid");
b.Property("LastSyncDate")
.HasColumnType("timestamp without 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("SponsorshipLapsedDate")
.HasColumnType("timestamp without time zone");
b.Property("TimesRenewedWithoutValidation")
.HasColumnType("smallint");
b.HasKey("Id");
b.HasIndex("InstallationId");
b.HasIndex("SponsoredOrganizationId");
b.HasIndex("SponsoringOrganizationId");
b.ToTable("OrganizationSponsorship");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.OrganizationUser", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessAll")
.HasColumnType("boolean");
b.Property("CreationDate")
.HasColumnType("timestamp without 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 without 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");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Policy", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp without time zone");
b.Property("Type")
.HasColumnType("smallint");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("Policy");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Provider.Provider", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("BillingEmail")
.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 without time zone");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("Name")
.HasColumnType("text");
b.Property("RevisionDate")
.HasColumnType("timestamp without time zone");
b.Property("Status")
.HasColumnType("smallint");
b.Property("UseEvents")
.HasColumnType("boolean");
b.HasKey("Id");
b.ToTable("Provider");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Provider.ProviderOrganization", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Key")
.HasColumnType("text");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("ProviderId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp without time zone");
b.Property("Settings")
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("ProviderId");
b.ToTable("ProviderOrganization");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Provider.ProviderUser", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("CreationDate")
.HasColumnType("timestamp without 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 without 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");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Send", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccessCount")
.HasColumnType("integer");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("DeletionDate")
.HasColumnType("timestamp without time zone");
b.Property("Disabled")
.HasColumnType("boolean");
b.Property("ExpirationDate")
.HasColumnType("timestamp without 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 without time zone");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("Send");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.SsoConfig", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Data")
.HasColumnType("text");
b.Property("Enabled")
.HasColumnType("boolean");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("RevisionDate")
.HasColumnType("timestamp without time zone");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.ToTable("SsoConfig");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.SsoUser", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("ExternalId")
.HasMaxLength(50)
.HasColumnType("character varying(50)")
.UseCollation("postgresIndetermanisticCollation");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("SsoUser");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.TaxRate", b =>
{
b.Property("Id")
.HasMaxLength(40)
.HasColumnType("character varying(40)");
b.Property("Active")
.HasColumnType("boolean");
b.Property("Country")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("PostalCode")
.HasMaxLength(10)
.HasColumnType("character varying(10)");
b.Property("Rate")
.HasColumnType("numeric");
b.Property("State")
.HasMaxLength(2)
.HasColumnType("character varying(2)");
b.HasKey("Id");
b.ToTable("TaxRate");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.Transaction", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("Amount")
.HasColumnType("numeric");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("Details")
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property("Gateway")
.HasColumnType("smallint");
b.Property("GatewayId")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("OrganizationId")
.HasColumnType("uuid");
b.Property("PaymentMethodType")
.HasColumnType("smallint");
b.Property("Refunded")
.HasColumnType("boolean");
b.Property("RefundedAmount")
.HasColumnType("numeric");
b.Property("Type")
.HasColumnType("smallint");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("OrganizationId");
b.HasIndex("UserId");
b.ToTable("Transaction");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.U2f", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
b.Property("AppId")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property("Challenge")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("CreationDate")
.HasColumnType("timestamp without time zone");
b.Property("KeyHandle")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property("UserId")
.HasColumnType("uuid");
b.Property("Version")
.HasMaxLength(20)
.HasColumnType("character varying(20)");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("U2f");
});
modelBuilder.Entity("Bit.Core.Models.EntityFramework.User", b =>
{
b.Property("Id")
.HasColumnType("uuid");
b.Property("AccountRevisionDate")
.HasColumnType("timestamp without time zone");
b.Property("ApiKey")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property