424 lines
24 KiB
C#
424 lines
24 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
|
|
|
|
namespace Marco.Pms.DataAccess.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class Added_PurchaseInvoice_Related_Tables : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropForeignKey(
|
|
name: "FK_AdvancePaymentTransactions_Projects_ProjectId",
|
|
table: "AdvancePaymentTransactions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "IX_AdvancePaymentTransactions_ProjectId",
|
|
table: "AdvancePaymentTransactions");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "InvoiceAttachmentTypes",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
Name = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
Description = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4")
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_InvoiceAttachmentTypes", x => x.Id);
|
|
})
|
|
.Annotation("MySql:CharSet", "utf8mb4");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PurchaseInvoiceDetails",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
UIDPrefix = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
UIDPostfix = table.Column<int>(type: "int", nullable: false),
|
|
Title = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
Description = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
ProjectId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
OrganizationId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
BillingAddress = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
ShippingAddress = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
PurchaseOrderNumber = table.Column<string>(type: "longtext", nullable: true)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
PurchaseOrderDate = table.Column<DateTime>(type: "datetime(6)", nullable: true),
|
|
SupplierId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
ProformaInvoiceNumber = table.Column<string>(type: "longtext", nullable: true)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
ProformaInvoiceDate = table.Column<DateTime>(type: "datetime(6)", nullable: true),
|
|
ProformaInvoiceAmount = table.Column<double>(type: "double", nullable: true),
|
|
InvoiceNumber = table.Column<string>(type: "longtext", nullable: true)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
InvoiceDate = table.Column<DateTime>(type: "datetime(6)", nullable: true),
|
|
EWayBillNumber = table.Column<string>(type: "longtext", nullable: true)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
EWayBillDate = table.Column<DateTime>(type: "datetime(6)", nullable: true),
|
|
InvoiceReferenceNumber = table.Column<string>(type: "longtext", nullable: true)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
AcknowledgmentNumber = table.Column<string>(type: "longtext", nullable: true)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
AcknowledgmentDate = table.Column<DateTime>(type: "datetime(6)", nullable: true),
|
|
BaseAmount = table.Column<double>(type: "double", nullable: false),
|
|
TaxAmount = table.Column<double>(type: "double", nullable: false),
|
|
TransportCharges = table.Column<double>(type: "double", nullable: true),
|
|
TotalAmount = table.Column<double>(type: "double", nullable: false),
|
|
PaymentDueDate = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedById = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
UpdatedById = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: true),
|
|
TenantId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci")
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PurchaseInvoiceDetails", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceDetails_Employees_CreatedById",
|
|
column: x => x.CreatedById,
|
|
principalTable: "Employees",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceDetails_Employees_UpdatedById",
|
|
column: x => x.UpdatedById,
|
|
principalTable: "Employees",
|
|
principalColumn: "Id");
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceDetails_Organizations_OrganizationId",
|
|
column: x => x.OrganizationId,
|
|
principalTable: "Organizations",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceDetails_Organizations_SupplierId",
|
|
column: x => x.SupplierId,
|
|
principalTable: "Organizations",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceDetails_Tenants_TenantId",
|
|
column: x => x.TenantId,
|
|
principalTable: "Tenants",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
})
|
|
.Annotation("MySql:CharSet", "utf8mb4");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PurchaseInvoiceStatus",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
Name = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
DisplayName = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
Color = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
Description = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4")
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PurchaseInvoiceStatus", x => x.Id);
|
|
})
|
|
.Annotation("MySql:CharSet", "utf8mb4");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PurchaseInvoiceAttachments",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
PurchaseInvoiceId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
DocumentId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
UploadedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
UploadedById = 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_PurchaseInvoiceAttachments", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceAttachments_Documents_DocumentId",
|
|
column: x => x.DocumentId,
|
|
principalTable: "Documents",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceAttachments_Employees_UploadedById",
|
|
column: x => x.UploadedById,
|
|
principalTable: "Employees",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceAttachments_PurchaseInvoiceDetails_PurchaseIn~",
|
|
column: x => x.PurchaseInvoiceId,
|
|
principalTable: "PurchaseInvoiceDetails",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoiceAttachments_Tenants_TenantId",
|
|
column: x => x.TenantId,
|
|
principalTable: "Tenants",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
})
|
|
.Annotation("MySql:CharSet", "utf8mb4");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PurchaseInvoicePayments",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
InvoiceId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
PaymentReceivedDate = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
TransactionId = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
Amount = table.Column<double>(type: "double", nullable: false),
|
|
Comment = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
PaymentAdjustmentHeadId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
CreatedById = 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_PurchaseInvoicePayments", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoicePayments_Employees_CreatedById",
|
|
column: x => x.CreatedById,
|
|
principalTable: "Employees",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoicePayments_PaymentAdjustmentHeads_PaymentAdjust~",
|
|
column: x => x.PaymentAdjustmentHeadId,
|
|
principalTable: "PaymentAdjustmentHeads",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoicePayments_PurchaseInvoiceDetails_InvoiceId",
|
|
column: x => x.InvoiceId,
|
|
principalTable: "PurchaseInvoiceDetails",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PurchaseInvoicePayments_Tenants_TenantId",
|
|
column: x => x.TenantId,
|
|
principalTable: "Tenants",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
})
|
|
.Annotation("MySql:CharSet", "utf8mb4");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "DeliveryChallanDetails",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
DeliveryChallanNumber = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
DeliveryChallanDate = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
Description = table.Column<string>(type: "longtext", nullable: false)
|
|
.Annotation("MySql:CharSet", "utf8mb4"),
|
|
PurchaseInvoiceId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
AttachmentId = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
|
|
CreatedById = 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_DeliveryChallanDetails", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_DeliveryChallanDetails_Employees_CreatedById",
|
|
column: x => x.CreatedById,
|
|
principalTable: "Employees",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_DeliveryChallanDetails_PurchaseInvoiceAttachments_Attachment~",
|
|
column: x => x.AttachmentId,
|
|
principalTable: "PurchaseInvoiceAttachments",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_DeliveryChallanDetails_PurchaseInvoiceDetails_PurchaseInvoic~",
|
|
column: x => x.PurchaseInvoiceId,
|
|
principalTable: "PurchaseInvoiceDetails",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_DeliveryChallanDetails_Tenants_TenantId",
|
|
column: x => x.TenantId,
|
|
principalTable: "Tenants",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
})
|
|
.Annotation("MySql:CharSet", "utf8mb4");
|
|
|
|
migrationBuilder.InsertData(
|
|
table: "InvoiceAttachmentTypes",
|
|
columns: new[] { "Id", "Description", "Name" },
|
|
values: new object[,]
|
|
{
|
|
{ new Guid("150ddd9b-4b8d-44ac-bae0-2e553c0f069a"), "An E-Way Bill (Electronic Way Bill) is a mandatory digital document generated on the GST portal to evidence and track the movement of goods valued over ₹50,000.", "E Way Bill" },
|
|
{ new Guid("1fa20cff-b0ee-468e-9ea6-72d5aa144a3f"), "An E-Invoice (Electronic Invoice) is a system where B2B invoices are electronically authenticated by the GST Network (GSTN) to generate a unique Invoice Reference Number (IRN) and QR code.", "E-Invoice" },
|
|
{ new Guid("3ca08288-0a74-4850-9948-0783aa975b84"), "A Tax Invoice is a mandatory legal document issued by a GST-registered supplier for taxable goods or services, enabling the buyer to claim Input Tax Credit (ITC).", "Tax Invoice" },
|
|
{ new Guid("ca294108-a586-4207-88c8-163b24305ddc"), "A delivery challan is a formal document accompanying a shipment of goods that lists the items included and serves as proof of delivery upon receipt.", "Delivery Challan" }
|
|
});
|
|
|
|
migrationBuilder.InsertData(
|
|
table: "PurchaseInvoiceStatus",
|
|
columns: new[] { "Id", "Color", "Description", "DisplayName", "Name" },
|
|
values: new object[,]
|
|
{
|
|
{ new Guid("16b10201-1651-465c-b2fd-236bdef86f95"), "#696cff", "Review Pending status in a Purchase Invoice indicates that the invoice has been submitted for validation but requires approval from an authorized person (like a manager or auditor) before it can be posted to the ledger or paid.", "Submit for Review", "Review Pending" },
|
|
{ new Guid("58de9cef-811f-46a4-814d-0069b64d98a9"), "#ff3e1d", "Rejected by Approver status in a Purchase Invoice indicates that the document successfully passed initial verification but was ultimately denied by the final authorizing signatory (such as a Manager or CFO) due to budget or validity concerns.", "Reject", "Rejected by Approver" },
|
|
{ new Guid("5b393371-dbcf-4a28-88a8-f406fa34e0d0"), "#71dd37", "Approved status indicates that the invoice has successfully cleared all necessary verification and authorization levels and is formally accepted by the company as a valid debt.", "Mark as Approved", "Approved" },
|
|
{ new Guid("60027a54-3c23-4619-9f4e-6c20549b50a6"), "#03c3ec", "Approval Pending status in a Purchase Invoice indicates that the document has passed initial verification (matching and coding) and is now awaiting final financial authorization from a designated budget holder or signatory.", "Mark as Reviewed", "Approval Pending" },
|
|
{ new Guid("8a5ef25e-3c9e-45de-add9-6b1c1df54381"), "#8592a3", "Draft Status in a Purchase Invoice indicates a preliminary, unfinalized document that is saved for review but has not yet been posted to the general ledger or affected your accounts/inventory.", "Draft", "Draft" },
|
|
{ new Guid("a05f5f4a-bd9d-4028-af42-48ee0caa3e40"), "#ff3e1d", "Rejected by Reviewer status indicates that the invoice failed the approval process due to errors, discrepancies, or policy violations and has been returned to the initiator or vendor for correction.", "Reject", "Rejected by Reviewer" }
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeliveryChallanDetails_AttachmentId",
|
|
table: "DeliveryChallanDetails",
|
|
column: "AttachmentId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeliveryChallanDetails_CreatedById",
|
|
table: "DeliveryChallanDetails",
|
|
column: "CreatedById");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeliveryChallanDetails_PurchaseInvoiceId",
|
|
table: "DeliveryChallanDetails",
|
|
column: "PurchaseInvoiceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeliveryChallanDetails_TenantId",
|
|
table: "DeliveryChallanDetails",
|
|
column: "TenantId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceAttachments_DocumentId",
|
|
table: "PurchaseInvoiceAttachments",
|
|
column: "DocumentId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceAttachments_PurchaseInvoiceId",
|
|
table: "PurchaseInvoiceAttachments",
|
|
column: "PurchaseInvoiceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceAttachments_TenantId",
|
|
table: "PurchaseInvoiceAttachments",
|
|
column: "TenantId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceAttachments_UploadedById",
|
|
table: "PurchaseInvoiceAttachments",
|
|
column: "UploadedById");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceDetails_CreatedById",
|
|
table: "PurchaseInvoiceDetails",
|
|
column: "CreatedById");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceDetails_OrganizationId",
|
|
table: "PurchaseInvoiceDetails",
|
|
column: "OrganizationId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceDetails_SupplierId",
|
|
table: "PurchaseInvoiceDetails",
|
|
column: "SupplierId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceDetails_TenantId",
|
|
table: "PurchaseInvoiceDetails",
|
|
column: "TenantId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoiceDetails_UpdatedById",
|
|
table: "PurchaseInvoiceDetails",
|
|
column: "UpdatedById");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoicePayments_CreatedById",
|
|
table: "PurchaseInvoicePayments",
|
|
column: "CreatedById");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoicePayments_InvoiceId",
|
|
table: "PurchaseInvoicePayments",
|
|
column: "InvoiceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoicePayments_PaymentAdjustmentHeadId",
|
|
table: "PurchaseInvoicePayments",
|
|
column: "PaymentAdjustmentHeadId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PurchaseInvoicePayments_TenantId",
|
|
table: "PurchaseInvoicePayments",
|
|
column: "TenantId");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "DeliveryChallanDetails");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "InvoiceAttachmentTypes");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PurchaseInvoicePayments");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PurchaseInvoiceStatus");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PurchaseInvoiceAttachments");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PurchaseInvoiceDetails");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AdvancePaymentTransactions_ProjectId",
|
|
table: "AdvancePaymentTransactions",
|
|
column: "ProjectId");
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "FK_AdvancePaymentTransactions_Projects_ProjectId",
|
|
table: "AdvancePaymentTransactions",
|
|
column: "ProjectId",
|
|
principalTable: "Projects",
|
|
principalColumn: "Id");
|
|
}
|
|
}
|
|
}
|