using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Hushian.Persistence.Migrations { /// public partial class InitalDB : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Companies", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Cdatetime = table.Column(type: "datetime2", nullable: false), Password = table.Column(type: "nvarchar(max)", nullable: false), FullName = table.Column(type: "nvarchar(max)", nullable: false), FullNameManager = table.Column(type: "nvarchar(max)", nullable: true), Mobile = table.Column(type: "nvarchar(max)", nullable: false), WebSite = table.Column(type: "nvarchar(max)", nullable: true), Email = table.Column(type: "nvarchar(max)", nullable: true), logo = table.Column(type: "varbinary(max)", nullable: true), Available = table.Column(type: "bit", nullable: false), allowBot = table.Column(type: "bit", nullable: false), Verified = table.Column(type: "bit", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Companies", x => x.ID); }); migrationBuilder.CreateTable( name: "Users", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Cdatetime = table.Column(type: "datetime2", nullable: false), FullName = table.Column(type: "nvarchar(max)", nullable: true), Mobile = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Users", x => x.ID); }); migrationBuilder.CreateTable( name: "CompanyContentInfo", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CompanyID = table.Column(type: "int", nullable: false), Content = table.Column(type: "nvarchar(max)", nullable: false), Cdatetime = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_CompanyContentInfo", x => x.ID); table.ForeignKey( name: "FK_CompanyContentInfo_Companies_CompanyID", column: x => x.CompanyID, principalTable: "Companies", principalColumn: "ID", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Expers", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CompanyID = table.Column(type: "int", nullable: false), Cdatetime = table.Column(type: "datetime2", nullable: false), FullName = table.Column(type: "nvarchar(max)", nullable: false), UserName = table.Column(type: "nvarchar(max)", nullable: false), Password = table.Column(type: "nvarchar(max)", nullable: false), Available = table.Column(type: "bit", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Expers", x => x.ID); table.ForeignKey( name: "FK_Expers_Companies_CompanyID", column: x => x.CompanyID, principalTable: "Companies", principalColumn: "ID", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Groups", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CompanyID = table.Column(type: "int", nullable: false), Cdatetime = table.Column(type: "datetime2", nullable: false), Name = table.Column(type: "nvarchar(max)", nullable: false), img = table.Column(type: "varbinary(max)", nullable: true), Info = table.Column(type: "nvarchar(max)", nullable: true), Available = table.Column(type: "bit", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Groups", x => x.ID); table.ForeignKey( name: "FK_Groups_Companies_CompanyID", column: x => x.CompanyID, principalTable: "Companies", principalColumn: "ID", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Conversations", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CompanyID = table.Column(type: "int", nullable: false), UserID = table.Column(type: "int", nullable: false), GroupID = table.Column(type: "int", nullable: true), Status = table.Column(type: "int", nullable: false), FinishedDateTime = table.Column(type: "datetime2", nullable: true), Cdatetime = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Conversations", x => x.ID); table.ForeignKey( name: "FK_Conversations_Companies_CompanyID", column: x => x.CompanyID, principalTable: "Companies", principalColumn: "ID", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Conversations_Groups_GroupID", column: x => x.GroupID, principalTable: "Groups", principalColumn: "ID"); table.ForeignKey( name: "FK_Conversations_Users_UserID", column: x => x.UserID, principalTable: "Users", principalColumn: "ID", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "EG", columns: table => new { ExperID = table.Column(type: "int", nullable: false), GroupID = table.Column(type: "int", nullable: false), Cdatetime = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_EG", x => new { x.ExperID, x.GroupID }); table.ForeignKey( name: "FK_EG_Expers_ExperID", column: x => x.ExperID, principalTable: "Expers", principalColumn: "ID", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_EG_Groups_GroupID", column: x => x.GroupID, principalTable: "Groups", principalColumn: "ID"); }); migrationBuilder.CreateTable( name: "ConversationItems", columns: table => new { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), ConversationID = table.Column(type: "int", nullable: false), ExperID = table.Column(type: "int", nullable: true), IsRead = table.Column(type: "bit", nullable: false), Type = table.Column(type: "int", nullable: false), Text = table.Column(type: "nvarchar(max)", nullable: false), FileName = table.Column(type: "nvarchar(max)", nullable: true), FileType = table.Column(type: "nvarchar(max)", nullable: true), FileContent = table.Column(type: "varbinary(max)", nullable: true), ReadDateTime = table.Column(type: "datetime2", nullable: true), Cdatetime = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ConversationItems", x => x.ID); table.ForeignKey( name: "FK_ConversationItems_Conversations_ConversationID", column: x => x.ConversationID, principalTable: "Conversations", principalColumn: "ID", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ConversationItems_Expers_ExperID", column: x => x.ExperID, principalTable: "Expers", principalColumn: "ID"); }); migrationBuilder.CreateIndex( name: "IX_CompanyContentInfo_CompanyID", table: "CompanyContentInfo", column: "CompanyID"); migrationBuilder.CreateIndex( name: "IX_ConversationItems_ConversationID", table: "ConversationItems", column: "ConversationID"); migrationBuilder.CreateIndex( name: "IX_ConversationItems_ExperID", table: "ConversationItems", column: "ExperID"); migrationBuilder.CreateIndex( name: "IX_Conversations_CompanyID", table: "Conversations", column: "CompanyID"); migrationBuilder.CreateIndex( name: "IX_Conversations_GroupID", table: "Conversations", column: "GroupID"); migrationBuilder.CreateIndex( name: "IX_Conversations_UserID", table: "Conversations", column: "UserID"); migrationBuilder.CreateIndex( name: "IX_EG_GroupID", table: "EG", column: "GroupID"); migrationBuilder.CreateIndex( name: "IX_Expers_CompanyID", table: "Expers", column: "CompanyID"); migrationBuilder.CreateIndex( name: "IX_Groups_CompanyID", table: "Groups", column: "CompanyID"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "CompanyContentInfo"); migrationBuilder.DropTable( name: "ConversationItems"); migrationBuilder.DropTable( name: "EG"); migrationBuilder.DropTable( name: "Conversations"); migrationBuilder.DropTable( name: "Expers"); migrationBuilder.DropTable( name: "Groups"); migrationBuilder.DropTable( name: "Users"); migrationBuilder.DropTable( name: "Companies"); } } }