From fe046e8cd7b1ed8028e8a43a208e8d121cb4dbb4 Mon Sep 17 00:00:00 2001 From: fro1991 Date: Wed, 18 Dec 2024 01:00:01 +0700 Subject: [PATCH] adding table target, adjust categories --- src/entity/categories.ts | 5 ++++ src/entity/targets.ts | 51 ++++++++++++++++++++++++++++++++++++++++ src/index.ts | 4 +++- 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/entity/targets.ts diff --git a/src/entity/categories.ts b/src/entity/categories.ts index 2385b89..fcf3d99 100644 --- a/src/entity/categories.ts +++ b/src/entity/categories.ts @@ -2,6 +2,7 @@ import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToO import { CategorySource } from '../types/category_source'; import { Status } from '../types/status'; +import { Target } from './targets'; @Entity('categories') export class Category { @@ -56,6 +57,10 @@ export class Category { }) products: string[]; + @OneToMany(() => Target, (target) => target.category) + targets: Target[]; + + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/targets.ts b/src/entity/targets.ts new file mode 100644 index 0000000..b13b4a7 --- /dev/null +++ b/src/entity/targets.ts @@ -0,0 +1,51 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from 'typeorm'; +import { Category } from './categories'; + +@Entity('targets') +export class Target { + @PrimaryGeneratedColumn('uuid') + id: string; + + @ManyToOne(() => Category, (category) => category.targets, { onDelete: 'CASCADE' }) + @JoinColumn({ name: 'categoryId' }) // Add foreign key column + category: Category; + + @Column({ nullable: false }) + categoryId: string; + + @Column({ + type: 'int2', + nullable: false, + }) + year: number; + + @Column({ + type: 'int2', + nullable: false, + }) + month: number; + + @Column({ + type: 'float8', + nullable: true, + }) + target: number; + + @Column({ + nullable: true, + length: 4096 + }) + notes: string; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 86d4d87..504f385 100644 --- a/src/index.ts +++ b/src/index.ts @@ -27,6 +27,7 @@ import { LogPullType, StatusLogPull } from "./types/pull"; import { Category } from "./entity/categories"; import { CategorySource } from "./types/category_source"; import { PullerStatus } from "./entity/puller_status"; +import { Target } from "./entity/targets"; export { User, @@ -59,5 +60,6 @@ export { StatusLogPull, Category, CategorySource, - PullerStatus + PullerStatus, + Target }; \ No newline at end of file