From 752128e06309edf6c1e3e1e3248d25e032ec54e8 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Fri, 3 Oct 2025 17:05:00 +0700 Subject: [PATCH 1/9] update --- src/entity/trx_company_users.ts | 2 +- src/entity/trx_config_levels.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/entity/trx_company_users.ts b/src/entity/trx_company_users.ts index b9a74cf..8cfae04 100644 --- a/src/entity/trx_company_users.ts +++ b/src/entity/trx_company_users.ts @@ -45,7 +45,7 @@ export class TrxCompanyUser { }) name: string; - @OneToMany(() => TrxConfigLevel, (level) => level.id, { onDelete: "NO ACTION", nullable: false }) + @OneToMany(() => TrxConfigLevel, (configLevel) => configLevel.user, { cascade: true }) level: TrxConfigLevel[]; @ManyToOne(() => TrxCompany, { onDelete: "NO ACTION" }) diff --git a/src/entity/trx_config_levels.ts b/src/entity/trx_config_levels.ts index ce6cb2f..60949c7 100644 --- a/src/entity/trx_config_levels.ts +++ b/src/entity/trx_config_levels.ts @@ -22,6 +22,9 @@ export class TrxConfigLevel { }) status: Status; + @ManyToOne(() => TrxCompanyUser, (user) => user.level, { onDelete: "CASCADE" }) + user: TrxCompanyUser; + @Column() @CreateDateColumn() created_at: Date; From 08c79bb8eb82ba27fdb8fc9e5d8cb7f2f458b8c4 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Mon, 6 Oct 2025 13:56:30 +0700 Subject: [PATCH 2/9] up --- src/entity/trx_recepient_swift.ts | 79 ++++++++++++++++++++++ src/entity/trx_sender_swift.ts | 72 ++++++++++++++++++++ src/entity/trx_transaction_swift.ts | 100 ++++++++++++++++++++++++++++ src/entity/trx_transactions.ts | 5 ++ src/schema/trx.ts | 3 + 5 files changed, 259 insertions(+) create mode 100644 src/entity/trx_recepient_swift.ts create mode 100644 src/entity/trx_sender_swift.ts create mode 100644 src/entity/trx_transaction_swift.ts diff --git a/src/entity/trx_recepient_swift.ts b/src/entity/trx_recepient_swift.ts new file mode 100644 index 0000000..d62a200 --- /dev/null +++ b/src/entity/trx_recepient_swift.ts @@ -0,0 +1,79 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, OneToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; +import { Status } from "../types/status"; +import { TrxConfigNationality } from "./trx_config_nationalities"; +import { TrxTransactionSwift } from "./trx_transaction_swift"; +import { TrxConfigBank } from "./trx_config_banks"; + +@Entity("trx_recepient_swifts", { schema: "trx" }) +export class TrxRecepientSwift { + @PrimaryGeneratedColumn("uuid") + id: string; + + @OneToOne(() => TrxTransactionSwift, (transaction_swift) => transaction_swift.recepient_swift, { onDelete: "CASCADE" }) + transaction_swift: TrxTransactionSwift; + + @Column({ + nullable: false, + length: 256, + }) + name: string; + + @Column({ + nullable: false, + length: 256, + }) + iban: string; + + @Column({ + nullable: false, + length: 256, + }) + phone: string; + + @ManyToOne(() => TrxConfigBank, { onDelete: "NO ACTION", nullable: false }) + @JoinColumn() + recepient_bank: TrxConfigBank; + + @Column({ + nullable: false, + length: 256, + }) + account_number: string; + + @Column({ + nullable: true, + length: 4096, + }) + address: string; + + @ManyToOne(() => TrxConfigNationality, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + nationality: TrxConfigNationality; + + @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; +} diff --git a/src/entity/trx_sender_swift.ts b/src/entity/trx_sender_swift.ts new file mode 100644 index 0000000..af95161 --- /dev/null +++ b/src/entity/trx_sender_swift.ts @@ -0,0 +1,72 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, OneToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; +import { Status } from "../types/status"; +import { TrxConfigNationality } from "./trx_config_nationalities"; +import { TrxCompanyAccount } from "./trx_company_accounts"; +import { TrxTransactionSwift } from "./trx_transaction_swift"; +import { TrxConfigBank } from "./trx_config_banks"; + +@Entity("trx_sender_swifts", { schema: "trx" }) +export class TrxSenderSwift { + @PrimaryGeneratedColumn("uuid") + id: string; + + @OneToOne(() => TrxTransactionSwift, (transaction) => transaction.sender_swift, { onDelete: "CASCADE" }) + transaction_swift: TrxTransactionSwift; + + @Column({ + nullable: false, + length: 256, + }) + name: string; + + @Column({ + nullable: false, + length: 256, + }) + phone: string; + + @Column({ + nullable: true, + length: 4096, + }) + address: string; + + @ManyToOne(() => TrxConfigNationality, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + nationality: TrxConfigNationality; + + @ManyToOne(() => TrxCompanyAccount, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + company_account: TrxCompanyAccount; + + @ManyToOne(() => TrxConfigBank, { onDelete: "NO ACTION", nullable: false }) + @JoinColumn() + sender_bank: TrxConfigBank; + + @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; +} diff --git a/src/entity/trx_transaction_swift.ts b/src/entity/trx_transaction_swift.ts new file mode 100644 index 0000000..c8c4123 --- /dev/null +++ b/src/entity/trx_transaction_swift.ts @@ -0,0 +1,100 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; +import { TrxCompany } from "./trx_companies"; +import { TrxConfigSourceIncome } from "./trx_config_source_incomes"; +import { TrxSenderSwift } from "./trx_sender_swift"; +import { TrxRecepientSwift } from "./trx_recepient_swift"; +import { TrxTransaction } from "./trx_transactions"; +import { TrxTransactionTypeStatus, TrxTransactionCorrespondentFees, TrxTransactionStatus } from "./../types/trx"; + +@Entity("trx_transaction_swifts", { schema: "trx" }) +export class TrxTransactionSwift { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 256, + }) + type_transaction: TrxTransactionTypeStatus; + + @Column({ + nullable: true, + length: 256, + }) + correspondent_fees: string; + + @Column({ type: "float8" }) + amount_overbooking: number; + + @Column({ type: "float8", nullable: true }) + transfer_amount: number; + + @Column({ type: "float8", nullable: true }) + transfer_total: number; + + @Column({ type: "float8", nullable: true }) + commission: number; + + @Column({ type: "float8", nullable: true }) + cost_of_sender: number; + + @Column({ type: "float8", nullable: true }) + sub_total: number; + + @Column({ type: "float8", nullable: false, default: 0 }) + rate_idr: number; + + @OneToOne(() => TrxTransaction, (transaction) => transaction.transaction_swift, { onDelete: "CASCADE" }) + transaction: TrxTransaction; + + @ManyToOne(() => TrxConfigSourceIncome, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + source_income: TrxConfigSourceIncome; + + @OneToOne(() => TrxSenderSwift, (sender) => sender.transaction_swift, { cascade: true }) + @JoinColumn() + sender_swift: TrxSenderSwift; + + @OneToOne(() => TrxRecepientSwift, (recepient) => recepient.transaction_swift, { cascade: true }) + @JoinColumn() + recepient_swift: TrxRecepientSwift; + + @Column({ + nullable: true, + length: 4096, + }) + file: String; + + @Column({ + nullable: true, + length: 256, + }) + bic: String; + + @Column({ + nullable: true, + length: 4096, + }) + invoice: 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; +} diff --git a/src/entity/trx_transactions.ts b/src/entity/trx_transactions.ts index 2fe5710..f3f15fe 100644 --- a/src/entity/trx_transactions.ts +++ b/src/entity/trx_transactions.ts @@ -3,6 +3,7 @@ import { TrxCompany } from "./trx_companies"; import { TrxTransactionDomestic } from "./trx_transaction_domestic"; import { TrxTransactionTransferStatus, TrxTransactionStatus } from "./../types/trx"; import { TrxTransactionRemittance } from "./trx_transaction_remittance"; +import { TrxTransactionSwift } from "./trx_transaction_swift"; @Entity("trx_transactions", { schema: "trx" }) export class TrxTransaction { @@ -21,6 +22,10 @@ export class TrxTransaction { @JoinColumn() transaction_remittance: TrxTransactionRemittance; + @OneToOne(() => TrxTransactionSwift, (transaction_swift) => transaction_swift.transaction, { cascade: true }) + @JoinColumn() + transaction_swift: TrxTransactionSwift; + @Column({ nullable: false, length: 256, diff --git a/src/schema/trx.ts b/src/schema/trx.ts index 752723b..807dff0 100644 --- a/src/schema/trx.ts +++ b/src/schema/trx.ts @@ -36,4 +36,7 @@ export * from "../entity/trx_recepient_domestic"; export * from "../entity/trx_transaction_domestic"; export * from "../entity/trx_transaction_remittance"; export * from "../entity/trx_transactions"; +export * from "../entity/trx_transaction_swift"; +export * from "../entity/trx_sender_swift"; +export * from "../entity/trx_recepient_swift"; export * from "../types/trx"; From ec730c7e25e068aec5ca34fab6c2618b0f3e65fd Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Tue, 7 Oct 2025 15:11:13 +0700 Subject: [PATCH 3/9] up --- src/entity/trx_transactions.ts | 36 ++++++++++++++++++++++++++++++++++ src/types/trx.ts | 1 + 2 files changed, 37 insertions(+) diff --git a/src/entity/trx_transactions.ts b/src/entity/trx_transactions.ts index f3f15fe..8711aa9 100644 --- a/src/entity/trx_transactions.ts +++ b/src/entity/trx_transactions.ts @@ -45,6 +45,42 @@ export class TrxTransaction { }) signatures: String; + @Column({ type: "boolean", nullable: true }) + is_maker_approved: boolean; + + @Column({ type: "varchar", length: 100, nullable: true }) + maker_approved_by: string; + + @Column({ type: "varchar", length: 4096, nullable: true }) + maker_note: string; + + @Column({ nullable: true }) + maker_approved_at: Date; + + @Column({ type: "boolean", nullable: true }) + is_checker_approved: boolean; + + @Column({ type: "varchar", length: 100, nullable: true }) + checker_approved_by: string; + + @Column({ type: "varchar", length: 4096, nullable: true }) + checker_note: string; + + @Column({ nullable: true }) + checker_approved_at: Date; + + @Column({ type: "boolean", nullable: true }) + is_signer_approved: boolean; + + @Column({ type: "varchar", length: 100, nullable: true }) + signer_approved_by: string; + + @Column({ type: "varchar", length: 4096, nullable: true }) + signer_note: string; + + @Column({ nullable: true }) + signer_approved_at: Date; + @Column({ type: "boolean", nullable: true }) is_tl_approved: boolean; diff --git a/src/types/trx.ts b/src/types/trx.ts index 2b50252..f30925e 100644 --- a/src/types/trx.ts +++ b/src/types/trx.ts @@ -5,6 +5,7 @@ export enum TrxTransactionStatus { "close" = "close", "reject" = "reject", "approved" = "approved", + "draft" = "draft", } export enum TrxTransactionTypeStatus { From 3f1cc31e714c6dc20c894ea0381fcbb084cef998 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Tue, 7 Oct 2025 21:05:52 +0700 Subject: [PATCH 4/9] update --- src/entity/trx_config_banks.ts | 7 ++- src/entity/trx_config_booms.ts | 5 ++ src/entity/trx_config_business_entities.ts | 5 ++ src/entity/trx_config_business_fields.ts | 5 ++ src/entity/trx_config_channels.ts | 5 ++ src/entity/trx_config_educations.ts | 5 ++ src/entity/trx_config_identity_types.ts | 5 ++ src/entity/trx_config_language.ts | 63 ++++++++++++++++++++++ src/entity/trx_config_occupations.ts | 5 ++ src/entity/trx_config_products.ts | 5 ++ src/entity/trx_config_purposes.ts | 5 ++ src/entity/trx_config_relations.ts | 5 ++ src/entity/trx_config_religions.ts | 5 ++ src/entity/trx_config_source_incomes.ts | 5 ++ src/entity/trx_config_strs.ts | 5 ++ src/schema/trx.ts | 1 + 16 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 src/entity/trx_config_language.ts diff --git a/src/entity/trx_config_banks.ts b/src/entity/trx_config_banks.ts index 90c3970..7d02a05 100644 --- a/src/entity/trx_config_banks.ts +++ b/src/entity/trx_config_banks.ts @@ -1,6 +1,7 @@ -import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne, JoinColumn } from "typeorm"; import { Status } from "../types/status"; import { TrxConfigBankType } from "../types/trx"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_banks", { schema: "trx" }) export class TrxConfigBank { @@ -20,6 +21,10 @@ export class TrxConfigBank { }) name: string; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column({ nullable: false, default: "indonesia", diff --git a/src/entity/trx_config_booms.ts b/src/entity/trx_config_booms.ts index adbeefb..7f2153e 100644 --- a/src/entity/trx_config_booms.ts +++ b/src/entity/trx_config_booms.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_booms", { schema: "trx" }) export class TrxConfigBoom { @@ -22,6 +23,10 @@ export class TrxConfigBoom { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_business_entities.ts b/src/entity/trx_config_business_entities.ts index 9970481..9e32315 100644 --- a/src/entity/trx_config_business_entities.ts +++ b/src/entity/trx_config_business_entities.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_business_entities", { schema: "trx" }) export class TrxConfigBusinessEntity { @@ -22,6 +23,10 @@ export class TrxConfigBusinessEntity { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_business_fields.ts b/src/entity/trx_config_business_fields.ts index 716eae5..7e4f48e 100644 --- a/src/entity/trx_config_business_fields.ts +++ b/src/entity/trx_config_business_fields.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_business_fields", { schema: "trx" }) export class TrxConfigBusinessField { @@ -22,6 +23,10 @@ export class TrxConfigBusinessField { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_channels.ts b/src/entity/trx_config_channels.ts index 27f591b..25aa9af 100644 --- a/src/entity/trx_config_channels.ts +++ b/src/entity/trx_config_channels.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_channels", { schema: "trx" }) export class TrxConfigChannel { @@ -22,6 +23,10 @@ export class TrxConfigChannel { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_educations.ts b/src/entity/trx_config_educations.ts index d4c580b..71a4116 100644 --- a/src/entity/trx_config_educations.ts +++ b/src/entity/trx_config_educations.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_educations", { schema: "trx" }) export class TrxConfigEducation { @@ -22,6 +23,10 @@ export class TrxConfigEducation { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_identity_types.ts b/src/entity/trx_config_identity_types.ts index d25f577..db768f5 100644 --- a/src/entity/trx_config_identity_types.ts +++ b/src/entity/trx_config_identity_types.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_identity_types", { schema: "trx" }) export class TrxConfigIdentityType { @@ -22,6 +23,10 @@ export class TrxConfigIdentityType { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_language.ts b/src/entity/trx_config_language.ts new file mode 100644 index 0000000..1cef0cb --- /dev/null +++ b/src/entity/trx_config_language.ts @@ -0,0 +1,63 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; + +import { Status } from "../types/status"; + +@Entity("trx_config_languages", { schema: "trx" }) +export class TrxConfigLanguage { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: false, + length: 128, + }) + code: string; + + @Column({ + nullable: false, + length: 4096, + default: "", + }) + eng: string; + + @Column({ + nullable: false, + length: 4096, + default: "", + }) + tet: string; + + @Column({ + nullable: false, + length: 4096, + default: "", + }) + ind: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ type: "varchar", length: 255 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ type: "varchar", length: 255, nullable: true }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ type: "varchar", length: 255, nullable: true }) + deleted_by: string; +} diff --git a/src/entity/trx_config_occupations.ts b/src/entity/trx_config_occupations.ts index a41128f..fc1f3b8 100644 --- a/src/entity/trx_config_occupations.ts +++ b/src/entity/trx_config_occupations.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_occupations", { schema: "trx" }) export class TrxConfigOccupation { @@ -22,6 +23,10 @@ export class TrxConfigOccupation { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_products.ts b/src/entity/trx_config_products.ts index a7f1980..ea3ab87 100644 --- a/src/entity/trx_config_products.ts +++ b/src/entity/trx_config_products.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_products", { schema: "trx" }) export class TrxConfigProduct { @@ -22,6 +23,10 @@ export class TrxConfigProduct { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_purposes.ts b/src/entity/trx_config_purposes.ts index eb1adf4..e30b4ce 100644 --- a/src/entity/trx_config_purposes.ts +++ b/src/entity/trx_config_purposes.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_purposes", { schema: "trx" }) export class TrxConfigPurpose { @@ -22,6 +23,10 @@ export class TrxConfigPurpose { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_relations.ts b/src/entity/trx_config_relations.ts index 2ca806a..b981ef8 100644 --- a/src/entity/trx_config_relations.ts +++ b/src/entity/trx_config_relations.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_relations", { schema: "trx" }) export class TrxConfigRelation { @@ -22,6 +23,10 @@ export class TrxConfigRelation { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_religions.ts b/src/entity/trx_config_religions.ts index c7c6189..5316f3a 100644 --- a/src/entity/trx_config_religions.ts +++ b/src/entity/trx_config_religions.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_religions", { schema: "trx" }) export class TrxConfigReligion { @@ -22,6 +23,10 @@ export class TrxConfigReligion { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_source_incomes.ts b/src/entity/trx_config_source_incomes.ts index 0d7bf1b..cc21af7 100644 --- a/src/entity/trx_config_source_incomes.ts +++ b/src/entity/trx_config_source_incomes.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_source_incomes", { schema: "trx" }) export class TrxConfigSourceIncome { @@ -22,6 +23,10 @@ export class TrxConfigSourceIncome { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/trx_config_strs.ts b/src/entity/trx_config_strs.ts index 0be902d..441e553 100644 --- a/src/entity/trx_config_strs.ts +++ b/src/entity/trx_config_strs.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; import { Status } from "../types/status"; import { TrxLanguage } from "./trx_languages"; +import { TrxConfigLanguage } from "./trx_config_language"; @Entity("trx_config_strs", { schema: "trx" }) export class TrxConfigStr { @@ -22,6 +23,10 @@ export class TrxConfigStr { }) status: Status; + @ManyToOne(() => TrxConfigLanguage, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + language: TrxConfigLanguage; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/schema/trx.ts b/src/schema/trx.ts index 807dff0..84b49ed 100644 --- a/src/schema/trx.ts +++ b/src/schema/trx.ts @@ -39,4 +39,5 @@ export * from "../entity/trx_transactions"; export * from "../entity/trx_transaction_swift"; export * from "../entity/trx_sender_swift"; export * from "../entity/trx_recepient_swift"; +export * from "../entity/trx_config_language"; export * from "../types/trx"; From d7e9084cbf3385b60052bcb35a90ccd0bc9b1963 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Wed, 8 Oct 2025 02:41:51 +0700 Subject: [PATCH 5/9] update --- src/entity/trx_config_rate.ts | 54 +++++++++++++++++++++++++++++++++++ src/schema/trx.ts | 3 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/entity/trx_config_rate.ts diff --git a/src/entity/trx_config_rate.ts b/src/entity/trx_config_rate.ts new file mode 100644 index 0000000..83d4902 --- /dev/null +++ b/src/entity/trx_config_rate.ts @@ -0,0 +1,54 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; + +import { Status } from "../types/status"; + +@Entity("trx_config_rates", { schema: "trx" }) +export class TrxConfigRate { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: true, + length: 256, + }) + from: string; + + @Column({ + nullable: true, + length: 256, + }) + to: string; + + @Column({ + nullable: false, + type: "float8", + }) + value: Number; + + @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; +} diff --git a/src/schema/trx.ts b/src/schema/trx.ts index 84b49ed..c803cb5 100644 --- a/src/schema/trx.ts +++ b/src/schema/trx.ts @@ -20,6 +20,8 @@ export * from "../entity/trx_config_levels"; export * from "../entity/trx_config_occupations"; export * from "../entity/trx_config_products"; export * from "../entity/trx_config_purposes"; +export * from "../entity/trx_config_language"; +export * from "../entity/trx_config_rate"; export * from "../entity/trx_config_relations"; export * from "../entity/trx_config_religions"; export * from "../entity/trx_config_source_incomes"; @@ -39,5 +41,4 @@ export * from "../entity/trx_transactions"; export * from "../entity/trx_transaction_swift"; export * from "../entity/trx_sender_swift"; export * from "../entity/trx_recepient_swift"; -export * from "../entity/trx_config_language"; export * from "../types/trx"; From 678779aa12373f7f672a90774080808705010af1 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Wed, 8 Oct 2025 12:24:09 +0700 Subject: [PATCH 6/9] update --- src/entity/trx_companies.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/entity/trx_companies.ts b/src/entity/trx_companies.ts index 7104a10..161c117 100644 --- a/src/entity/trx_companies.ts +++ b/src/entity/trx_companies.ts @@ -1,6 +1,7 @@ import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne, OneToMany } from "typeorm"; import { Status } from "../types/status"; import { TrxCompanyAccount } from "./trx_company_accounts"; +import { TrxCompanyUser } from "./trx_company_users"; @Entity("trx_companies", { schema: "trx" }) export class TrxCompany { @@ -50,6 +51,9 @@ export class TrxCompany { @OneToMany(() => TrxCompanyAccount, (company_account) => company_account.company, { cascade: true, nullable: false }) company_account: TrxCompanyAccount[]; + @OneToMany(() => TrxCompanyUser, (company_user) => company_user.company, { cascade: true, nullable: false }) + company_user: TrxCompanyUser[]; + @Column() @CreateDateColumn() created_at: Date; From f7768a4569786ef7aefaeea6f397f6a51d47051c Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Wed, 8 Oct 2025 13:10:21 +0700 Subject: [PATCH 7/9] update --- src/entity/trx_companies.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/entity/trx_companies.ts b/src/entity/trx_companies.ts index 161c117..212d818 100644 --- a/src/entity/trx_companies.ts +++ b/src/entity/trx_companies.ts @@ -22,6 +22,13 @@ export class TrxCompany { }) code: string; + @Column({ + nullable: false, + unique: true, + length: 256, + }) + type: string; + @Column({ nullable: false, length: 64, From d97ecf25b5b9c3813627c3c358429efccdde1428 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Wed, 8 Oct 2025 13:17:42 +0700 Subject: [PATCH 8/9] update --- src/entity/trx_companies.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/entity/trx_companies.ts b/src/entity/trx_companies.ts index 212d818..d6c1b18 100644 --- a/src/entity/trx_companies.ts +++ b/src/entity/trx_companies.ts @@ -24,7 +24,7 @@ export class TrxCompany { @Column({ nullable: false, - unique: true, + default: null, length: 256, }) type: string; From b4349fdf341c0fdea6a73e652fa13ca91cf7b95c Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Wed, 8 Oct 2025 13:26:32 +0700 Subject: [PATCH 9/9] update --- src/entity/trx_companies.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/entity/trx_companies.ts b/src/entity/trx_companies.ts index d6c1b18..1cf8d88 100644 --- a/src/entity/trx_companies.ts +++ b/src/entity/trx_companies.ts @@ -61,6 +61,12 @@ export class TrxCompany { @OneToMany(() => TrxCompanyUser, (company_user) => company_user.company, { cascade: true, nullable: false }) company_user: TrxCompanyUser[]; + @Column({ + nullable: true, + length: 4096, + }) + address: string; + @Column() @CreateDateColumn() created_at: Date;