brilink update

This commit is contained in:
fro1991
2025-06-28 13:33:05 +07:00
parent b4439405fd
commit 528901a432
6 changed files with 377 additions and 71 deletions

View File

@ -0,0 +1,54 @@
import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { Status } from "../types/status";
import { BrilinkProductCategory } from "./brilink_product_categories";
import { BrilinkProductItem } from "./brilink_product_items";
import { BrilinkMerchant } from "./brilink_merchants";
@Entity("brilink_merchant_product_items", { schema: "brilinks" })
export class BrilinkMerchantProductItem {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => BrilinkMerchant, { onDelete: "RESTRICT" })
@JoinTable()
merchant: BrilinkMerchant;
@ManyToOne(() => BrilinkProductItem, { onDelete: "RESTRICT" })
@JoinTable()
product_item: BrilinkProductItem;
@Column({
type: "float8",
nullable: false,
default: 0,
})
price_merchant: number;
@Column({
type: "float8",
nullable: false,
default: 0,
})
price_sale: number;
@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;
}

View File

@ -0,0 +1,74 @@
import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { BrilinkProductCategorySupplier } from "../types/brilink";
import { BrilinkTerminalMenu } from "./brilink_terminal_menus";
import { Status } from "../types/status";
@Entity("brilink_product_categories", { schema: "brilinks" })
export class BrilinkProductCategory {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => BrilinkTerminalMenu, { onDelete: "NO ACTION" })
@JoinTable()
terminal_menu: BrilinkTerminalMenu;
@Column({
nullable: false,
length: 128,
unique: true,
})
code: string;
@Column({
nullable: false,
length: 128,
})
name: string;
@Column({
nullable: false,
length: 4096,
default: "",
})
description: string;
@Column({
nullable: false,
length: 4096,
default: "",
})
logo: string;
@Column({
nullable: false,
length: 64,
})
status: Status;
@Column({
nullable: false,
length: 64,
})
supplier: BrilinkProductCategorySupplier;
@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;
}

View File

@ -0,0 +1,99 @@
import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { Status } from "../types/status";
import { BrilinkProductCategory } from "./brilink_product_categories";
import { BrilinkProductType } from "./brilink_product_types";
@Entity("brilink_product_items", { schema: "brilinks" })
export class BrilinkProductItem {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => BrilinkProductCategory, { onDelete: "RESTRICT" })
@JoinTable()
product_category: BrilinkProductCategory;
@ManyToOne(() => BrilinkProductType, { onDelete: "RESTRICT" })
@JoinTable()
product_type: BrilinkProductType;
@Column({
nullable: false,
length: 128,
unique: true,
})
code: string;
@Column({
nullable: false,
length: 128,
})
name: string;
@Column({
nullable: false,
length: 128,
default: "",
})
subtitle: string;
@Column({
nullable: false,
length: 4096,
default: "",
})
description: string;
@Column({
type: "float8",
nullable: false,
default: 0,
})
price_base: number;
@Column({
type: "float8",
nullable: false,
default: 0,
})
price_merchant: number;
@Column({
type: "float8",
nullable: false,
default: 0,
})
price_sale: number;
@Column({
nullable: false,
length: 64,
})
status: Status;
@Column({
type: "jsonb",
nullable: true,
})
supplier_prop: Record<string, any>;
@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;
}

View File

@ -0,0 +1,62 @@
import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm";
import { BrilinkProductCategorySupplier } from "../types/brilink";
import { BrilinkTerminalMenu } from "./brilink_terminal_menus";
import { Status } from "../types/status";
import { BrilinkProductCategory } from "./brilink_product_categories";
@Entity("brilink_product_types", { schema: "brilinks" })
export class BrilinkProductType {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => BrilinkProductCategory, { onDelete: "RESTRICT" })
@JoinTable()
product_category: BrilinkProductCategory;
@Column({
nullable: false,
length: 128,
unique: true,
})
code: string;
@Column({
nullable: false,
length: 128,
})
name: string;
@Column({
nullable: false,
length: 4096,
default: "",
})
description: 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;
}

