From ef4fbad48f3ca6e1a231a8b72b1e0233a0e9ac1b Mon Sep 17 00:00:00 2001 From: seungyeon-choi04 Date: Thu, 9 Jul 2026 23:58:18 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20entitiy=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.module.ts | 2 + src/categories/category.module.ts | 9 +++ src/categories/entities/category.entity.ts | 74 ++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 src/categories/category.module.ts create mode 100644 src/categories/entities/category.entity.ts diff --git a/src/app.module.ts b/src/app.module.ts index 98fb3dd..4626a13 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -6,6 +6,7 @@ import { AppController } from './app.controller'; import { AlarmsModule } from './alarms/alarms.module'; import { ScheduleModule } from './schedules/schedule.module'; import { UserModule } from './users/user.module'; +import { CategoryModule } from './categories/category.module'; @Module({ imports: [ @@ -29,6 +30,7 @@ import { UserModule } from './users/user.module'; AlarmsModule, ScheduleModule, UserModule, + CategoryModule, ], controllers: [AppController], providers: [], diff --git a/src/categories/category.module.ts b/src/categories/category.module.ts new file mode 100644 index 0000000..8dad196 --- /dev/null +++ b/src/categories/category.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CategoryEntity } from './entities/category.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([CategoryEntity])], + exports: [TypeOrmModule], +}) +export class CategoryModule {} diff --git a/src/categories/entities/category.entity.ts b/src/categories/entities/category.entity.ts new file mode 100644 index 0000000..5ee6b5c --- /dev/null +++ b/src/categories/entities/category.entity.ts @@ -0,0 +1,74 @@ +import { + BaseEntity, + Column, + CreateDateColumn, + DeleteDateColumn, + Entity, + PrimaryGeneratedColumn, + UpdateDateColumn, +} from 'typeorm'; + +export enum CategoryColor { + BLUE = 'BLUE', + BROWN = 'BROWN', + GREEN = 'GREEN', + PURPLE = 'PURPLE', + PINK = 'PINK', +} + +@Entity('Category') +export class CategoryEntity extends BaseEntity { + @PrimaryGeneratedColumn({ name: 'category_id', type: 'int' }) + categoryId: number; + + @Column({ + name: 'category_name', + type: 'varchar', + length: 30, + nullable: false, + comment: '카테고리명', + }) + categoryName: string; + + @Column({ + name: 'category_color', + type: 'enum', + enum: CategoryColor, + enumName: 'category_color_enum', + nullable: false, + comment: '카테고리 색', + }) + categoryColor: CategoryColor; + + @Column({ + name: 'user_id', + type: 'int', + nullable: false, + comment: '사용자 아이디', + }) + userId: number; + + @CreateDateColumn({ + name: 'created_at', + type: 'timestamp', + nullable: false, + comment: '생성일', + }) + createdAt: Date; + + @UpdateDateColumn({ + name: 'updated_at', + type: 'timestamp', + nullable: true, + comment: '수정일', + }) + updatedAt: Date | null; + + @DeleteDateColumn({ + name: 'deleted_at', + type: 'timestamp', + nullable: true, + comment: '삭제일', + }) + deletedAt: Date | null; +}