138 lines
6.4 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|