diff --git a/src/app.module.ts b/src/app.module.ts index 0b5078b..9ecad69 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'; import { DiariesModule } from './diaries/diary.module'; import { AiModule } from './ai/ai.module'; @@ -31,6 +32,7 @@ import { AiModule } from './ai/ai.module'; AlarmsModule, ScheduleModule, UserModule, + CategoryModule, DiariesModule, AiModule, ], 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; +}