//
using System;
using IOL.GreatOffice.Api.Models.Database;
using IOL.GreatOffice.Api.Models.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace IOL.GreatOffice.Api.Migrations
{
[DbContext(typeof(MainAppDatabase))]
[Migration("20221209041908_TenantSlug")]
partial class TenantSlug
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("CustomerCustomerGroup", b =>
{
b.Property("CustomersId")
.HasColumnType("uuid")
.HasColumnName("customers_id");
b.Property("GroupsId")
.HasColumnType("uuid")
.HasColumnName("groups_id");
b.HasKey("CustomersId", "GroupsId")
.HasName("pk_customer_customer_group");
b.HasIndex("GroupsId")
.HasDatabaseName("ix_customer_customer_group_groups_id");
b.ToTable("customer_customer_group", (string)null);
});
modelBuilder.Entity("CustomerProject", b =>
{
b.Property("CustomersId")
.HasColumnType("uuid")
.HasColumnName("customers_id");
b.Property("ProjectsId")
.HasColumnType("uuid")
.HasColumnName("projects_id");
b.HasKey("CustomersId", "ProjectsId")
.HasName("pk_customer_project");
b.HasIndex("ProjectsId")
.HasDatabaseName("ix_customer_project_projects_id");
b.ToTable("customer_project", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ApiAccessToken", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("AllowCreate")
.HasColumnType("boolean")
.HasColumnName("allow_create");
b.Property("AllowDelete")
.HasColumnType("boolean")
.HasColumnName("allow_delete");
b.Property("AllowRead")
.HasColumnType("boolean")
.HasColumnName("allow_read");
b.Property("AllowUpdate")
.HasColumnType("boolean")
.HasColumnName("allow_update");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("ExpiryDate")
.HasColumnType("timestamp with time zone")
.HasColumnName("expiry_date");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_api_access_tokens");
b.HasIndex("UserId")
.HasDatabaseName("ix_api_access_tokens_user_id");
b.ToTable("api_access_tokens", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Customer", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("Address1")
.HasColumnType("text")
.HasColumnName("address1");
b.Property("Address2")
.HasColumnType("text")
.HasColumnName("address2");
b.Property("Country")
.HasColumnType("text")
.HasColumnName("country");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Currency")
.HasColumnType("text")
.HasColumnName("currency");
b.Property("CustomerNumber")
.HasColumnType("text")
.HasColumnName("customer_number");
b.Property("DefaultReference")
.HasColumnType("text")
.HasColumnName("default_reference");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.Property("Email")
.HasColumnType("text")
.HasColumnName("email");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("ORGNumber")
.HasColumnType("text")
.HasColumnName("org_number");
b.Property("OwnerId")
.HasColumnType("uuid")
.HasColumnName("owner_id");
b.Property("Phone")
.HasColumnType("text")
.HasColumnName("phone");
b.Property("PostalCity")
.HasColumnType("text")
.HasColumnName("postal_city");
b.Property("PostalCode")
.HasColumnType("text")
.HasColumnName("postal_code");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.Property("VATNumber")
.HasColumnType("text")
.HasColumnName("vat_number");
b.Property("Website")
.HasColumnType("text")
.HasColumnName("website");
b.HasKey("Id")
.HasName("pk_customers");
b.HasIndex("OwnerId")
.HasDatabaseName("ix_customers_owner_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_customers_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_customers_user_id");
b.ToTable("customers", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.CustomerContact", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("CustomerId")
.HasColumnType("uuid")
.HasColumnName("customer_id");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("Email")
.HasColumnType("text")
.HasColumnName("email");
b.Property("FirstName")
.HasColumnType("text")
.HasColumnName("first_name");
b.Property("LastName")
.HasColumnType("text")
.HasColumnName("last_name");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Note")
.HasColumnType("text")
.HasColumnName("note");
b.Property("Phone")
.HasColumnType("text")
.HasColumnName("phone");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.Property("WorkTitle")
.HasColumnType("text")
.HasColumnName("work_title");
b.HasKey("Id")
.HasName("pk_customer_contacts");
b.HasIndex("CustomerId")
.HasDatabaseName("ix_customer_contacts_customer_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_customer_contacts_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_customer_contacts_user_id");
b.ToTable("customer_contacts", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.CustomerEvent", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("CustomerId")
.HasColumnType("uuid")
.HasColumnName("customer_id");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Note")
.HasColumnType("text")
.HasColumnName("note");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_customer_events");
b.HasIndex("CustomerId")
.HasDatabaseName("ix_customer_events_customer_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_customer_events_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_customer_events_user_id");
b.ToTable("customer_events", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.CustomerGroup", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_customer_groups");
b.HasIndex("TenantId")
.HasDatabaseName("ix_customer_groups_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_customer_groups_user_id");
b.ToTable("customer_groups", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.PasswordResetRequest", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_password_reset_requests");
b.HasIndex("UserId")
.HasDatabaseName("ix_password_reset_requests_user_id");
b.ToTable("password_reset_requests", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Project", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("Start")
.HasColumnType("timestamp with time zone")
.HasColumnName("start");
b.Property("Stop")
.HasColumnType("timestamp with time zone")
.HasColumnName("stop");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_projects");
b.HasIndex("TenantId")
.HasDatabaseName("ix_projects_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_projects_user_id");
b.ToTable("projects", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ProjectLabel", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("Color")
.HasColumnType("text")
.HasColumnName("color");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("ProjectId")
.HasColumnType("uuid")
.HasColumnName("project_id");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.Property("Value")
.HasColumnType("text")
.HasColumnName("value");
b.HasKey("Id")
.HasName("pk_project_labels");
b.HasIndex("ProjectId")
.HasDatabaseName("ix_project_labels_project_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_project_labels_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_project_labels_user_id");
b.ToTable("project_labels", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ProjectMember", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ProjectId")
.HasColumnType("uuid")
.HasColumnName("project_id");
b.Property("Role")
.HasColumnType("integer")
.HasColumnName("role");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_project_members");
b.HasIndex("ProjectId")
.HasDatabaseName("ix_project_members_project_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_project_members_user_id");
b.ToTable("project_members", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Tenant", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("ContactEmail")
.HasColumnType("text")
.HasColumnName("contact_email");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.Property("MasterUserId")
.HasColumnType("uuid")
.HasColumnName("master_user_id");
b.Property("MasterUserPassword")
.HasColumnType("text")
.HasColumnName("master_user_password");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("OwningTenantId")
.HasColumnType("uuid")
.HasColumnName("owning_tenant_id");
b.Property("Slug")
.HasColumnType("text")
.HasColumnName("slug");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_tenants");
b.HasIndex("OwningTenantId")
.HasDatabaseName("ix_tenants_owning_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_tenants_user_id");
b.ToTable("tenants", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Todo", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("AssignedToId")
.HasColumnType("uuid")
.HasColumnName("assigned_to_id");
b.Property("ClosedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("closed_at");
b.Property("ClosedById")
.HasColumnType("uuid")
.HasColumnName("closed_by_id");
b.Property("CollectionId")
.HasColumnType("uuid")
.HasColumnName("collection_id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("PublicId")
.HasColumnType("text")
.HasColumnName("public_id");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("Title")
.HasColumnType("text")
.HasColumnName("title");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_todos");
b.HasIndex("AssignedToId")
.HasDatabaseName("ix_todos_assigned_to_id");
b.HasIndex("ClosedById")
.HasDatabaseName("ix_todos_closed_by_id");
b.HasIndex("CollectionId")
.HasDatabaseName("ix_todos_collection_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_todos_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_todos_user_id");
b.ToTable("todos", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoCollection", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("ProjectId")
.HasColumnType("uuid")
.HasColumnName("project_id");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.Property("Visibility")
.HasColumnType("integer")
.HasColumnName("visibility");
b.HasKey("Id")
.HasName("pk_todo_collections");
b.HasIndex("ProjectId")
.HasDatabaseName("ix_todo_collections_project_id");
b.HasIndex("TenantId")
.HasDatabaseName("ix_todo_collections_tenant_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_todo_collections_user_id");
b.ToTable("todo_collections", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoCollectionAccessControl", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CanBrowse")
.HasColumnType("boolean")
.HasColumnName("can_browse");
b.Property("CanComment")
.HasColumnType("boolean")
.HasColumnName("can_comment");
b.Property("CanEdit")
.HasColumnType("boolean")
.HasColumnName("can_edit");
b.Property("CanSubmit")
.HasColumnType("boolean")
.HasColumnName("can_submit");
b.Property("CollectionId")
.HasColumnType("uuid")
.HasColumnName("collection_id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_todo_collection_access_controls");
b.HasIndex("CollectionId")
.HasDatabaseName("ix_todo_collection_access_controls_collection_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_todo_collection_access_controls_user_id");
b.ToTable("todo_collection_access_controls", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoComment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("ClosingStatement")
.HasColumnType("integer")
.HasColumnName("closing_statement");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("TodoId")
.HasColumnType("uuid")
.HasColumnName("todo_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.Property("Value")
.HasColumnType("text")
.HasColumnName("value");
b.HasKey("Id")
.HasName("pk_todo_comments");
b.HasIndex("TenantId")
.HasDatabaseName("ix_todo_comments_tenant_id");
b.HasIndex("TodoId")
.HasDatabaseName("ix_todo_comments_todo_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_todo_comments_user_id");
b.ToTable("todo_comments", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoLabel", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("Color")
.HasColumnType("text")
.HasColumnName("color");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("DeletedBy")
.HasColumnType("uuid")
.HasColumnName("deleted_by");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("ModifiedBy")
.HasColumnType("uuid")
.HasColumnName("modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("TodoId")
.HasColumnType("uuid")
.HasColumnName("todo_id");
b.Property("UserId")
.HasColumnType("uuid")
.HasColumnName("user_id");
b.HasKey("Id")
.HasName("pk_todo_labels");
b.HasIndex("TenantId")
.HasDatabaseName("ix_todo_labels_tenant_id");
b.HasIndex("TodoId")
.HasDatabaseName("ix_todo_labels_todo_id");
b.HasIndex("UserId")
.HasDatabaseName("ix_todo_labels_user_id");
b.ToTable("todo_labels", (string)null);
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property("Email")
.HasColumnType("text")
.HasColumnName("email");
b.Property("FirstName")
.HasColumnType("text")
.HasColumnName("first_name");
b.Property("LastName")
.HasColumnType("text")
.HasColumnName("last_name");
b.Property("ModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("modified_at");
b.Property("Password")
.HasColumnType("text")
.HasColumnName("password");
b.Property("TenantId")
.HasColumnType("uuid")
.HasColumnName("tenant_id");
b.Property("Username")
.HasColumnType("text")
.HasColumnName("username");
b.HasKey("Id")
.HasName("pk_users");
b.HasIndex("TenantId")
.HasDatabaseName("ix_users_tenant_id");
b.ToTable("users", (string)null);
});
modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("FriendlyName")
.HasColumnType("text")
.HasColumnName("friendly_name");
b.Property("Xml")
.HasColumnType("text")
.HasColumnName("xml");
b.HasKey("Id")
.HasName("pk_data_protection_keys");
b.ToTable("data_protection_keys", (string)null);
});
modelBuilder.Entity("CustomerCustomerGroup", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Customer", null)
.WithMany()
.HasForeignKey("CustomersId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_customer_customer_group_customers_customers_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.CustomerGroup", null)
.WithMany()
.HasForeignKey("GroupsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_customer_customer_group_customer_groups_groups_id");
});
modelBuilder.Entity("CustomerProject", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Customer", null)
.WithMany()
.HasForeignKey("CustomersId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_customer_project_customers_customers_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Project", null)
.WithMany()
.HasForeignKey("ProjectsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_customer_project_projects_projects_id");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ApiAccessToken", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_api_access_tokens_users_user_id");
b.Navigation("User");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Customer", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "Owner")
.WithMany()
.HasForeignKey("OwnerId")
.HasConstraintName("fk_customers_users_owner_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_customers_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_customers_users_user_id");
b.Navigation("Owner");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.CustomerContact", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Customer", "Customer")
.WithMany("Contacts")
.HasForeignKey("CustomerId")
.HasConstraintName("fk_customer_contacts_customers_customer_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_customer_contacts_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_customer_contacts_users_user_id");
b.Navigation("Customer");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.CustomerEvent", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Customer", "Customer")
.WithMany("Events")
.HasForeignKey("CustomerId")
.HasConstraintName("fk_customer_events_customers_customer_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_customer_events_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_customer_events_users_user_id");
b.Navigation("Customer");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.CustomerGroup", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_customer_groups_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_customer_groups_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.PasswordResetRequest", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_password_reset_requests_users_user_id");
b.Navigation("User");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Project", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_projects_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_projects_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ProjectLabel", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Project", "Project")
.WithMany("Labels")
.HasForeignKey("ProjectId")
.HasConstraintName("fk_project_labels_projects_project_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_project_labels_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_project_labels_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
b.Navigation("Project");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ProjectMember", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Project", "Project")
.WithMany("Members")
.HasForeignKey("ProjectId")
.HasConstraintName("fk_project_members_projects_project_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_project_members_users_user_id");
b.Navigation("Project");
b.Navigation("User");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Tenant", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("OwningTenantId")
.HasConstraintName("fk_tenants_tenants_owning_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany("Tenants")
.HasForeignKey("UserId")
.HasConstraintName("fk_tenants_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Todo", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "AssignedTo")
.WithMany()
.HasForeignKey("AssignedToId")
.HasConstraintName("fk_todos_users_assigned_to_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "ClosedBy")
.WithMany()
.HasForeignKey("ClosedById")
.HasConstraintName("fk_todos_users_closed_by_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.TodoCollection", "Collection")
.WithMany()
.HasForeignKey("CollectionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_todos_todo_projects_collection_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_todos_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_todos_users_user_id");
b.Navigation("AssignedTo");
b.Navigation("ClosedBy");
b.Navigation("Collection");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoCollection", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.HasConstraintName("fk_todo_collections_projects_project_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_todo_collections_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_todo_collections_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
b.Navigation("Project");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoCollectionAccessControl", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.TodoCollection", "Collection")
.WithMany("AccessControls")
.HasForeignKey("CollectionId")
.HasConstraintName("fk_todo_collection_access_controls_todo_collections_collection");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_todo_collection_access_controls_users_user_id");
b.Navigation("Collection");
b.Navigation("User");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoComment", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_todo_comments_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Todo", "Todo")
.WithMany("Comments")
.HasForeignKey("TodoId")
.HasConstraintName("fk_todo_comments_todos_todo_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_todo_comments_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
b.Navigation("Todo");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoLabel", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "OwningTenant")
.WithMany()
.HasForeignKey("TenantId")
.HasConstraintName("fk_todo_labels_tenants_tenant_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.Todo", "Todo")
.WithMany("Labels")
.HasForeignKey("TodoId")
.HasConstraintName("fk_todo_labels_todos_todo_id");
b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "OwningUser")
.WithMany()
.HasForeignKey("UserId")
.HasConstraintName("fk_todo_labels_users_user_id");
b.Navigation("OwningTenant");
b.Navigation("OwningUser");
b.Navigation("Todo");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.User", b =>
{
b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", null)
.WithMany("Users")
.HasForeignKey("TenantId")
.HasConstraintName("fk_users_tenants_tenant_id");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Customer", b =>
{
b.Navigation("Contacts");
b.Navigation("Events");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Project", b =>
{
b.Navigation("Labels");
b.Navigation("Members");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Tenant", b =>
{
b.Navigation("Users");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Todo", b =>
{
b.Navigation("Comments");
b.Navigation("Labels");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TodoCollection", b =>
{
b.Navigation("AccessControls");
});
modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.User", b =>
{
b.Navigation("Tenants");
});
#pragma warning restore 612, 618
}
}
}