using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable #pragma warning disable CA1814 // Prefer jagged arrays over multidimensional namespace MTWorkHR.Infrastructure.Migrations { /// public partial class UserTasks : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "AttachmentType", columns: table => new { Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), NameAr = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), NameEn = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), IsRequired = table.Column(type: "bit", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AttachmentType", x => x.Id); }); migrationBuilder.CreateTable( name: "Projects", columns: table => new { Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), NameAr = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), NameEn = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) }, constraints: table => { table.PrimaryKey("PK_Projects", x => x.Id); }); migrationBuilder.CreateTable( name: "UserTaskStatuses", columns: table => new { Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), NameAr = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), NameEn = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) }, constraints: table => { table.PrimaryKey("PK_UserTaskStatuses", x => x.Id); }); migrationBuilder.CreateTable( name: "UserTaskHistories", columns: table => new { Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CreateUser = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: true), UpdateUser = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: true), CreateDate = table.Column(type: "datetime2", nullable: false), UpdateDate = table.Column(type: "datetime2", nullable: true), AssignedToUserId = table.Column(type: "bigint", nullable: false), Comment = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: false), CurrentStatusId = table.Column(type: "bigint", nullable: false), IsDeleted = table.Column(type: "bit", nullable: false) }, constraints: table => { table.PrimaryKey("PK_UserTaskHistories", x => x.Id); table.ForeignKey( name: "FK_UserTaskHistories_UserTaskStatuses_CurrentStatusId", column: x => x.CurrentStatusId, principalTable: "UserTaskStatuses", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "UserTasks", columns: table => new { Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CreateUser = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: true), UpdateUser = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: true), CreateDate = table.Column(type: "datetime2", nullable: false), UpdateDate = table.Column(type: "datetime2", nullable: true), IsDeleted = table.Column(type: "bit", nullable: false), DeleteUserId = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: false), AssignedUserId = table.Column(type: "bigint", nullable: false), Title = table.Column(type: "nvarchar(max)", nullable: false), Description = table.Column(type: "nvarchar(max)", nullable: false), DueDate = table.Column(type: "datetime2", nullable: false), Priority = table.Column(type: "int", nullable: false), ProjectId = table.Column(type: "bigint", nullable: false), StatusId = table.Column(type: "bigint", nullable: false) }, constraints: table => { table.PrimaryKey("PK_UserTasks", x => x.Id); table.ForeignKey( name: "FK_UserTasks_Projects_ProjectId", column: x => x.ProjectId, principalTable: "Projects", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_UserTasks_UserTaskStatuses_StatusId", column: x => x.StatusId, principalTable: "UserTaskStatuses", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "UserTaskAttachments", columns: table => new { Id = table.Column(type: "bigint", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CreateUser = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: true), UpdateUser = table.Column(type: "nvarchar(450)", maxLength: 450, nullable: true), CreateDate = table.Column(type: "datetime2", nullable: false), UpdateDate = table.Column(type: "datetime2", nullable: true), TaskId = table.Column(type: "bigint", nullable: false), AttachmentTypeId = table.Column(type: "bigint", nullable: false), FileName = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), OriginalName = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) }, constraints: table => { table.PrimaryKey("PK_UserTaskAttachments", x => x.Id); table.ForeignKey( name: "FK_UserTaskAttachments_AttachmentType_AttachmentTypeId", column: x => x.AttachmentTypeId, principalTable: "AttachmentType", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_UserTaskAttachments_UserTasks_TaskId", column: x => x.TaskId, principalTable: "UserTasks", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.InsertData( table: "AttachmentType", columns: new[] { "Id", "IsRequired", "NameAr", "NameEn" }, values: new object[,] { { 1L, false, "السيرة الذاتية", "CV" }, { 2L, false, "الهوية", "Identification" } }); migrationBuilder.CreateIndex( name: "IX_UserTaskAttachments_AttachmentTypeId", table: "UserTaskAttachments", column: "AttachmentTypeId"); migrationBuilder.CreateIndex( name: "IX_UserTaskAttachments_TaskId", table: "UserTaskAttachments", column: "TaskId"); migrationBuilder.CreateIndex( name: "IX_UserTaskHistories_CurrentStatusId", table: "UserTaskHistories", column: "CurrentStatusId"); migrationBuilder.CreateIndex( name: "IX_UserTasks_ProjectId", table: "UserTasks", column: "ProjectId"); migrationBuilder.CreateIndex( name: "IX_UserTasks_StatusId", table: "UserTasks", column: "StatusId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "UserTaskAttachments"); migrationBuilder.DropTable( name: "UserTaskHistories"); migrationBuilder.DropTable( name: "AttachmentType"); migrationBuilder.DropTable( name: "UserTasks"); migrationBuilder.DropTable( name: "Projects"); migrationBuilder.DropTable( name: "UserTaskStatuses"); } } }