diff --git a/src/entity/brilink_merchant_balance_histories.ts b/src/entity/brilink_merchant_balance_histories.ts new file mode 100644 index 0000000..66ee476 --- /dev/null +++ b/src/entity/brilink_merchant_balance_histories.ts @@ -0,0 +1,91 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'; + +import { BrilinkMerchantBalanceHistoryActvity, BrilinkMerchantBalanceHistoryStatus, BrilinkMerchantBalanceHistoryType } from '../types/brilink'; +import { BrilinkTerminal } from './brilink_terminals'; +import { BrizziCard } from './brizzi_cards'; +import { BrilinkMerchantBalance } from './brilink_merchant_balances'; +import { BrilinkMerchant } from './brilink_merchants'; + +@Entity('brilink_merchant_balance_histories', { schema: 'brilinks' }) +export class BrilinkMerchantBalanceHistory { + @PrimaryGeneratedColumn('uuid') + id: string; + + @ManyToOne(() => BrilinkMerchant, { onDelete: 'RESTRICT' }) + @JoinTable() + merchant: BrilinkMerchant + + @ManyToOne(() => BrilinkMerchantBalance, { onDelete: 'RESTRICT' }) + @JoinTable() + balance: BrilinkMerchantBalance + + @Column({ + nullable: false, + length: 64 + }) + activity: BrilinkMerchantBalanceHistoryActvity; + + @Column({ nullable: true }) + activity_at: Date; + + @Column({ + nullable: false, + length: 64 + }) + type: BrilinkMerchantBalanceHistoryType; + + @ManyToOne(() => BrilinkTerminal, { onDelete: 'RESTRICT', nullable: true }) + @JoinTable() + terminal: BrilinkTerminal + + @Column({ + length: 128, + nullable: false, + }) + reference: string; + + @Column({ + type: 'float8', + nullable: false, + }) + prev_balance: number; + + @Column({ + type: 'float8', + nullable: false, + }) + amount: number; + + @Column({ + type: 'float8', + nullable: false, + }) + last_balance: number; + + @Column({ + nullable: false, + length: 64 + }) + status: BrilinkMerchantBalanceHistoryStatus + + @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; +} \ No newline at end of file diff --git a/src/entity/brilink_merchant_balances.ts b/src/entity/brilink_merchant_balances.ts new file mode 100644 index 0000000..5bb8c5d --- /dev/null +++ b/src/entity/brilink_merchant_balances.ts @@ -0,0 +1,50 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'; +import { BrilinkMerchant } from './brilink_merchants'; + +@Entity('brilink_merchant_balances', { schema: 'brilinks' }) +export class BrilinkMerchantBalance { + @PrimaryGeneratedColumn('uuid') + id: string; + + @ManyToOne(() => BrilinkMerchant, { onDelete: 'RESTRICT' }) + @JoinTable() + merchant: BrilinkMerchant + + @Column({ + nullable: false, + length: 256 + }) + code: string; + + @Column({ + type: 'float8', + nullable: false, + default: 0 + }) + balance: number; + + @Column({ nullable: true }) + @UpdateDateColumn() + balance_at: Date; + + @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; +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 9deffe4..d6e829d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -100,7 +100,16 @@ import { BrizziBatch } from './entity/brizzi_batchs' import { BrizziCard } from './entity/brizzi_cards' import { BrizziHistory } from './entity/brizzi_history' -import { BrilinkMerchantStatus, BrilinkTerminalType, BrilinkTerminalCondition, BrilinkTerminalOnline } from './types/brilink' +import { + BrilinkMerchantStatus, + BrilinkTerminalType, + BrilinkTerminalCondition, + BrilinkTerminalOnline, + BrilinkMerchantBalanceHistoryActvity, + BrilinkMerchantBalanceHistoryStatus, + BrilinkMerchantBalanceHistoryType +} from './types/brilink' + import { BrilinkMerchant } from './entity/brilink_merchants' import { BrilinkTerminal } from './entity/brilink_terminals' import { BrilinkTerminalMenu } from './entity/brilink_terminal_menus' @@ -110,6 +119,8 @@ import { BrilinkMerchantTerminalHistory } from './entity/brilink_merchant_termin import { BrilinkMerchantTerminalMenu } from './entity/brilink_merchant_terminal_menus' import { BrilinkMerchantTerminalUser } from './entity/brilink_merchant_terminal_users' import { BrilinkTerminalUserRefreshToken } from './entity/brilink_merchant_terminal_user_refresh_token' +import { BrilinkMerchantBalance } from './entity/brilink_merchant_balances' +import { BrilinkMerchantBalanceHistory } from './entity/brilink_merchant_balance_histories' import { BriapiConfig } from './entity/briapi_configs' import { BriapiLog } from './entity/briapi_logs' @@ -240,6 +251,8 @@ export { BrilinkMerchantTerminalMenu, BrilinkMerchantTerminalUser, BrilinkTerminalUserRefreshToken, + BrilinkMerchantBalance, + BrilinkMerchantBalanceHistory, RemitBank, RemitConfigTransaction, diff --git a/src/types/brilink.ts b/src/types/brilink.ts index e13eb2f..f6a38bb 100644 --- a/src/types/brilink.ts +++ b/src/types/brilink.ts @@ -20,4 +20,21 @@ export enum BrilinkTerminalCondition { export enum BrilinkTerminalOnline { "online" = "online", "offline" = "offline" +} + +export enum BrilinkMerchantBalanceHistoryStatus { + "pending" = "pending", + "process" = "process", + "success" = "success", + "fail" = "fail", +} + +export enum BrilinkMerchantBalanceHistoryActvity { + "topup" = "topup", + "transfer" = "transfer", +} + +export enum BrilinkMerchantBalanceHistoryType { + "credit" = "credit", + "debit" = "debit", } \ No newline at end of file