This commit is contained in:
2025-10-31 11:06:05 +07:00
11 changed files with 273 additions and 1 deletions

View File

@ -29,6 +29,16 @@ export class TrxBank {
})
account_validate: boolean;
@Column({
default: false,
})
iban: boolean;
@Column({
default: false,
})
bsb: boolean;
@Column()
@CreateDateColumn()
created_at: Date;

View File

@ -0,0 +1,48 @@
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinTable } from "typeorm";
import { TrxCustomer } from "./trx_customers";
import { TrxCustomerUser } from "./trx_customer_users";
@Entity("trx_customer_user_signatures", { schema: "trx" })
export class TrxCustomerUserSignature {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => TrxCustomer, { onDelete: "RESTRICT" })
@JoinTable()
customer: TrxCustomer;
@ManyToOne(() => TrxCustomerUser, { onDelete: "RESTRICT" })
@JoinTable()
customer_user: TrxCustomerUser;
@Column({
type: "text",
})
signature_image: string;
@Column({
type: "text",
})
signature_hash: string;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true, length: 256 })
created_by: string;
@Column({ nullable: true })
@UpdateDateColumn()
updated_at: Date;
@Column({ nullable: true, length: 256 })
updated_by: string;
@Column({ nullable: true })
@DeleteDateColumn()
deleted_at: Date;
@Column({ nullable: true, length: 256 })
deleted_by: string;
}

View File

@ -3,6 +3,9 @@ import { Column, CreateDateColumn, DeleteDateColumn, Entity, Index, JoinTable, M
import { Status } from "../types/status";
import { TrxCustomer } from "./trx_customers";
import { TrxOccupation } from "./trx_occupations";
import { TrxCountry } from "./trx_countries";
import { TrxIdentityType } from "../types/trx";
@Entity("trx_customer_users", { schema: "trx" })
export class TrxCustomerUser {
@ -74,6 +77,26 @@ export class TrxCustomerUser {
})
status: Status;
@ManyToOne(() => TrxOccupation, { onDelete: "NO ACTION" })
@JoinTable()
occupation: TrxOccupation;
@ManyToOne(() => TrxCountry, { onDelete: "NO ACTION" })
@JoinTable()
country: TrxCountry;
@Column({
nullable: true,
length: 256,
})
identity_number: string;
@Column({
nullable: true,
length: 256,
})
identity_type: TrxIdentityType;
@Column()
@CreateDateColumn()
created_at: Date;

View File

@ -1,6 +1,7 @@
import { Column, CreateDateColumn, DeleteDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { Status } from "../types/status";
import { TrxCustomerType } from "../types/trx";
import { TrxOccupation } from "./trx_occupations";
@Entity("trx_customers", { schema: "trx" })
export class TrxCustomer {
@ -77,6 +78,16 @@ export class TrxCustomer {
})
status: Status;
@ManyToOne(() => TrxOccupation, { onDelete: "NO ACTION" })
@JoinTable()
occupation: TrxOccupation;
@Column({
nullable: true,
length: 256,
})
identity_number: string;
@Column()
@CreateDateColumn()
created_at: Date;

View File

@ -0,0 +1,42 @@
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm";
import { Status } from "../types/status";
@Entity("trx_occupations", { schema: "trx" })
export class TrxOccupation {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column({
nullable: true,
length: 256,
})
name: string;
@Column({
nullable: false,
length: 64,
})
status: Status;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true, length: 256 })
created_by: string;
@Column({ nullable: true })
@UpdateDateColumn()
updated_at: Date;
@Column({ nullable: true, length: 256 })
updated_by: string;
@Column({ nullable: true })
@DeleteDateColumn()
deleted_at: Date;
@Column({ nullable: true, length: 256 })
deleted_by: string;
}

View File

@ -0,0 +1,42 @@
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm";
import { Status } from "../types/status";
@Entity("trx_purposes", { schema: "trx" })
export class TrxPurposes {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column({
nullable: true,
length: 256,
})
name: string;
@Column({
nullable: false,
length: 64,
})
status: Status;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true, length: 256 })
created_by: string;
@Column({ nullable: true })
@UpdateDateColumn()
updated_at: Date;
@Column({ nullable: true, length: 256 })
updated_by: string;
@Column({ nullable: true })
@DeleteDateColumn()
deleted_at: Date;
@Column({ nullable: true, length: 256 })
deleted_by: string;
}

