956 lines
53 KiB
C#
956 lines
53 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace AMREZ.EOP.Infrastructures.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class InitDatabase : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.EnsureSchema(
|
|
name: "meta");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "departments",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Code = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
Name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
ParentDepartmentId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_departments", x => x.Id);
|
|
table.UniqueConstraint("AK_departments_tenant_id_Id", x => new { x.tenant_id, x.Id });
|
|
table.CheckConstraint("ck_departments_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_departments_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_departments_departments_tenant_id_ParentDepartmentId",
|
|
columns: x => new { x.tenant_id, x.ParentDepartmentId },
|
|
principalTable: "departments",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "permissions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Code = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
Name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_permissions", x => x.Id);
|
|
table.UniqueConstraint("AK_permissions_tenant_id_Id", x => new { x.tenant_id, x.Id });
|
|
table.CheckConstraint("ck_permissions_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_permissions_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "positions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Code = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
Title = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
Level = table.Column<int>(type: "integer", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_positions", x => x.Id);
|
|
table.UniqueConstraint("AK_positions_tenant_id_Id", x => new { x.tenant_id, x.Id });
|
|
table.CheckConstraint("ck_positions_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_positions_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "roles",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Code = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
Name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_roles", x => x.Id);
|
|
table.UniqueConstraint("AK_roles_tenant_id_Id", x => new { x.tenant_id, x.Id });
|
|
table.CheckConstraint("ck_roles_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_roles_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "tenants",
|
|
schema: "meta",
|
|
columns: table => new
|
|
{
|
|
TenantKey = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
TenantId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Schema = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
|
|
ConnectionString = table.Column<string>(type: "text", nullable: true),
|
|
Mode = table.Column<int>(type: "integer", nullable: false),
|
|
IsActive = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
updated_at_utc = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'")
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_tenants", x => x.TenantKey);
|
|
table.UniqueConstraint("AK_tenants_TenantId", x => x.TenantId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "users",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
PasswordHash = table.Column<string>(type: "text", nullable: false),
|
|
IsActive = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
AccessFailedCount = table.Column<int>(type: "integer", nullable: false, defaultValue: 0),
|
|
LockoutEndUtc = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
MfaEnabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false),
|
|
SecurityStamp = table.Column<string>(type: "text", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_users", x => x.Id);
|
|
table.UniqueConstraint("AK_users_tenant_id_Id", x => new { x.tenant_id, x.Id });
|
|
table.CheckConstraint("ck_users_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_users_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "role_permissions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
RoleId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
PermissionId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_role_permissions", x => x.Id);
|
|
table.CheckConstraint("ck_role_permissions_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_role_permissions_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_role_permissions_permissions_PermissionId",
|
|
column: x => x.PermissionId,
|
|
principalTable: "permissions",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_role_permissions_permissions_tenant_id_PermissionId",
|
|
columns: x => new { x.tenant_id, x.PermissionId },
|
|
principalTable: "permissions",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_role_permissions_roles_RoleId",
|
|
column: x => x.RoleId,
|
|
principalTable: "roles",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_role_permissions_roles_tenant_id_RoleId",
|
|
columns: x => new { x.tenant_id, x.RoleId },
|
|
principalTable: "roles",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "tenant_domains",
|
|
schema: "meta",
|
|
columns: table => new
|
|
{
|
|
Domain = table.Column<string>(type: "character varying(253)", maxLength: 253, nullable: false),
|
|
TenantKey = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
|
|
IsPlatformBaseDomain = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false),
|
|
IsActive = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
updated_at_utc = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'")
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_tenant_domains", x => x.Domain);
|
|
table.ForeignKey(
|
|
name: "FK_tenant_domains_tenants_TenantKey",
|
|
column: x => x.TenantKey,
|
|
principalSchema: "meta",
|
|
principalTable: "tenants",
|
|
principalColumn: "TenantKey",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_external_accounts",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Provider = table.Column<int>(type: "integer", nullable: false),
|
|
Subject = table.Column<string>(type: "text", nullable: false),
|
|
Email = table.Column<string>(type: "text", nullable: true),
|
|
LinkedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_external_accounts", x => x.Id);
|
|
table.CheckConstraint("ck_user_external_accounts_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_external_accounts_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_external_accounts_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_identities",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Identifier = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
IsPrimary = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false),
|
|
VerifiedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_identities", x => x.Id);
|
|
table.CheckConstraint("ck_user_identities_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_identities_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_identities_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_mfa_factors",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Label = table.Column<string>(type: "text", nullable: true),
|
|
Secret = table.Column<string>(type: "text", nullable: true),
|
|
PhoneE164 = table.Column<string>(type: "text", nullable: true),
|
|
Email = table.Column<string>(type: "text", nullable: true),
|
|
PublicKey = table.Column<string>(type: "text", nullable: true),
|
|
CredentialId = table.Column<string>(type: "text", nullable: true),
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false, defaultValue: true),
|
|
AddedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
|
LastUsedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_mfa_factors", x => x.Id);
|
|
table.CheckConstraint("ck_user_mfa_factors_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_mfa_factors_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_mfa_factors_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_password_histories",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
PasswordHash = table.Column<string>(type: "text", nullable: false),
|
|
ChangedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_password_histories", x => x.Id);
|
|
table.CheckConstraint("ck_user_password_histories_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_password_histories_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_password_histories_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_profiles",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
FirstName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
LastName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
MiddleName = table.Column<string>(type: "text", nullable: true),
|
|
Nickname = table.Column<string>(type: "text", nullable: true),
|
|
DateOfBirth = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
Gender = table.Column<int>(type: "integer", nullable: true),
|
|
DepartmentId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
PositionId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_profiles", x => x.Id);
|
|
table.UniqueConstraint("AK_user_profiles_tenant_id_Id", x => new { x.tenant_id, x.Id });
|
|
table.CheckConstraint("ck_user_profiles_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_profiles_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_profiles_departments_DepartmentId",
|
|
column: x => x.DepartmentId,
|
|
principalTable: "departments",
|
|
principalColumn: "Id");
|
|
table.ForeignKey(
|
|
name: "FK_user_profiles_positions_PositionId",
|
|
column: x => x.PositionId,
|
|
principalTable: "positions",
|
|
principalColumn: "Id");
|
|
table.ForeignKey(
|
|
name: "FK_user_profiles_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_roles",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
RoleId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_roles", x => x.Id);
|
|
table.CheckConstraint("ck_user_roles_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_roles_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_roles_roles_RoleId",
|
|
column: x => x.RoleId,
|
|
principalTable: "roles",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_user_roles_roles_tenant_id_RoleId",
|
|
columns: x => new { x.tenant_id, x.RoleId },
|
|
principalTable: "roles",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_user_roles_users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_user_roles_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "user_sessions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
RefreshTokenHash = table.Column<string>(type: "text", nullable: false),
|
|
IssuedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false),
|
|
ExpiresAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
RevokedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
DeviceId = table.Column<string>(type: "text", nullable: true),
|
|
UserAgent = table.Column<string>(type: "text", nullable: true),
|
|
IpAddress = table.Column<string>(type: "text", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_user_sessions", x => x.Id);
|
|
table.CheckConstraint("ck_user_sessions_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_user_sessions_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_user_sessions_users_tenant_id_UserId",
|
|
columns: x => new { x.tenant_id, x.UserId },
|
|
principalTable: "users",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "emergency_contacts",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserProfileId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
Relationship = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
Phone = table.Column<string>(type: "text", nullable: true),
|
|
Email = table.Column<string>(type: "text", nullable: true),
|
|
IsPrimary = table.Column<bool>(type: "boolean", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_emergency_contacts", x => x.Id);
|
|
table.CheckConstraint("ck_emergency_contacts_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_emergency_contacts_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_emergency_contacts_user_profiles_tenant_id_UserProfileId",
|
|
columns: x => new { x.tenant_id, x.UserProfileId },
|
|
principalTable: "user_profiles",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "employee_addresses",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserProfileId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Line1 = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
Line2 = table.Column<string>(type: "text", nullable: true),
|
|
City = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
State = table.Column<string>(type: "text", nullable: true),
|
|
PostalCode = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
|
|
Country = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
IsPrimary = table.Column<bool>(type: "boolean", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_employee_addresses", x => x.Id);
|
|
table.CheckConstraint("ck_employee_addresses_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_employee_addresses_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_employee_addresses_user_profiles_tenant_id_UserProfileId",
|
|
columns: x => new { x.tenant_id, x.UserProfileId },
|
|
principalTable: "user_profiles",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "employee_bank_accounts",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserProfileId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
BankName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
AccountNumber = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
AccountHolder = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
|
Branch = table.Column<string>(type: "text", nullable: true),
|
|
Note = table.Column<string>(type: "text", nullable: true),
|
|
IsPrimary = table.Column<bool>(type: "boolean", nullable: false),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_employee_bank_accounts", x => x.Id);
|
|
table.CheckConstraint("ck_employee_bank_accounts_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_employee_bank_accounts_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_employee_bank_accounts_user_profiles_tenant_id_UserProfileId",
|
|
columns: x => new { x.tenant_id, x.UserProfileId },
|
|
principalTable: "user_profiles",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "employments",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserProfileId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
EmploymentType = table.Column<int>(type: "integer", nullable: false),
|
|
StartDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
EndDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DepartmentId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
PositionId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
ManagerUserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
WorkEmail = table.Column<string>(type: "text", nullable: true),
|
|
WorkPhone = table.Column<string>(type: "text", nullable: true),
|
|
tenant_id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
created_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, defaultValueSql: "now() at time zone 'utc'"),
|
|
created_by = table.Column<string>(type: "text", nullable: true),
|
|
updated_at = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
|
updated_by = table.Column<string>(type: "text", nullable: true),
|
|
is_deleted = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_employments", x => x.Id);
|
|
table.CheckConstraint("ck_employments_tenant_not_null", "tenant_id is not null");
|
|
table.CheckConstraint("ck_employments_tenant_not_zero", "tenant_id <> '00000000-0000-0000-0000-000000000000'");
|
|
table.ForeignKey(
|
|
name: "FK_employments_departments_tenant_id_DepartmentId",
|
|
columns: x => new { x.tenant_id, x.DepartmentId },
|
|
principalTable: "departments",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
table.ForeignKey(
|
|
name: "FK_employments_positions_tenant_id_PositionId",
|
|
columns: x => new { x.tenant_id, x.PositionId },
|
|
principalTable: "positions",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
table.ForeignKey(
|
|
name: "FK_employments_user_profiles_tenant_id_UserProfileId",
|
|
columns: x => new { x.tenant_id, x.UserProfileId },
|
|
principalTable: "user_profiles",
|
|
principalColumns: new[] { "tenant_id", "Id" },
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_departments_tenant_id",
|
|
table: "departments",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_departments_tenant_id_Code",
|
|
table: "departments",
|
|
columns: new[] { "tenant_id", "Code" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_departments_tenant_id_ParentDepartmentId",
|
|
table: "departments",
|
|
columns: new[] { "tenant_id", "ParentDepartmentId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_emergency_contacts_tenant_id",
|
|
table: "emergency_contacts",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_emergency_contacts_tenant_id_UserProfileId_IsPrimary",
|
|
table: "emergency_contacts",
|
|
columns: new[] { "tenant_id", "UserProfileId", "IsPrimary" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employee_addresses_tenant_id",
|
|
table: "employee_addresses",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employee_addresses_tenant_id_UserProfileId_IsPrimary",
|
|
table: "employee_addresses",
|
|
columns: new[] { "tenant_id", "UserProfileId", "IsPrimary" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employee_bank_accounts_tenant_id",
|
|
table: "employee_bank_accounts",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employee_bank_accounts_tenant_id_UserProfileId_IsPrimary",
|
|
table: "employee_bank_accounts",
|
|
columns: new[] { "tenant_id", "UserProfileId", "IsPrimary" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employments_tenant_id",
|
|
table: "employments",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employments_tenant_id_DepartmentId",
|
|
table: "employments",
|
|
columns: new[] { "tenant_id", "DepartmentId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employments_tenant_id_PositionId",
|
|
table: "employments",
|
|
columns: new[] { "tenant_id", "PositionId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_employments_tenant_id_UserProfileId_StartDate",
|
|
table: "employments",
|
|
columns: new[] { "tenant_id", "UserProfileId", "StartDate" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_permissions_tenant_id",
|
|
table: "permissions",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_permissions_tenant_id_Code",
|
|
table: "permissions",
|
|
columns: new[] { "tenant_id", "Code" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_positions_tenant_id",
|
|
table: "positions",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_positions_tenant_id_Code",
|
|
table: "positions",
|
|
columns: new[] { "tenant_id", "Code" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_role_permissions_PermissionId",
|
|
table: "role_permissions",
|
|
column: "PermissionId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_role_permissions_RoleId",
|
|
table: "role_permissions",
|
|
column: "RoleId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_role_permissions_tenant_id",
|
|
table: "role_permissions",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_role_permissions_tenant_id_PermissionId",
|
|
table: "role_permissions",
|
|
columns: new[] { "tenant_id", "PermissionId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_role_permissions_tenant_id_RoleId_PermissionId",
|
|
table: "role_permissions",
|
|
columns: new[] { "tenant_id", "RoleId", "PermissionId" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_roles_tenant_id",
|
|
table: "roles",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_roles_tenant_id_Code",
|
|
table: "roles",
|
|
columns: new[] { "tenant_id", "Code" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_tenant_domains_IsActive",
|
|
schema: "meta",
|
|
table: "tenant_domains",
|
|
column: "IsActive");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_tenant_domains_IsPlatformBaseDomain",
|
|
schema: "meta",
|
|
table: "tenant_domains",
|
|
column: "IsPlatformBaseDomain");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_tenant_domains_TenantKey",
|
|
schema: "meta",
|
|
table: "tenant_domains",
|
|
column: "TenantKey");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_tenants_IsActive",
|
|
schema: "meta",
|
|
table: "tenants",
|
|
column: "IsActive");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_tenants_TenantId",
|
|
schema: "meta",
|
|
table: "tenants",
|
|
column: "TenantId",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_external_accounts_tenant_id",
|
|
table: "user_external_accounts",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_external_accounts_tenant_id_Provider_Subject",
|
|
table: "user_external_accounts",
|
|
columns: new[] { "tenant_id", "Provider", "Subject" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_external_accounts_tenant_id_UserId",
|
|
table: "user_external_accounts",
|
|
columns: new[] { "tenant_id", "UserId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_identities_tenant_id",
|
|
table: "user_identities",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_identities_tenant_id_Type_Identifier",
|
|
table: "user_identities",
|
|
columns: new[] { "tenant_id", "Type", "Identifier" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_user_identity_primary_per_type",
|
|
table: "user_identities",
|
|
columns: new[] { "tenant_id", "UserId", "Type", "IsPrimary" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_mfa_factors_tenant_id",
|
|
table: "user_mfa_factors",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_mfa_factors_tenant_id_UserId",
|
|
table: "user_mfa_factors",
|
|
columns: new[] { "tenant_id", "UserId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_password_histories_tenant_id",
|
|
table: "user_password_histories",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_password_histories_tenant_id_UserId_ChangedAt",
|
|
table: "user_password_histories",
|
|
columns: new[] { "tenant_id", "UserId", "ChangedAt" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_profiles_DepartmentId",
|
|
table: "user_profiles",
|
|
column: "DepartmentId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_profiles_PositionId",
|
|
table: "user_profiles",
|
|
column: "PositionId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_profiles_tenant_id",
|
|
table: "user_profiles",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_profiles_tenant_id_UserId",
|
|
table: "user_profiles",
|
|
columns: new[] { "tenant_id", "UserId" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_roles_RoleId",
|
|
table: "user_roles",
|
|
column: "RoleId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_roles_tenant_id",
|
|
table: "user_roles",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_roles_tenant_id_RoleId",
|
|
table: "user_roles",
|
|
columns: new[] { "tenant_id", "RoleId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_roles_tenant_id_UserId_RoleId",
|
|
table: "user_roles",
|
|
columns: new[] { "tenant_id", "UserId", "RoleId" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_roles_UserId",
|
|
table: "user_roles",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_sessions_tenant_id",
|
|
table: "user_sessions",
|
|
column: "tenant_id");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_sessions_tenant_id_DeviceId",
|
|
table: "user_sessions",
|
|
columns: new[] { "tenant_id", "DeviceId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_user_sessions_tenant_id_UserId",
|
|
table: "user_sessions",
|
|
columns: new[] { "tenant_id", "UserId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_users_tenant_id",
|
|
table: "users",
|
|
column: "tenant_id");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "emergency_contacts");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "employee_addresses");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "employee_bank_accounts");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "employments");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "role_permissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "tenant_domains",
|
|
schema: "meta");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_external_accounts");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_identities");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_mfa_factors");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_password_histories");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_roles");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_sessions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "user_profiles");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "permissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "tenants",
|
|
schema: "meta");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "roles");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "departments");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "positions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "users");
|
|
}
|
|
}
|
|
}
|