using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Marco.Pms.DataAccess.Migrations { /// public partial class Added_OrganiazationHierarchy_Related_Table : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "OrganizationHierarchies", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), EmployeeId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), ReportToId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), IsPrimary = table.Column(type: "tinyint(1)", nullable: false), IsActive = table.Column(type: "tinyint(1)", nullable: false), AssignedAt = table.Column(type: "datetime(6)", nullable: false), AssignedById = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), TenantId = table.Column(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(type: "char(36)", nullable: false, collation: "ascii_general_ci"), OrganizationHierarchyId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), ReAssignedAt = table.Column(type: "datetime(6)", nullable: false), ReAssignedById = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), TenantId = table.Column(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"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "OrgHierarchyLogs"); migrationBuilder.DropTable( name: "OrganizationHierarchies"); } } }