frontend phase 5 & backend phase 12

This commit is contained in:
hamid
2026-07-09 03:05:14 +03:30
parent 465f75c29e
commit dc64472631
98 changed files with 11847 additions and 136 deletions
@@ -0,0 +1,88 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Baya.Infrastructure.Persistence.Migrations
{
/// <inheritdoc />
public partial class BnplTransactions : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "BnplTransactions",
schema: "payments",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
PaymentTransactionId = table.Column<long>(type: "bigint", nullable: false),
ProviderCode = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
MerchantOfRecord = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: false),
ExternalPaymentToken = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
ExternalTransactionId = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
EligibilityStatus = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: true),
OrderAmountIrr = table.Column<long>(type: "bigint", nullable: false),
SettledAmountIrr = table.Column<long>(type: "bigint", nullable: true),
BnplCommissionIrr = table.Column<long>(type: "bigint", nullable: true),
Currency = table.Column<string>(type: "nvarchar(5)", maxLength: 5, nullable: false),
InstallmentCount = table.Column<byte>(type: "tinyint", nullable: false),
Status = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: false),
SettledAt = table.Column<DateTime>(type: "datetime2", nullable: true),
RevertTransactionId = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
RevertedAmountIrr = table.Column<long>(type: "bigint", nullable: true),
RevertedAt = table.Column<DateTime>(type: "datetime2", nullable: true),
ProviderCommissionReversedAmount = table.Column<long>(type: "bigint", nullable: true),
RefundChannel = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
CallbackPayloadJson = table.Column<string>(type: "nvarchar(max)", nullable: true),
DeletedAt = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: true),
CreatedAt = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: false),
ModifiedAt = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: true),
CreatedById = table.Column<int>(type: "int", nullable: true),
ModifiedById = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_BnplTransactions", x => x.Id);
table.CheckConstraint("CK_BnplTransactions_SettleSplit", "([SettledAmountIrr] IS NULL AND [BnplCommissionIrr] IS NULL) OR ([SettledAmountIrr] = [OrderAmountIrr] - [BnplCommissionIrr] AND [SettledAmountIrr] >= 0 AND [BnplCommissionIrr] >= 0)");
table.ForeignKey(
name: "FK_BnplTransactions_PaymentTransactions_PaymentTransactionId",
column: x => x.PaymentTransactionId,
principalSchema: "payments",
principalTable: "PaymentTransactions",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateIndex(
name: "IX_BnplTransactions_ExternalPaymentToken",
schema: "payments",
table: "BnplTransactions",
column: "ExternalPaymentToken",
filter: "[ExternalPaymentToken] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_BnplTransactions_PaymentTransactionId",
schema: "payments",
table: "BnplTransactions",
column: "PaymentTransactionId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_BnplTransactions_Status",
schema: "payments",
table: "BnplTransactions",
column: "Status");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "BnplTransactions",
schema: "payments");
}
}
}
@@ -98,6 +98,115 @@ namespace Baya.Infrastructure.Persistence.Migrations
b.ToTable("AuditLogs", "ops");
});
modelBuilder.Entity("Baya.Domain.Entities.Bnpl.BnplTransaction", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("Id"));
b.Property<long?>("BnplCommissionIrr")
.HasColumnType("bigint");
b.Property<string>("CallbackPayloadJson")
.HasColumnType("nvarchar(max)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("datetimeoffset");
b.Property<int?>("CreatedById")
.HasColumnType("int");
b.Property<string>("Currency")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<DateTimeOffset?>("DeletedAt")
.HasColumnType("datetimeoffset");
b.Property<string>("EligibilityStatus")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b.Property<string>("ExternalPaymentToken")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("ExternalTransactionId")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<byte>("InstallmentCount")
.HasColumnType("tinyint");
b.Property<string>("MerchantOfRecord")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("nvarchar(40)");
b.Property<DateTimeOffset?>("ModifiedAt")
.HasColumnType("datetimeoffset");
b.Property<int?>("ModifiedById")
.HasColumnType("int");
b.Property<long>("OrderAmountIrr")
.HasColumnType("bigint");
b.Property<long>("PaymentTransactionId")
.HasColumnType("bigint");
b.Property<string>("ProviderCode")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<long?>("ProviderCommissionReversedAmount")
.HasColumnType("bigint");
b.Property<string>("RefundChannel")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("RevertTransactionId")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<long?>("RevertedAmountIrr")
.HasColumnType("bigint");
b.Property<DateTime?>("RevertedAt")
.HasColumnType("datetime2");
b.Property<long?>("SettledAmountIrr")
.HasColumnType("bigint");
b.Property<DateTime?>("SettledAt")
.HasColumnType("datetime2");
b.Property<string>("Status")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b.HasKey("Id");
b.HasIndex("ExternalPaymentToken")
.HasFilter("[ExternalPaymentToken] IS NOT NULL");
b.HasIndex("PaymentTransactionId")
.IsUnique();
b.HasIndex("Status");
b.ToTable("BnplTransactions", "payments", t =>
{
t.HasCheckConstraint("CK_BnplTransactions_SettleSplit", "([SettledAmountIrr] IS NULL AND [BnplCommissionIrr] IS NULL) OR ([SettledAmountIrr] = [OrderAmountIrr] - [BnplCommissionIrr] AND [SettledAmountIrr] >= 0 AND [BnplCommissionIrr] >= 0)");
});
});
modelBuilder.Entity("Baya.Domain.Entities.Booking.Booking", b =>
{
b.Property<long>("Id")
@@ -4203,6 +4312,15 @@ namespace Baya.Infrastructure.Persistence.Migrations
.HasForeignKey("ActorUserId");
});
modelBuilder.Entity("Baya.Domain.Entities.Bnpl.BnplTransaction", b =>
{
b.HasOne("Baya.Domain.Entities.Payments.PaymentTransaction", null)
.WithMany()
.HasForeignKey("PaymentTransactionId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Baya.Domain.Entities.Booking.Booking", b =>
{
b.HasOne("Baya.Domain.Entities.Booking.BookingRequest", null)