diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-06-07 01:36:11 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-06-07 01:36:11 +0200 |
| commit | ecdaec6f53cbaf4da2c8a3440d7a288f3497a1cb (patch) | |
| tree | 651f9dd31e019f0b1d85f83a03553bb5812237cc /server/src/Migrations | |
| parent | a8b44b09a404aee477e735501b828d1b14aad311 (diff) | |
| download | greatoffice-ecdaec6f53cbaf4da2c8a3440d7a288f3497a1cb.tar.xz greatoffice-ecdaec6f53cbaf4da2c8a3440d7a288f3497a1cb.zip | |
feat: Work in progress more module data models
Diffstat (limited to 'server/src/Migrations')
3 files changed, 1211 insertions, 217 deletions
diff --git a/server/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs b/server/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs new file mode 100644 index 0000000..69d4f7e --- /dev/null +++ b/server/src/Migrations/20220606232346_FleshOutNewModules.Designer.cs @@ -0,0 +1,510 @@ +// <auto-generated /> +using System; +using IOL.GreatOffice.Api.Data; +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(AppDbContext))] + [Migration("20220606232346_FleshOutNewModules")] + partial class FleshOutNewModules + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.5") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ApiAccessToken", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<bool>("AllowCreate") + .HasColumnType("boolean") + .HasColumnName("allow_create"); + + b.Property<bool>("AllowDelete") + .HasColumnType("boolean") + .HasColumnName("allow_delete"); + + b.Property<bool>("AllowRead") + .HasColumnType("boolean") + .HasColumnName("allow_read"); + + b.Property<bool>("AllowUpdate") + .HasColumnType("boolean") + .HasColumnName("allow_update"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<DateTime>("ExpiryDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiry_date"); + + b.Property<DateTime?>("ModifiedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("modified_at"); + + b.Property<Guid?>("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.ForgotPasswordRequest", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<Guid>("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("pk_forgot_password_requests"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_forgot_password_requests_user_id"); + + b.ToTable("forgot_password_requests", (string)null); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.GithubUserMapping", b => + { + b.Property<string>("GithubId") + .HasColumnType("text") + .HasColumnName("github_id"); + + b.Property<string>("Email") + .HasColumnType("text") + .HasColumnName("email"); + + b.Property<string>("RefreshToken") + .HasColumnType("text") + .HasColumnName("refresh_token"); + + b.Property<Guid?>("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("GithubId") + .HasName("pk_github_user_mappings"); + + b.HasIndex("UserId") + .HasDatabaseName("ix_github_user_mappings_user_id"); + + b.ToTable("github_user_mappings", (string)null); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Tenant", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<string>("ContactEmail") + .HasColumnType("text") + .HasColumnName("contact_email"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<Guid?>("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<Guid?>("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property<string>("Description") + .HasColumnType("text") + .HasColumnName("description"); + + b.Property<Guid>("MasterUserId") + .HasColumnType("uuid") + .HasColumnName("master_user_id"); + + b.Property<string>("MasterUserPassword") + .HasColumnType("text") + .HasColumnName("master_user_password"); + + b.Property<DateTime?>("ModifiedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("modified_at"); + + b.Property<Guid?>("ModifiedById") + .HasColumnType("uuid") + .HasColumnName("modified_by_id"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<Guid?>("TenantId") + .HasColumnType("uuid") + .HasColumnName("tenant_id"); + + b.Property<Guid?>("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("pk_tenants"); + + b.ToTable("tenants", (string)null); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeCategory", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<string>("Color") + .HasColumnType("text") + .HasColumnName("color"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<Guid?>("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<Guid?>("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property<DateTime?>("ModifiedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("modified_at"); + + b.Property<Guid?>("ModifiedById") + .HasColumnType("uuid") + .HasColumnName("modified_by_id"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<Guid?>("TenantId") + .HasColumnType("uuid") + .HasColumnName("tenant_id"); + + b.Property<Guid?>("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("pk_time_categories"); + + b.ToTable("time_categories", (string)null); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeEntry", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<Guid?>("CategoryId") + .HasColumnType("uuid") + .HasColumnName("category_id"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<Guid?>("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<Guid?>("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property<string>("Description") + .HasColumnType("text") + .HasColumnName("description"); + + b.Property<DateTime?>("ModifiedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("modified_at"); + + b.Property<Guid?>("ModifiedById") + .HasColumnType("uuid") + .HasColumnName("modified_by_id"); + + b.Property<DateTime>("Start") + .HasColumnType("timestamp with time zone") + .HasColumnName("start"); + + b.Property<DateTime>("Stop") + .HasColumnType("timestamp with time zone") + .HasColumnName("stop"); + + b.Property<Guid?>("TenantId") + .HasColumnType("uuid") + .HasColumnName("tenant_id"); + + b.Property<Guid?>("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("pk_time_entries"); + + b.HasIndex("CategoryId") + .HasDatabaseName("ix_time_entries_category_id"); + + b.ToTable("time_entries", (string)null); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeLabel", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<string>("Color") + .HasColumnType("text") + .HasColumnName("color"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<Guid?>("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<Guid?>("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property<DateTime?>("ModifiedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("modified_at"); + + b.Property<Guid?>("ModifiedById") + .HasColumnType("uuid") + .HasColumnName("modified_by_id"); + + b.Property<string>("Name") + .HasColumnType("text") + .HasColumnName("name"); + + b.Property<Guid?>("TenantId") + .HasColumnType("uuid") + .HasColumnName("tenant_id"); + + b.Property<Guid?>("TimeEntryId") + .HasColumnType("uuid") + .HasColumnName("time_entry_id"); + + b.Property<Guid?>("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("pk_time_labels"); + + b.HasIndex("TimeEntryId") + .HasDatabaseName("ix_time_labels_time_entry_id"); + + b.ToTable("time_labels", (string)null); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.User", b => + { + b.Property<Guid>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("id"); + + b.Property<DateTime>("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<string>("Email") + .HasColumnType("text") + .HasColumnName("email"); + + b.Property<string>("FirstName") + .HasColumnType("text") + .HasColumnName("first_name"); + + b.Property<string>("LastName") + .HasColumnType("text") + .HasColumnName("last_name"); + + b.Property<DateTime?>("ModifiedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("modified_at"); + + b.Property<string>("Password") + .HasColumnType("text") + .HasColumnName("password"); + + b.Property<string>("Username") + .HasColumnType("text") + .HasColumnName("username"); + + b.HasKey("Id") + .HasName("pk_users"); + + b.ToTable("users", (string)null); + }); + + modelBuilder.Entity("TenantUser", b => + { + b.Property<Guid>("TenantsId") + .HasColumnType("uuid") + .HasColumnName("tenants_id"); + + b.Property<Guid>("UsersId") + .HasColumnType("uuid") + .HasColumnName("users_id"); + + b.HasKey("TenantsId", "UsersId") + .HasName("pk_tenant_user"); + + b.HasIndex("UsersId") + .HasDatabaseName("ix_tenant_user_users_id"); + + b.ToTable("tenant_user", (string)null); + }); + + 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.ForgotPasswordRequest", b => + { + b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_forgot_password_requests_users_user_id"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.GithubUserMapping", b => + { + b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") + .WithMany() + .HasForeignKey("UserId") + .HasConstraintName("fk_github_user_mappings_users_user_id"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeEntry", b => + { + b.HasOne("IOL.GreatOffice.Api.Data.Database.TimeCategory", "Category") + .WithMany() + .HasForeignKey("CategoryId") + .HasConstraintName("fk_time_entries_time_categories_category_id"); + + b.Navigation("Category"); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeLabel", b => + { + b.HasOne("IOL.GreatOffice.Api.Data.Database.TimeEntry", null) + .WithMany("Labels") + .HasForeignKey("TimeEntryId") + .HasConstraintName("fk_time_labels_time_entries_time_entry_id"); + }); + + modelBuilder.Entity("TenantUser", b => + { + b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", null) + .WithMany() + .HasForeignKey("TenantsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_tenant_user_tenants_tenants_id"); + + b.HasOne("IOL.GreatOffice.Api.Data.Database.User", null) + .WithMany() + .HasForeignKey("UsersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_tenant_user_users_users_id"); + }); + + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeEntry", b => + { + b.Navigation("Labels"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/server/src/Migrations/20220606232346_FleshOutNewModules.cs b/server/src/Migrations/20220606232346_FleshOutNewModules.cs new file mode 100644 index 0000000..49a36b8 --- /dev/null +++ b/server/src/Migrations/20220606232346_FleshOutNewModules.cs @@ -0,0 +1,630 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IOL.GreatOffice.Api.Migrations +{ + public partial class FleshOutNewModules : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "fk_tenants_tenants_tenant_id1", + table: "tenants"); + + migrationBuilder.DropForeignKey( + name: "fk_tenants_users_created_by_id", + table: "tenants"); + + migrationBuilder.DropForeignKey( + name: "fk_tenants_users_deleted_by_id", + table: "tenants"); + + migrationBuilder.DropForeignKey( + name: "fk_tenants_users_modified_by_id", + table: "tenants"); + + migrationBuilder.DropForeignKey( + name: "fk_tenants_users_user_id", + table: "tenants"); + + migrationBuilder.DropForeignKey( + name: "fk_time_categories_tenants_tenant_id", + table: "time_categories"); + + migrationBuilder.DropForeignKey( + name: "fk_time_categories_users_created_by_id", + table: "time_categories"); + + migrationBuilder.DropForeignKey( + name: "fk_time_categories_users_deleted_by_id", + table: "time_categories"); + + migrationBuilder.DropForeignKey( + name: "fk_time_categories_users_modified_by_id", + table: "time_categories"); + + migrationBuilder.DropForeignKey( + name: "fk_time_categories_users_user_id", + table: "time_categories"); + + migrationBuilder.DropForeignKey( + name: "fk_time_entries_tenants_tenant_id", + table: "time_entries"); + + migrationBuilder.DropForeignKey( + name: "fk_time_entries_users_created_by_id", + table: "time_entries"); + + migrationBuilder.DropForeignKey( + name: "fk_time_entries_users_deleted_by_id", + table: "time_entries"); + + migrationBuilder.DropForeignKey( + name: "fk_time_entries_users_modified_by_id", + table: "time_entries"); + + migrationBuilder.DropForeignKey( + name: "fk_time_entries_users_user_id", + table: "time_entries"); + + migrationBuilder.DropForeignKey( + name: "fk_time_labels_tenants_tenant_id", + table: "time_labels"); + + migrationBuilder.DropForeignKey( + name: "fk_time_labels_users_created_by_id", + table: "time_labels"); + + migrationBuilder.DropForeignKey( + name: "fk_time_labels_users_deleted_by_id", + table: "time_labels"); + + migrationBuilder.DropForeignKey( + name: "fk_time_labels_users_modified_by_id", + table: "time_labels"); + + migrationBuilder.DropForeignKey( + name: "fk_time_labels_users_user_id", + table: "time_labels"); + + migrationBuilder.DropIndex( + name: "ix_time_labels_created_by_id", + table: "time_labels"); + + migrationBuilder.DropIndex( + name: "ix_time_labels_deleted_by_id", + table: "time_labels"); + + migrationBuilder.DropIndex( + name: "ix_time_labels_modified_by_id", + table: "time_labels"); + + migrationBuilder.DropIndex( + name: "ix_time_labels_tenant_id", + table: "time_labels"); + + migrationBuilder.DropIndex( + name: "ix_time_labels_user_id", + table: "time_labels"); + + migrationBuilder.DropIndex( + name: "ix_time_entries_created_by_id", + table: "time_entries"); + + migrationBuilder.DropIndex( + name: "ix_time_entries_deleted_by_id", + table: "time_entries"); + + migrationBuilder.DropIndex( + name: "ix_time_entries_modified_by_id", + table: "time_entries"); + + migrationBuilder.DropIndex( + name: "ix_time_entries_tenant_id", + table: "time_entries"); + + migrationBuilder.DropIndex( + name: "ix_time_entries_user_id", + table: "time_entries"); + + migrationBuilder.DropIndex( + name: "ix_time_categories_created_by_id", + table: "time_categories"); + + migrationBuilder.DropIndex( + name: "ix_time_categories_deleted_by_id", + table: "time_categories"); + + migrationBuilder.DropIndex( + name: "ix_time_categories_modified_by_id", + table: "time_categories"); + + migrationBuilder.DropIndex( + name: "ix_time_categories_tenant_id", + table: "time_categories"); + + migrationBuilder.DropIndex( + name: "ix_time_categories_user_id", + table: "time_categories"); + + migrationBuilder.DropIndex( + name: "ix_tenants_created_by_id", + table: "tenants"); + + migrationBuilder.DropIndex( + name: "ix_tenants_deleted_by_id", + table: "tenants"); + + migrationBuilder.DropIndex( + name: "ix_tenants_modified_by_id", + table: "tenants"); + + migrationBuilder.DropIndex( + name: "ix_tenants_tenant_id1", + table: "tenants"); + + migrationBuilder.DropIndex( + name: "ix_tenants_user_id", + table: "tenants"); + + migrationBuilder.DropColumn( + name: "tenant_id1", + table: "tenants"); + + migrationBuilder.AddColumn<bool>( + name: "deleted", + table: "users", + type: "boolean", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn<string>( + name: "email", + table: "users", + type: "text", + nullable: true); + + migrationBuilder.AddColumn<string>( + name: "first_name", + table: "users", + type: "text", + nullable: true); + + migrationBuilder.AddColumn<string>( + name: "last_name", + table: "users", + type: "text", + nullable: true); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "time_labels", + type: "uuid", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uuid"); + + migrationBuilder.AddColumn<bool>( + name: "deleted", + table: "time_labels", + type: "boolean", + nullable: false, + defaultValue: false); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "time_entries", + type: "uuid", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uuid"); + + migrationBuilder.AddColumn<bool>( + name: "deleted", + table: "time_entries", + type: "boolean", + nullable: false, + defaultValue: false); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "time_categories", + type: "uuid", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uuid"); + + migrationBuilder.AddColumn<bool>( + name: "deleted", + table: "time_categories", + type: "boolean", + nullable: false, + defaultValue: false); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "tenants", + type: "uuid", + nullable: true, + oldClrType: typeof(Guid), + oldType: "uuid"); + + migrationBuilder.AddColumn<bool>( + name: "deleted", + table: "tenants", + type: "boolean", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn<bool>( + name: "deleted", + table: "api_access_tokens", + type: "boolean", + nullable: false, + defaultValue: false); + + migrationBuilder.CreateTable( + name: "tenant_user", + columns: table => new + { + tenants_id = table.Column<Guid>(type: "uuid", nullable: false), + users_id = table.Column<Guid>(type: "uuid", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("pk_tenant_user", x => new { x.tenants_id, x.users_id }); + table.ForeignKey( + name: "fk_tenant_user_tenants_tenants_id", + column: x => x.tenants_id, + principalTable: "tenants", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "fk_tenant_user_users_users_id", + column: x => x.users_id, + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "ix_tenant_user_users_id", + table: "tenant_user", + column: "users_id"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "tenant_user"); + + migrationBuilder.DropColumn( + name: "deleted", + table: "users"); + + migrationBuilder.DropColumn( + name: "email", + table: "users"); + + migrationBuilder.DropColumn( + name: "first_name", + table: "users"); + + migrationBuilder.DropColumn( + name: "last_name", + table: "users"); + + migrationBuilder.DropColumn( + name: "deleted", + table: "time_labels"); + + migrationBuilder.DropColumn( + name: "deleted", + table: "time_entries"); + + migrationBuilder.DropColumn( + name: "deleted", + table: "time_categories"); + + migrationBuilder.DropColumn( + name: "deleted", + table: "tenants"); + + migrationBuilder.DropColumn( + name: "deleted", + table: "api_access_tokens"); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "time_labels", + type: "uuid", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uuid", + oldNullable: true); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "time_entries", + type: "uuid", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uuid", + oldNullable: true); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "time_categories", + type: "uuid", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uuid", + oldNullable: true); + + migrationBuilder.AlterColumn<Guid>( + name: "user_id", + table: "tenants", + type: "uuid", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + oldClrType: typeof(Guid), + oldType: "uuid", + oldNullable: true); + + migrationBuilder.AddColumn<Guid>( + name: "tenant_id1", + table: "tenants", + type: "uuid", + nullable: true); + + migrationBuilder.CreateIndex( + name: "ix_time_labels_created_by_id", + table: "time_labels", + column: "created_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_labels_deleted_by_id", + table: "time_labels", + column: "deleted_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_labels_modified_by_id", + table: "time_labels", + column: "modified_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_labels_tenant_id", + table: "time_labels", + column: "tenant_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_labels_user_id", + table: "time_labels", + column: "user_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_entries_created_by_id", + table: "time_entries", + column: "created_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_entries_deleted_by_id", + table: "time_entries", + column: "deleted_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_entries_modified_by_id", + table: "time_entries", + column: "modified_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_entries_tenant_id", + table: "time_entries", + column: "tenant_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_entries_user_id", + table: "time_entries", + column: "user_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_categories_created_by_id", + table: "time_categories", + column: "created_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_categories_deleted_by_id", + table: "time_categories", + column: "deleted_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_categories_modified_by_id", + table: "time_categories", + column: "modified_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_categories_tenant_id", + table: "time_categories", + column: "tenant_id"); + + migrationBuilder.CreateIndex( + name: "ix_time_categories_user_id", + table: "time_categories", + column: "user_id"); + + migrationBuilder.CreateIndex( + name: "ix_tenants_created_by_id", + table: "tenants", + column: "created_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_tenants_deleted_by_id", + table: "tenants", + column: "deleted_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_tenants_modified_by_id", + table: "tenants", + column: "modified_by_id"); + + migrationBuilder.CreateIndex( + name: "ix_tenants_tenant_id1", + table: "tenants", + column: "tenant_id1"); + + migrationBuilder.CreateIndex( + name: "ix_tenants_user_id", + table: "tenants", + column: "user_id"); + + migrationBuilder.AddForeignKey( + name: "fk_tenants_tenants_tenant_id1", + table: "tenants", + column: "tenant_id1", + principalTable: "tenants", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_tenants_users_created_by_id", + table: "tenants", + column: "created_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_tenants_users_deleted_by_id", + table: "tenants", + column: "deleted_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_tenants_users_modified_by_id", + table: "tenants", + column: "modified_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_tenants_users_user_id", + table: "tenants", + column: "user_id", + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "fk_time_categories_tenants_tenant_id", + table: "time_categories", + column: "tenant_id", + principalTable: "tenants", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_categories_users_created_by_id", + table: "time_categories", + column: "created_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_categories_users_deleted_by_id", + table: "time_categories", + column: "deleted_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_categories_users_modified_by_id", + table: "time_categories", + column: "modified_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_categories_users_user_id", + table: "time_categories", + column: "user_id", + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "fk_time_entries_tenants_tenant_id", + table: "time_entries", + column: "tenant_id", + principalTable: "tenants", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_entries_users_created_by_id", + table: "time_entries", + column: "created_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_entries_users_deleted_by_id", + table: "time_entries", + column: "deleted_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_entries_users_modified_by_id", + table: "time_entries", + column: "modified_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_entries_users_user_id", + table: "time_entries", + column: "user_id", + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + + migrationBuilder.AddForeignKey( + name: "fk_time_labels_tenants_tenant_id", + table: "time_labels", + column: "tenant_id", + principalTable: "tenants", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_labels_users_created_by_id", + table: "time_labels", + column: "created_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_labels_users_deleted_by_id", + table: "time_labels", + column: "deleted_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_labels_users_modified_by_id", + table: "time_labels", + column: "modified_by_id", + principalTable: "users", + principalColumn: "id"); + + migrationBuilder.AddForeignKey( + name: "fk_time_labels_users_user_id", + table: "time_labels", + column: "user_id", + principalTable: "users", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/server/src/Migrations/AppDbContextModelSnapshot.cs b/server/src/Migrations/AppDbContextModelSnapshot.cs index a777782..70582b5 100644 --- a/server/src/Migrations/AppDbContextModelSnapshot.cs +++ b/server/src/Migrations/AppDbContextModelSnapshot.cs @@ -49,6 +49,10 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + b.Property<DateTime>("ExpiryDate") .HasColumnType("timestamp with time zone") .HasColumnName("expiry_date"); @@ -140,6 +144,10 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("created_by_id"); + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + b.Property<Guid?>("DeletedById") .HasColumnType("uuid") .HasColumnName("deleted_by_id"); @@ -172,32 +180,13 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("tenant_id"); - b.Property<Guid?>("TenantId1") - .HasColumnType("uuid") - .HasColumnName("tenant_id1"); - - b.Property<Guid>("UserId") + b.Property<Guid?>("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id") .HasName("pk_tenants"); - b.HasIndex("CreatedById") - .HasDatabaseName("ix_tenants_created_by_id"); - - b.HasIndex("DeletedById") - .HasDatabaseName("ix_tenants_deleted_by_id"); - - b.HasIndex("ModifiedById") - .HasDatabaseName("ix_tenants_modified_by_id"); - - b.HasIndex("TenantId1") - .HasDatabaseName("ix_tenants_tenant_id1"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_tenants_user_id"); - b.ToTable("tenants", (string)null); }); @@ -220,6 +209,10 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("created_by_id"); + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + b.Property<Guid?>("DeletedById") .HasColumnType("uuid") .HasColumnName("deleted_by_id"); @@ -240,28 +233,13 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("tenant_id"); - b.Property<Guid>("UserId") + b.Property<Guid?>("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id") .HasName("pk_time_categories"); - b.HasIndex("CreatedById") - .HasDatabaseName("ix_time_categories_created_by_id"); - - b.HasIndex("DeletedById") - .HasDatabaseName("ix_time_categories_deleted_by_id"); - - b.HasIndex("ModifiedById") - .HasDatabaseName("ix_time_categories_modified_by_id"); - - b.HasIndex("TenantId") - .HasDatabaseName("ix_time_categories_tenant_id"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_time_categories_user_id"); - b.ToTable("time_categories", (string)null); }); @@ -284,6 +262,10 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("created_by_id"); + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + b.Property<Guid?>("DeletedById") .HasColumnType("uuid") .HasColumnName("deleted_by_id"); @@ -312,7 +294,7 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("tenant_id"); - b.Property<Guid>("UserId") + b.Property<Guid?>("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); @@ -322,21 +304,6 @@ namespace IOL.GreatOffice.Api.Migrations b.HasIndex("CategoryId") .HasDatabaseName("ix_time_entries_category_id"); - b.HasIndex("CreatedById") - .HasDatabaseName("ix_time_entries_created_by_id"); - - b.HasIndex("DeletedById") - .HasDatabaseName("ix_time_entries_deleted_by_id"); - - b.HasIndex("ModifiedById") - .HasDatabaseName("ix_time_entries_modified_by_id"); - - b.HasIndex("TenantId") - .HasDatabaseName("ix_time_entries_tenant_id"); - - b.HasIndex("UserId") - .HasDatabaseName("ix_time_entries_user_id"); - b.ToTable("time_entries", (string)null); }); @@ -359,6 +326,10 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("created_by_id"); + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + b.Property<Guid?>("DeletedById") .HasColumnType("uuid") .HasColumnName("deleted_by_id"); @@ -383,31 +354,16 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("uuid") .HasColumnName("time_entry_id"); - b.Property<Guid>("UserId") + b.Property<Guid?>("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id") .HasName("pk_time_labels"); - b.HasIndex("CreatedById") - .HasDatabaseName("ix_time_labels_created_by_id"); - - b.HasIndex("DeletedById") - .HasDatabaseName("ix_time_labels_deleted_by_id"); - - b.HasIndex("ModifiedById") - .HasDatabaseName("ix_time_labels_modified_by_id"); - - b.HasIndex("TenantId") - .HasDatabaseName("ix_time_labels_tenant_id"); - b.HasIndex("TimeEntryId") .HasDatabaseName("ix_time_labels_time_entry_id"); - b.HasIndex("UserId") - .HasDatabaseName("ix_time_labels_user_id"); - b.ToTable("time_labels", (string)null); }); @@ -422,6 +378,22 @@ namespace IOL.GreatOffice.Api.Migrations .HasColumnType("timestamp with time zone") .HasColumnName("created_at"); + b.Property<bool>("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property<string>("Email") + .HasColumnType("text") + .HasColumnName("email"); + + b.Property<string>("FirstName") + .HasColumnType("text") + .HasColumnName("first_name"); + + b.Property<string>("LastName") + .HasColumnType("text") + .HasColumnName("last_name"); + b.Property<DateTime?>("ModifiedAt") .HasColumnType("timestamp with time zone") .HasColumnName("modified_at"); @@ -440,114 +412,53 @@ namespace IOL.GreatOffice.Api.Migrations b.ToTable("users", (string)null); }); - modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ApiAccessToken", b => + modelBuilder.Entity("TenantUser", b => { - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") - .WithMany() - .HasForeignKey("UserId") - .HasConstraintName("fk_api_access_tokens_users_user_id"); + b.Property<Guid>("TenantsId") + .HasColumnType("uuid") + .HasColumnName("tenants_id"); - b.Navigation("User"); - }); + b.Property<Guid>("UsersId") + .HasColumnType("uuid") + .HasColumnName("users_id"); - modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ForgotPasswordRequest", b => - { - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_forgot_password_requests_users_user_id"); + b.HasKey("TenantsId", "UsersId") + .HasName("pk_tenant_user"); - b.Navigation("User"); + b.HasIndex("UsersId") + .HasDatabaseName("ix_tenant_user_users_id"); + + b.ToTable("tenant_user", (string)null); }); - modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.GithubUserMapping", b => + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ApiAccessToken", b => { b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") .WithMany() .HasForeignKey("UserId") - .HasConstraintName("fk_github_user_mappings_users_user_id"); + .HasConstraintName("fk_api_access_tokens_users_user_id"); b.Navigation("User"); }); - modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.Tenant", b => + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.ForgotPasswordRequest", b => { - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .HasConstraintName("fk_tenants_users_created_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "DeletedBy") - .WithMany() - .HasForeignKey("DeletedById") - .HasConstraintName("fk_tenants_users_deleted_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "ModifiedBy") - .WithMany() - .HasForeignKey("ModifiedById") - .HasConstraintName("fk_tenants_users_modified_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "Tenant") - .WithMany() - .HasForeignKey("TenantId1") - .HasConstraintName("fk_tenants_tenants_tenant_id1"); - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() - .HasConstraintName("fk_tenants_users_user_id"); - - b.Navigation("CreatedBy"); - - b.Navigation("DeletedBy"); - - b.Navigation("ModifiedBy"); - - b.Navigation("Tenant"); + .HasConstraintName("fk_forgot_password_requests_users_user_id"); b.Navigation("User"); }); - modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeCategory", b => + modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.GithubUserMapping", b => { - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .HasConstraintName("fk_time_categories_users_created_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "DeletedBy") - .WithMany() - .HasForeignKey("DeletedById") - .HasConstraintName("fk_time_categories_users_deleted_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "ModifiedBy") - .WithMany() - .HasForeignKey("ModifiedById") - .HasConstraintName("fk_time_categories_users_modified_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "Tenant") - .WithMany() - .HasForeignKey("TenantId") - .HasConstraintName("fk_time_categories_tenants_tenant_id"); - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") .WithMany() .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_time_categories_users_user_id"); - - b.Navigation("CreatedBy"); - - b.Navigation("DeletedBy"); - - b.Navigation("ModifiedBy"); - - b.Navigation("Tenant"); + .HasConstraintName("fk_github_user_mappings_users_user_id"); b.Navigation("User"); }); @@ -559,89 +470,32 @@ namespace IOL.GreatOffice.Api.Migrations .HasForeignKey("CategoryId") .HasConstraintName("fk_time_entries_time_categories_category_id"); - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .HasConstraintName("fk_time_entries_users_created_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "DeletedBy") - .WithMany() - .HasForeignKey("DeletedById") - .HasConstraintName("fk_time_entries_users_deleted_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "ModifiedBy") - .WithMany() - .HasForeignKey("ModifiedById") - .HasConstraintName("fk_time_entries_users_modified_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "Tenant") - .WithMany() - .HasForeignKey("TenantId") - .HasConstraintName("fk_time_entries_tenants_tenant_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired() - .HasConstraintName("fk_time_entries_users_user_id"); - b.Navigation("Category"); - - b.Navigation("CreatedBy"); - - b.Navigation("DeletedBy"); - - b.Navigation("ModifiedBy"); - - b.Navigation("Tenant"); - - b.Navigation("User"); }); modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeLabel", b => { - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "CreatedBy") - .WithMany() - .HasForeignKey("CreatedById") - .HasConstraintName("fk_time_labels_users_created_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "DeletedBy") - .WithMany() - .HasForeignKey("DeletedById") - .HasConstraintName("fk_time_labels_users_deleted_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "ModifiedBy") - .WithMany() - .HasForeignKey("ModifiedById") - .HasConstraintName("fk_time_labels_users_modified_by_id"); - - b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", "Tenant") - .WithMany() - .HasForeignKey("TenantId") - .HasConstraintName("fk_time_labels_tenants_tenant_id"); - b.HasOne("IOL.GreatOffice.Api.Data.Database.TimeEntry", null) .WithMany("Labels") .HasForeignKey("TimeEntryId") .HasConstraintName("fk_time_labels_time_entries_time_entry_id"); + }); - b.HasOne("IOL.GreatOffice.Api.Data.Database.User", "User") + modelBuilder.Entity("TenantUser", b => + { + b.HasOne("IOL.GreatOffice.Api.Data.Database.Tenant", null) .WithMany() - .HasForeignKey("UserId") + .HasForeignKey("TenantsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() - .HasConstraintName("fk_time_labels_users_user_id"); - - b.Navigation("CreatedBy"); - - b.Navigation("DeletedBy"); - - b.Navigation("ModifiedBy"); - - b.Navigation("Tenant"); + .HasConstraintName("fk_tenant_user_tenants_tenants_id"); - b.Navigation("User"); + b.HasOne("IOL.GreatOffice.Api.Data.Database.User", null) + .WithMany() + .HasForeignKey("UsersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("fk_tenant_user_users_users_id"); }); modelBuilder.Entity("IOL.GreatOffice.Api.Data.Database.TimeEntry", b => |