View File

@ -158,6 +158,7 @@ import {
BrilinkDiscountModule, BrilinkDiscountModule,
BrilinkDiscountStatus, BrilinkDiscountStatus,
BrilinkDiscountType, BrilinkDiscountType,
BrilinkProductCategorySupplier,
} from "./types/brilink"; } from "./types/brilink";
import { BrilinkMerchant } from "./entity/brilink_merchants"; import { BrilinkMerchant } from "./entity/brilink_merchants";
@ -180,6 +181,10 @@ import { BrilinkMerchantSettlement } from "./entity/brilink_merchant_settlements
import { BrilinkMembership } from "./entity/brilink_memberships"; import { BrilinkMembership } from "./entity/brilink_memberships";
import { BrilinkMembershipCard } from "./entity/brilink_membership_cards"; import { BrilinkMembershipCard } from "./entity/brilink_membership_cards";
import { BrilinkDiscount } from "./entity/brilink_discounts"; import { BrilinkDiscount } from "./entity/brilink_discounts";
import { BrilinkProductCategory } from "./entity/brilink_product_categories";
import { BrilinkProductType } from "./entity/brilink_product_types";
import { BrilinkProductItem } from "./entity/brilink_product_items";
import { BrilinkMerchantProductItem } from "./entity/brilink_merchant_product_items";
import { BriapiConfig } from "./entity/briapi_configs"; import { BriapiConfig } from "./entity/briapi_configs";
import { BriapiLog } from "./entity/briapi_logs"; import { BriapiLog } from "./entity/briapi_logs";
@ -335,6 +340,11 @@ export {
BrilinkDiscountStatus, BrilinkDiscountStatus,
BrilinkDiscountType, BrilinkDiscountType,
BrilinkDiscount, BrilinkDiscount,
BrilinkProductCategorySupplier,
BrilinkProductCategory,
BrilinkProductType,
BrilinkProductItem,
BrilinkMerchantProductItem,
BriapiConfig, BriapiConfig,
BriapiLog, BriapiLog,
BriapiAppendixBank, BriapiAppendixBank,

View File

@ -1,136 +1,143 @@
export enum BrilinkMerchantStatus { export enum BrilinkMerchantStatus {
"active" = "active", "active" = "active",
"inactive" = "inactive", "inactive" = "inactive",
}; }
export enum BrilinkTerminalType { export enum BrilinkTerminalType {
"edc" = "edc", "edc" = "edc",
}; }
export enum BrilinkTerminalCondition { export enum BrilinkTerminalCondition {
"new" = "new", "new" = "new",
"good" = "good", "good" = "good",
"minor_damage" = "minor_damage", "minor_damage" = "minor_damage",
"damaged" = "damaged", "damaged" = "damaged",
"unusabel" = "unusable", "unusabel" = "unusable",
"disposed" = "disposed", "disposed" = "disposed",
"lost" = "lost", "lost" = "lost",
}; }
export enum BrilinkTerminalOnline { export enum BrilinkTerminalOnline {
"online" = "online", "online" = "online",
"offline" = "offline", "offline" = "offline",
"block" = "block" "block" = "block",
} }
export enum BrilinkBalanceType { export enum BrilinkBalanceType {
"merchant" = "merchant", "merchant" = "merchant",
"terminal" = "terminal" "terminal" = "terminal",
} }
export enum BrilinkBalanceCode { export enum BrilinkBalanceCode {
"brizzi" = "brizzi", "brizzi" = "brizzi",
"remittance" = "remittance" "remittance" = "remittance",
} }
export enum BrilinkBalanceMutationType { export enum BrilinkBalanceMutationType {
"credit" = "credit", "credit" = "credit",
"debit" = "debit", "debit" = "debit",
} }
export enum BrilinkBalanceMutationCodePrefixType { export enum BrilinkBalanceMutationCodePrefixType {
"credit" = "CR", "credit" = "CR",
"debit" = "DB" "debit" = "DB",
} }
export enum BrilinkBalanceMutationActvity { export enum BrilinkBalanceMutationActvity {
"topup" = "topup", "topup" = "topup",
"transfer" = "transfer", "transfer" = "transfer",
"withdrawal" = "withdrawal", "withdrawal" = "withdrawal",
} }
export enum BrilinkBalanceMutationCodePrefixActvity { export enum BrilinkBalanceMutationCodePrefixActvity {
"topup" = "1", "topup" = "1",
"transfer" = "2", "transfer" = "2",
"withdrawal" = "3" "withdrawal" = "3",
} }
export enum BrilinkBalanceSourceType { export enum BrilinkBalanceSourceType {
"account" = "account", "account" = "account",
"merchant" = "merchant", "merchant" = "merchant",
"terminal" = "terminal", "terminal" = "terminal",
} }
export enum BrilinkBalanceDestinationType { export enum BrilinkBalanceDestinationType {
"account" = "account", "account" = "account",
"merchant" = "merchant", "merchant" = "merchant",
"terminal" = "terminal", "terminal" = "terminal",
"brizzi" = "brizzi" "brizzi" = "brizzi",
} }
export enum BrilinkBalanceMutationStatus { export enum BrilinkBalanceMutationStatus {
"pending" = "pending", "pending" = "pending",
"process" = "process", "process" = "process",
"success" = "success", "success" = "success",
"fail" = "fail", "fail" = "fail",
"reject" = "reject" "reject" = "reject",
} }
export enum BrilinkBalanceTopupCodePrefix { export enum BrilinkBalanceTopupCodePrefix {
"account" = "ACC", "account" = "ACC",
"merchant" = "MCH", "merchant" = "MCH",
"terminal" = "TML", "terminal" = "TML",
"brizzi" = "BRZ" "brizzi" = "BRZ",
} }
export enum BrilinkTransactionType { export enum BrilinkTransactionType {
"brizzi" = "brizzi", "brizzi" = "brizzi",
"remittance" = "remittance" "remittance" = "remittance",
"mobile" = "mobile",
} }
export enum BrilinkTransactionCodePrefixType { export enum BrilinkTransactionCodePrefixType {
"brizzi" = "BRZ", "brizzi" = "BRZ",
"remittance" = "RTC" "remittance" = "RTC",
"mobile" = "MBL",
} }
export enum BrilinkTransactionActivity { export enum BrilinkTransactionActivity {
"topup" = "topup", "topup" = "topup",
"payment" = "payment", "payment" = "payment",
"purchase" = "purchase" "purchase" = "purchase",
} }
export enum BrilinkTransactionCodePrefixActivity { export enum BrilinkTransactionCodePrefixActivity {
"topup" = "1", "topup" = "1",
"payment" = "2", "payment" = "2",
"purchase" = "3" "purchase" = "3",
} }
export enum BrilinkTransactionStatus { export enum BrilinkTransactionStatus {
"pending" = "pending", "unpaid" = "unpaid",
"process" = "process", "pending" = "pending",
"success" = "success", "process" = "process",
"fail" = "fail", "success" = "success",
"fail" = "fail",
} }
export enum BrilinkMerchantSettlementStatus { export enum BrilinkMerchantSettlementStatus {
"pending" = "pending", "pending" = "pending",
"process" = "process", "process" = "process",
"success" = "success", "success" = "success",
"fail" = "fail", "fail" = "fail",
} }
export enum BrilinkDiscountType { export enum BrilinkDiscountType {
"fix" = "fix", "fix" = "fix",
"percentage" = "percentage", "percentage" = "percentage",
} }
export enum BrilinkDiscountStatus { export enum BrilinkDiscountStatus {
"scheduled" = "scheduled", "scheduled" = "scheduled",
"active" = "active", "active" = "active",
"inactive" = "inactive", "inactive" = "inactive",
"expired" = "expired", "expired" = "expired",
} }
export enum BrilinkDiscountModule { export enum BrilinkDiscountModule {
"brizzi" = "brizzi" "brizzi" = "brizzi",
}
export enum BrilinkProductCategorySupplier {
"tcel" = "tcel",
} }