working on payment

This commit is contained in:
Tria
2026-06-04 16:18:14 +03:00
parent 6b82b11757
commit 93020b3153
10 changed files with 664 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn } from "typeorm";
type PaymentType = "booking"
type PaymentMethod = "telebirr" | "cbe-birr" | "ebirr"
type Currency = "etb" | "usd"
type PaymentStatus = "action-required" | "processing" | "success" | "failed" | "canceled" | "refunded"
@Entity({ schema: 'freight', name: 'payments' })
export class PaymentEntity extends BaseEntity {
@PrimaryGeneratedColumn("uuid")
id!: string
@Column({ type: 'varchar', length: 255, name: "ref_id" })
refId!: string
@Column({ type: 'varchar', length: 255, name: "table_id" })
tableId!: string
@Column({ type: "enum", enum: ["booking"] })
type!: PaymentType;
@Column({ type: "enum", enum: ["telebirr", "cbe-birr", "ebirr"] })
method!: PaymentMethod
@Column({ type: "enum", enum: ["etb", "usd"] })
currency!: Currency
@Column({ type: "numeric" })
amount!: number
@Column({ type: "json", name: "client_action" })
clientAction?: string;
@Column({ type: "varchar", length: 255, unique: true, name: "merchant_order_id", })
merchantOrderId?: string
@Column({ type: "varchar", length: 255, unique: true, name: "transaction_id", })
transactionId?: string
@Column({ type: "enum", enum: ["action-required", "processing", "success", "failed", "canceled", "refunded"], default: "action-required" })
status!: PaymentStatus
@Column({ type: "date", nullable: true, name: "paid_at" })
paidAt?: Date
@Column({ type: "date", nullable: true, name: "refunded_at" })
refundedAt?: Date
@Column({ type: "varchar", length: 30, nullable: true, name: "failer_code" })
failerCode?: string
@Column({ type: "varchar", length: 255, nullable: true, name: "failer_message" })
failureMessage?: string
@CreateDateColumn({ name: "created_at" })
createdAt!: Date
}