marco.pms.api/Marco.Pms.DataAccess/Migrations/20251111065550_Added_OrganiazationHierarchy_Related_Table.cs

138 lines
6.4 KiB
C#

using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Marco.Pms.DataAccess.Migrations
{
/// <inheritdoc />
public partial class Added_OrganiazationHierarchy_Related_Table : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "OrganizationHierarchies",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
EmployeeId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
ReportToId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
IsPrimary = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
AssignedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
AssignedById = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci")
},
constraints: table =>
{
table.PrimaryKey("PK_OrganizationHierarchies", x => x.Id);
table.ForeignKey(
name: "FK_OrganizationHierarchies_Employees_AssignedById",
column: x => x.AssignedById,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_OrganizationHierarchies_Employees_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_OrganizationHierarchies_Employees_ReportToId",
column: x => x.ReportToId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_OrganizationHierarchies_Tenants_TenantId",
column: x => x.TenantId,
principalTable: "Tenants",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "OrgHierarchyLogs",
columns: table => new
{
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
OrganizationHierarchyId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
ReAssignedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ReAssignedById = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
TenantId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci")
},
constraints: table =>
{
table.PrimaryKey("PK_OrgHierarchyLogs", x => x.Id);
table.ForeignKey(
name: "FK_OrgHierarchyLogs_Employees_ReAssignedById",
column: x => x.ReAssignedById,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_OrgHierarchyLogs_OrganizationHierarchies_OrganizationHierarc~",
column: x => x.OrganizationHierarchyId,
principalTable: "OrganizationHierarchies",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_OrgHierarchyLogs_Tenants_TenantId",
column: x => x.TenantId,
principalTable: "Tenants",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex(
name: "IX_OrganizationHierarchies_AssignedById",
table: "OrganizationHierarchies",
column: "AssignedById");
migrationBuilder.CreateIndex(
name: "IX_OrganizationHierarchies_EmployeeId",
table: "OrganizationHierarchies",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_OrganizationHierarchies_ReportToId",
table: "OrganizationHierarchies",
column: "ReportToId");
migrationBuilder.CreateIndex(
name: "IX_OrganizationHierarchies_TenantId",
table: "OrganizationHierarchies",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_OrgHierarchyLogs_OrganizationHierarchyId",
table: "OrgHierarchyLogs",
column: "OrganizationHierarchyId");
migrationBuilder.CreateIndex(
name: "IX_OrgHierarchyLogs_ReAssignedById",
table: "OrgHierarchyLogs",
column: "ReAssignedById");
migrationBuilder.CreateIndex(
name: "IX_OrgHierarchyLogs_TenantId",
table: "OrgHierarchyLogs",
column: "TenantId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "OrgHierarchyLogs");
migrationBuilder.DropTable(
name: "OrganizationHierarchies");
}
}
}