This commit is contained in:
marshal
2026-06-25 10:37:21 +03:00
295 changed files with 16865 additions and 7724 deletions

View File

@@ -45,7 +45,7 @@ export class CacBankProvider implements PaymentProvider {
api_key: this.apiKey,
customer_mobile: input.payerAccount,
currency: input.currency || this.defaultCurrency,
desc: `EDR ${input.orderRef}`.slice(0, 500),
desc: `${input.orderRef}`.slice(0, 500),
vender_ref: input.merchantOrderId,
amount: this.toMajorAmount(input.amountMinor, input.currency),
company_services_id: this.companyServicesId,

View File

@@ -62,7 +62,7 @@ export class CardProvider implements PaymentProvider {
const requestBody: CardInitiateRequest = {
amount,
currency: input.currency,
description: `EDR ${input.orderRef}`,
description: `${input.orderRef}`,
metadata: {
merchantOrderId: input.merchantOrderId,
orderRef: input.orderRef,

View File

@@ -62,7 +62,7 @@ export class CbeBirrProvider implements PaymentProvider {
merchantOrderId: input.merchantOrderId,
amount,
currency: input.currency,
description: `EDR ${input.orderRef}`,
description: `${input.orderRef}`,
// Per-transaction browser return target (each calling app has its own UI); config is fallback.
returnUrl: input.returnUrl ?? this.returnUrl,
notifyUrl: this.notifyUrl,

View File

@@ -207,7 +207,7 @@ export class DMoneyProvider implements PaymentProvider {
merch_code: this.merchantCode,
merch_order_id: input.merchantOrderId,
trade_type: "Checkout" as const,
title: `EDR ${input.orderRef}`,
title: `${input.orderRef}`,
total_amount: totalAmount,
trans_currency: 1 == 1 ? "DJF": this.currency,
timeout_express: this.timeoutExpress,

View File

@@ -210,7 +210,7 @@ export class WaafiProvider implements PaymentProvider {
amount: this.toAmount(input.amountMinor),
// Waafi has no ETB; `waafi.currency` overrides the booking currency when set.
currency: this.currency || input.currency,
description: `EDR ${input.orderRef}`,
description: `${input.orderRef}`,
},
},
};

View File

@@ -23,7 +23,7 @@ export const GOVERNMENT_PRIORITY_BONUS = 50_000;
export interface GovernmentBookingFields {
isGovernment: boolean;
governmentInstitution?: string | null;
governmentInstitution?: string | null;
}
export enum ExceededAction {
@@ -173,6 +173,8 @@ export enum TrainSetWagonStatus {
export enum WagonStatus {
Available = "AVAILABLE",
Assigned = "ASSIGNED",
ImportReady = "IMPORT_READY",
ExportReady = "EXPORT_READY",
Maintenance = "MAINTENANCE",
Retired = "RETIRED",
}
@@ -505,7 +507,7 @@ export interface IInvoice extends BaseEntity {
dueAt: string;
}
// ── Reference Data (booking form catalog) ──────────────────────────────────────
// ── Reference Data (booking form catalog) ──────────────────────────────────────
export interface BookingReferenceYard {
id: string;

View File

@@ -1,13 +1,13 @@
import { cn } from "../lib/utils"
import { cn } from "../lib/utils";
function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
return (
<div
data-slot="skeleton"
className={cn("animate-pulse rounded-md bg-accent", className)}
className={cn("animate-pulse rounded-md bg-gray-200", className)}
{...props}
/>
)
);
}
export { Skeleton }
export { Skeleton };