View File

@ -56,6 +56,18 @@ export class TrxReceiver {
})
account_number: string;
@Column({
nullable: true,
length: 256,
})
iban: string;
@Column({
nullable: true,
length: 256,
})
bsb: string;
@Column()
@CreateDateColumn()
created_at: Date;

View File

@ -0,0 +1,43 @@
import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { TrxTransaction } from "./trx_transactions";
@Entity("trx_transaction_signatures", { schema: "trx" })
export class TrxTransactionSignature {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => TrxTransaction, { onDelete: "NO ACTION" })
@JoinColumn()
transaction: TrxTransaction;
@Column({
type: "text",
})
customer_user_signature_image: string;
@Column({
type: "text",
})
customer_user_signature_hash: string;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true, length: 256 })
created_by: string;
@Column({ nullable: true })
@UpdateDateColumn()
updated_at: Date;
@Column({ nullable: true, length: 256 })
updated_by: string;
@Column({ nullable: true })
@DeleteDateColumn()
deleted_at: Date;
@Column({ nullable: true, length: 256 })
deleted_by: string;
}

View File

@ -8,6 +8,7 @@ import { TrxCustomerCost } from "./trx_customer_costs";
import { TrxCustomerUser } from "./trx_customer_users";
import { TrxTransactionPosition, TrxTransactionStatus, TrxTransactionType } from "../types/trx";
import { TrxVerification } from "./trx_verifications";
import { TrxPurposes } from "./trx_purposes";
@Entity("trx_transactions", { schema: "trx" })
export class TrxTransaction {
@ -115,6 +116,18 @@ export class TrxTransaction {
@JoinColumn()
signer_verification: TrxVerification;
@Column({
nullable: true,
length: 256,
})
teller_file: string;
@Column({ nullable: true, length: 256 })
tellered_by: string;
@Column({ nullable: true })
tellered_at: Date;
@Column({
nullable: true,
length: 256,
@ -149,6 +162,22 @@ export class TrxTransaction {
})
remark: string;
@Column({ nullable: true, length: 256 })
teller_reference_number: string;
@ManyToOne(() => TrxPurposes, { onDelete: "NO ACTION", nullable: true })
@JoinColumn()
purpose: TrxPurposes;
@Column({ nullable: true, length: 256 })
purpose_label: string;
@Column({
nullable: true,
length: 4096,
})
qrcode_url: string;
@Column()
@CreateDateColumn()
created_at: Date;

View File

@ -1,7 +1,10 @@
export * from "../entity/trx_purposes";
export * from "../entity/trx_occupations";
export * from "../entity/trx_verifications";
export * from "../entity/trx_customers";
export * from "../entity/trx_customer_accounts";
export * from "../entity/trx_customer_users";
export * from "../entity/trx_customer_user_signatures";
export * from "../entity/trx_customer_user_refresh_tokens";
export * from "../entity/trx_customer_user_activities";
export * from "../entity/trx_customer_costs";
@ -16,4 +19,5 @@ export * from "../entity/trx_receivers";
export * from "../entity/trx_transactions";
export * from "../entity/trx_transaction_slas";
export * from "../entity/trx_transaction_amls";
export * from "../entity/trx_transaction_signatures";
export * from "../types/trx";

View File

@ -56,12 +56,19 @@ export enum TrxTransactionStatus {
"pending_signer" = "pending_signer",
"process_deal_request" = "process_deal_request",
"process_deal_approve" = "process_deal_approve",
"process_teller" = "process_teller",
"process_settlement" = "process_settlement",
"success" = "success",
"reject" = "reject",
"cancel" = "cancel",
}
export enum TrxIdentityType {
"passport" = "passport",
"electoral" = "electoral",
"bi" = "bi",
}
export enum TrxTransactionRemark {
"draft" = "Draft",
"create" = "Create",
@ -69,6 +76,7 @@ export enum TrxTransactionRemark {
"pending_signer" = "Pending Approval Signer",
"process_deal_request" = "Deal Request Process",
"process_deal_approve" = "Deal Approve Process",
"process_teller" = "process_teller",
"process_settlement" = "Settlement on Process",
"success" = "Success",
"reject" = "Reject",