diff --git a/src/entity/brilink_discounts.ts b/src/entity/brilink_discounts.ts index d6032e1..8021451 100644 --- a/src/entity/brilink_discounts.ts +++ b/src/entity/brilink_discounts.ts @@ -1,63 +1,75 @@ -import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'; +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; -import { BrilinkDiscountModule, BrilinkDiscountStatus, BrilinkDiscountType } from '../types/brilink'; -import { BrilinkMerchant } from './brilink_merchants'; +import { BrilinkDiscountModule, BrilinkDiscountStatus, BrilinkDiscountType } from "../types/brilink"; +import { BrilinkMerchant } from "./brilink_merchants"; -@Entity('brilink_discounts', { schema: 'brilinks' }) +@Entity("brilink_discounts", { schema: "brilinks" }) export class BrilinkDiscount { - @PrimaryGeneratedColumn('uuid') - id: string; + @PrimaryGeneratedColumn("uuid") + id: string; - @ManyToOne(() => BrilinkMerchant, { onDelete: 'RESTRICT' }) - @JoinTable() - merchant: BrilinkMerchant + @ManyToOne(() => BrilinkMerchant, { onDelete: "RESTRICT" }) + @JoinTable() + merchant: BrilinkMerchant; - @Column({ type: "varchar", length: 255 }) - module: BrilinkDiscountModule; + @Column({ type: "varchar", length: 255 }) + module: BrilinkDiscountModule; - @Column({ type: "varchar", length: 255, unique: true }) - code: string; + @Column({ type: "varchar", length: 255, unique: true }) + code: string; - @Column({ type: "varchar", length: 255 }) - name: string; + @Column({ type: "varchar", length: 255 }) + name: string; - @Column({ type: "varchar", length: 255 }) - type: BrilinkDiscountType; + @Column({ + type: "float8", + nullable: true, + }) + min_trans_amount: number; - @Column({ - type: 'float8', - nullable: false, - default: 0 - }) - amount: number; + @Column({ + type: "float8", + nullable: true, + }) + max_trans_amount: number; - @Column({ nullable: false }) - start_date: Date; + @Column({ type: "varchar", length: 255 }) + type: BrilinkDiscountType; - @Column({ nullable: false }) - end_date: Date; + @Column({ + type: "float8", + nullable: false, + default: 0, + }) + amount: number; - @Column({ type: "varchar", length: 10 }) - status: BrilinkDiscountStatus; + @Column({ nullable: false }) + start_date: Date; - @Column() - @CreateDateColumn() - created_at: Date; + @Column({ nullable: false }) + end_date: Date; - @Column({ type: "varchar", length: 255 }) - created_by: string; + @Column({ type: "varchar", length: 10 }) + status: BrilinkDiscountStatus; - @Column({ nullable: true }) - @UpdateDateColumn() - updated_at: Date; + @Column() + @CreateDateColumn() + created_at: Date; - @Column({ type: "varchar", length: 255, nullable: true }) - updated_by: string; + @Column({ type: "varchar", length: 255 }) + created_by: string; - @Column({ nullable: true }) - @DeleteDateColumn() - deleted_at: Date; + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; - @Column({ type: "varchar", length: 255, nullable: true }) - deleted_by: string; -} \ No newline at end of file + @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/gps_vehicles.ts b/src/entity/gps_vehicles.ts new file mode 100644 index 0000000..bb13d73 --- /dev/null +++ b/src/entity/gps_vehicles.ts @@ -0,0 +1,184 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinTable, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, OneToOne, JoinColumn } from "typeorm"; +import { GpsDevice } from "./gps_devices"; + +export abstract class BaseEntityAudit { + @CreateDateColumn({ name: "created_at" }) + created_at: Date; + + @Column({ type: "varchar", length: 255 }) + created_by: string; + + @UpdateDateColumn({ name: "updated_at", nullable: true }) + updated_at?: Date; + + @Column({ type: "varchar", length: 255, nullable: true }) + updated_by?: string; + + @DeleteDateColumn({ name: "deleted_at", nullable: true }) + deleted_at?: Date; + + @Column({ type: "varchar", length: 255, nullable: true }) + deleted_by?: string; +} + +@Entity("gps_vehicles", { schema: "gps" }) +export class GpsVehicles extends BaseEntityAudit { + @PrimaryGeneratedColumn("uuid") + vehicle_id: string; + + @Column({ type: "varchar", length: 255, nullable: true }) + name?: string; + + @OneToOne(() => GpsDevice, { nullable: true, onDelete: "SET NULL" }) + @JoinColumn({ name: "device_id", referencedColumnName: "id" }) + device_id?: GpsDevice; + + @Column({ type: "json", nullable: true }) + vehicle_dt?: Record; + + // ============================= + @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; +} + +@Entity("gps_vehicle_types", { schema: "gps" }) +export class GpsVehicleTypes extends BaseEntityAudit { + @PrimaryGeneratedColumn("uuid") + vehicle_type_id: string; + + @Column({ type: "json", nullable: true }) + vehicle_type_dt?: Record; + + // ============================= + @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; +} + +@Entity("gps_vehicle_brands", { schema: "gps" }) +export class GpsVehicleBrands extends BaseEntityAudit { + @PrimaryGeneratedColumn("uuid") + vehicle_brand_id: string; + + @Column({ type: "json", nullable: true }) + vehicle_brand_dt?: Record; + + // ============================= + @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; +} + +@Entity("gps_vehicle_cats", { schema: "gps" }) +export class GpsVehicleCats extends BaseEntityAudit { + @PrimaryGeneratedColumn("uuid") + vehicle_cat_id: string; + + @Column({ type: "json", nullable: true }) + vehicle_cat_dt?: Record; + + // ============================= + @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; +} + +@Entity("gps_vehicle_models", { schema: "gps" }) +export class GpsVehicleModels extends BaseEntityAudit { + @PrimaryGeneratedColumn("uuid") + vehicle_model_id: string; + + @Column({ type: "json", nullable: true }) + vehicle_model_dt?: Record; + + // ============================= + @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/telemor_logs.ts b/src/entity/telemor_logs.ts new file mode 100644 index 0000000..a91a43e --- /dev/null +++ b/src/entity/telemor_logs.ts @@ -0,0 +1,54 @@ +import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; +import { Application } from "./application"; + +@Entity("telemor_logs", { schema: "telemor" }) +export class TelemorLogs { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => Application, { onDelete: "NO ACTION" }) + @JoinColumn({ name: "application" }) + application: Application; + + @Column({ + length: 256, + }) + url: string; + + @Column({ + type: "jsonb", + }) + header: string; + + @Column({ + type: "jsonb", + }) + body: string; + + @Column() + request_at: Date; + + @Column({ + length: 4096, + }) + response: string; + + @Column({ + length: 128, + nullable: true, + }) + supplier_reference_code: string; + + @Column({ + length: 128, + nullable: true, + }) + supplier_transaction_code: string; + + @Column() + response_at: Date; + + @Column() + @CreateDateColumn() + created_at: Date; +} diff --git a/src/entity/telemor_mosan_remit_configs.ts b/src/entity/telemor_mosan_remit_configs.ts new file mode 100644 index 0000000..e338310 --- /dev/null +++ b/src/entity/telemor_mosan_remit_configs.ts @@ -0,0 +1,28 @@ +import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; + +@Entity("telemor_mosan_remit_configs", { schema: "telemor" }) +export class TelemorMosanRemitConfig { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + length: 4096, + }) + key: string; + + @Column({ + length: 4096, + }) + value: string; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + expired_at: Date; +} diff --git a/src/index.ts b/src/index.ts index 846f3ff..9f3f071 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,3 +12,4 @@ export * from "./schema/eform"; export * from "./schema/compliance"; export * from "./schema/trx"; export * from "./schema/gps"; +export * from "./schema/telemor"; diff --git a/src/schema/gps.ts b/src/schema/gps.ts index 930b116..b74de2e 100644 --- a/src/schema/gps.ts +++ b/src/schema/gps.ts @@ -1,3 +1,4 @@ export * from "../types/gps"; export * from "../entity/gps_devices"; export * from "../entity/gps_device_log"; +export * from "../entity/gps_vehicles"; diff --git a/src/schema/telemor.ts b/src/schema/telemor.ts new file mode 100644 index 0000000..4ee94cc --- /dev/null +++ b/src/schema/telemor.ts @@ -0,0 +1,2 @@ +export * from "../entity/telemor_mosan_remit_configs"; +export * from "../entity/telemor_logs";