diff --git a/src/entity/categories.ts b/src/entity/categories.ts index fcf3d99..acd1626 100644 --- a/src/entity/categories.ts +++ b/src/entity/categories.ts @@ -1,5 +1,6 @@ -import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'; +import { Column, CreateDateColumn, DeleteDateColumn, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'; +import { CategoryType } from '../types/category'; import { CategorySource } from '../types/category_source'; import { Status } from '../types/status'; import { Target } from './targets'; @@ -57,10 +58,28 @@ export class Category { }) products: string[]; + @Column({ + type: 'enum', + enum: CategoryType, + nullable: true, + }) + type: CategoryType + + @Column({ + type: 'jsonb', + nullable: true, + }) + condition: string[] + + @Column({ + nullable: true, + length: 50, + }) + date_column: string + @OneToMany(() => Target, (target) => target.category) targets: Target[]; - @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/summarize_log.ts b/src/entity/summarize_log.ts new file mode 100644 index 0000000..a1313f9 --- /dev/null +++ b/src/entity/summarize_log.ts @@ -0,0 +1,57 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, OneToOne, ManyToOne, JoinColumn } from 'typeorm'; + +import { SummarizeType, SummarizeLogStatus } from '../types/summarize'; +import { Category } from './categories'; + +@Entity('summarize_log') +export class SummarizeLog { + @PrimaryGeneratedColumn('uuid') + id: string; + + @Column({ + nullable: true, + length: 256 + }) + position_date: string; + + @Column({ + type: 'enum', + enum: SummarizeType, + nullable: false, + }) + type: SummarizeType; + + @ManyToOne(() => Category) + @JoinColumn() + category: Category; + + @Column({ + type: 'enum', + enum: SummarizeLogStatus, + nullable: false, + }) + status: SummarizeLogStatus; + + @Column({ + nullable: true, + type: 'text' + }) + error_log: string; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column() + @UpdateDateColumn() + updated_at: Date; + + @Column({ + nullable: true + }) + finished_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} \ No newline at end of file diff --git a/src/entity/summarizes.ts b/src/entity/summarizes.ts new file mode 100644 index 0000000..d473595 --- /dev/null +++ b/src/entity/summarizes.ts @@ -0,0 +1,46 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from 'typeorm'; + +import { SummarizeType } from '../types/summarize'; +import { Category } from './categories'; +import { Branch } from './branchs'; + +@Entity('summarizes') +export class Summarize { + @PrimaryGeneratedColumn('uuid') + id: string; + + @Column({ + nullable: true, + length: 256 + }) + position_date: string; + + @Column({ + type: 'enum', + enum: SummarizeType, + nullable: false, + }) + type: SummarizeType; + + @ManyToOne(() => Category) + @JoinColumn() + category_parent: Category; + + @ManyToOne(() => Category) + @JoinColumn() + category_child: Category; + + @ManyToOne(() => Branch) + @JoinColumn() + branch: Branch + + @Column({ + nullable: false, + type: 'float8' + }) + total: number; + + @Column() + @CreateDateColumn() + created_at: Date; +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 0602b8c..fa44d96 100644 --- a/src/index.ts +++ b/src/index.ts @@ -31,41 +31,50 @@ import { Target } from "./entity/targets"; import { BankGaransi } from "./entity/bank_garansi"; import { BankGaransiType } from "./entity/bank_garansi_type"; import { BankGaransiStatus } from "./entity/bank_garansi_status"; +import { CategoryType } from "./types/category"; +import { Summarize } from "./entity/summarizes"; +import { SummarizeLog } from "./entity/summarize_log"; +import { SummarizeLogStatus, SummarizeType } from "./types/summarize"; export { - User, // - UserRole, - UserActivity, - UserRefreshToken, - TrialBalanceBranch, - TrialBalanceConsolidation, - LNKOLEK, - CifAccount, - ActivityType, - ErrorType, - ErrorValidation, - Paging, - RoleList, - Status, - EmailBody, - Product, - Branch, - Menu, - Administrativu, - Aldeia, - ClassEconomi, - District, - IncomeTier, - Munisipo, - Suco, - LogPull, - LogPullType, - StatusLogPull, - Category, - CategorySource, - PullerStatus, - Target, - BankGaransi, - BankGaransiType, - BankGaransiStatus, + User, // + UserRole, + UserActivity, + UserRefreshToken, + TrialBalanceBranch, + TrialBalanceConsolidation, + LNKOLEK, + CifAccount, + ActivityType, + ErrorType, + ErrorValidation, + Paging, + RoleList, + Status, + EmailBody, + Product, + Branch, + Menu, + Administrativu, + Aldeia, + ClassEconomi, + District, + IncomeTier, + Munisipo, + Suco, + LogPull, + LogPullType, + StatusLogPull, + Category, + CategorySource, + CategoryType, + PullerStatus, + Target, + BankGaransi, + BankGaransiType, + BankGaransiStatus, + Summarize, + SummarizeLog, + SummarizeLogStatus, + SummarizeType }; diff --git a/src/types/category.ts b/src/types/category.ts new file mode 100644 index 0000000..5ac037f --- /dev/null +++ b/src/types/category.ts @@ -0,0 +1,4 @@ +export enum CategoryType { + Parent = 'parent', + Child = 'child', +}; \ No newline at end of file diff --git a/src/types/summarize.ts b/src/types/summarize.ts new file mode 100644 index 0000000..a6a9375 --- /dev/null +++ b/src/types/summarize.ts @@ -0,0 +1,18 @@ +export enum SummarizeType { + "ASSET" = "ASSET", + "DPK" = "DPK", + "KREDIT" = "KREDIT", + "CASA" = "CASA", + "FBI" = "FBI", + "NPL" = "NPL", + "PPAP_KHUSUS" = "PPAP_KHUSUS", + "PPAP_UMUM" = "PPAP_UMUM" +}; + + +export enum SummarizeLogStatus { + "Waiting Schedule" = "W", + "On Going Summarize Data" = "O", + "Success Summarize Data" = "Y", + "Failed Summarize Data" = "N" +}; \ No newline at end of file