using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Marco.Pms.DataAccess.Migrations { /// public partial class Added_Collection_Related_Tables : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Invoices", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Title = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), InvoiceNumber = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ProjectId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), InvoiceDate = table.Column(type: "datetime(6)", nullable: false), ClientSubmitedDate = table.Column(type: "datetime(6)", nullable: false), ExceptedPaymentDate = table.Column(type: "datetime(6)", nullable: false), Amount = table.Column(type: "double", nullable: false), IsActive = table.Column(type: "tinyint(1)", nullable: false), CreatedAt = table.Column(type: "datetime(6)", nullable: false), CreatedById = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), UpdatedAt = table.Column(type: "datetime(6)", nullable: true), UpdatedById = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), TenantId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") }, constraints: table => { table.PrimaryKey("PK_Invoices", x => x.Id); table.ForeignKey( name: "FK_Invoices_Employees_CreatedById", column: x => x.CreatedById, principalTable: "Employees", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Invoices_Employees_UpdatedById", column: x => x.UpdatedById, principalTable: "Employees", principalColumn: "Id"); table.ForeignKey( name: "FK_Invoices_Projects_ProjectId", column: x => x.ProjectId, principalTable: "Projects", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_Invoices_Tenants_TenantId", column: x => x.TenantId, principalTable: "Tenants", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "InvoiceAttachments", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), InvoiceId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), DocumentId = 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_InvoiceAttachments", x => x.Id); table.ForeignKey( name: "FK_InvoiceAttachments_Documents_DocumentId", column: x => x.DocumentId, principalTable: "Documents", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_InvoiceAttachments_Invoices_InvoiceId", column: x => x.InvoiceId, principalTable: "Invoices", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_InvoiceAttachments_Tenants_TenantId", column: x => x.TenantId, principalTable: "Tenants", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "InvoiceComments", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Comment = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), CreatedAt = table.Column(type: "datetime(6)", nullable: false), CreatedById = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), InvoiceId = 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_InvoiceComments", x => x.Id); table.ForeignKey( name: "FK_InvoiceComments_Employees_CreatedById", column: x => x.CreatedById, principalTable: "Employees", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_InvoiceComments_Invoices_InvoiceId", column: x => x.InvoiceId, principalTable: "Invoices", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_InvoiceComments_Tenants_TenantId", column: x => x.TenantId, principalTable: "Tenants", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "ReceivedInvoicePayments", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), InvoiceId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), PaymentReceivedDate = table.Column(type: "datetime(6)", nullable: false), TransactionId = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Amount = table.Column(type: "double", nullable: false), IsActive = table.Column(type: "tinyint(1)", nullable: false), CreatedAt = table.Column(type: "datetime(6)", nullable: false), CreatedById = 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_ReceivedInvoicePayments", x => x.Id); table.ForeignKey( name: "FK_ReceivedInvoicePayments_Employees_CreatedById", column: x => x.CreatedById, principalTable: "Employees", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ReceivedInvoicePayments_Invoices_InvoiceId", column: x => x.InvoiceId, principalTable: "Invoices", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_ReceivedInvoicePayments_Tenants_TenantId", column: x => x.TenantId, principalTable: "Tenants", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateIndex( name: "IX_InvoiceAttachments_DocumentId", table: "InvoiceAttachments", column: "DocumentId"); migrationBuilder.CreateIndex( name: "IX_InvoiceAttachments_InvoiceId", table: "InvoiceAttachments", column: "InvoiceId"); migrationBuilder.CreateIndex( name: "IX_InvoiceAttachments_TenantId", table: "InvoiceAttachments", column: "TenantId"); migrationBuilder.CreateIndex( name: "IX_InvoiceComments_CreatedById", table: "InvoiceComments", column: "CreatedById"); migrationBuilder.CreateIndex( name: "IX_InvoiceComments_InvoiceId", table: "InvoiceComments", column: "InvoiceId"); migrationBuilder.CreateIndex( name: "IX_InvoiceComments_TenantId", table: "InvoiceComments", column: "TenantId"); migrationBuilder.CreateIndex( name: "IX_Invoices_CreatedById", table: "Invoices", column: "CreatedById"); migrationBuilder.CreateIndex( name: "IX_Invoices_ProjectId", table: "Invoices", column: "ProjectId"); migrationBuilder.CreateIndex( name: "IX_Invoices_TenantId", table: "Invoices", column: "TenantId"); migrationBuilder.CreateIndex( name: "IX_Invoices_UpdatedById", table: "Invoices", column: "UpdatedById"); migrationBuilder.CreateIndex( name: "IX_ReceivedInvoicePayments_CreatedById", table: "ReceivedInvoicePayments", column: "CreatedById"); migrationBuilder.CreateIndex( name: "IX_ReceivedInvoicePayments_InvoiceId", table: "ReceivedInvoicePayments", column: "InvoiceId"); migrationBuilder.CreateIndex( name: "IX_ReceivedInvoicePayments_TenantId", table: "ReceivedInvoicePayments", column: "TenantId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "InvoiceAttachments"); migrationBuilder.DropTable( name: "InvoiceComments"); migrationBuilder.DropTable( name: "ReceivedInvoicePayments"); migrationBuilder.DropTable( name: "Invoices"); } } }