From 89ccd40c54e1b695e96f106b2d86056199b0465b Mon Sep 17 00:00:00 2001 From: kimkimgungunwoo Date: Wed, 8 Jul 2026 22:50:27 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat:AI=20=EC=97=94=ED=8B=B0=ED=8B=B0?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ai/ai.module.ts | 19 +++++++++++++ src/ai/entities/ai.answer.entity.ts | 23 +++++++++++++++ src/ai/entities/ai.diary.question.entity.ts | 31 +++++++++++++++++++++ src/ai/entities/ai.question.entity.ts | 27 ++++++++++++++++++ src/app.module.ts | 2 ++ 5 files changed, 102 insertions(+) create mode 100644 src/ai/ai.module.ts create mode 100644 src/ai/entities/ai.answer.entity.ts create mode 100644 src/ai/entities/ai.diary.question.entity.ts create mode 100644 src/ai/entities/ai.question.entity.ts diff --git a/src/ai/ai.module.ts b/src/ai/ai.module.ts new file mode 100644 index 0000000..562dac9 --- /dev/null +++ b/src/ai/ai.module.ts @@ -0,0 +1,19 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { QuestionEntity } from './entities/ai.question.entity'; +import { AnswerEntity } from './entities/ai.answer.entity'; +import { DiaryQuestionEntity } from './entities/ai.diary.question.entity'; + +@Module({ + imports: [ + TypeOrmModule.forFeature([ + QuestionEntity, + AnswerEntity, + DiaryQuestionEntity, + ]), + ], + controllers: [], + providers: [], + exports: [TypeOrmModule], +}) +export class AiModule {} diff --git a/src/ai/entities/ai.answer.entity.ts b/src/ai/entities/ai.answer.entity.ts new file mode 100644 index 0000000..35fe3da --- /dev/null +++ b/src/ai/entities/ai.answer.entity.ts @@ -0,0 +1,23 @@ +import { + Column, + CreateDateColumn, + Entity, + PrimaryGeneratedColumn, +} from 'typeorm'; + +@Entity('Answer') +export class AnswerEntity { + @PrimaryGeneratedColumn({ name: 'answer_id', type: 'int' }) + answerId: number; + + @Column({ name: 'answer', type: 'text' }) + answer: string; + + @CreateDateColumn({ + name: 'created_at', + type: 'timestamp', + nullable: false, + comment: '생성일', + }) + createdAt: Date; +} diff --git a/src/ai/entities/ai.diary.question.entity.ts b/src/ai/entities/ai.diary.question.entity.ts new file mode 100644 index 0000000..888d6c6 --- /dev/null +++ b/src/ai/entities/ai.diary.question.entity.ts @@ -0,0 +1,31 @@ +import { + Column, + CreateDateColumn, + Entity, + PrimaryGeneratedColumn, +} from 'typeorm'; + +@Entity('DiaryQuestion') +export class DiaryQuestionEntity { + @PrimaryGeneratedColumn({ + name: 'diary_question_id', + type: 'int', + comment: '일기-질문 아이디', + }) + diaryQuestionId: number; + + @Column({ + name: 'is_written', + type: 'boolean', + nullable: false, + default: false, + }) + isWritten: boolean; + + @CreateDateColumn({ + name: 'created_at', + type: 'timestamp', + comment: '생성일자', + }) + createdAt: Date; +} diff --git a/src/ai/entities/ai.question.entity.ts b/src/ai/entities/ai.question.entity.ts new file mode 100644 index 0000000..02a4dc0 --- /dev/null +++ b/src/ai/entities/ai.question.entity.ts @@ -0,0 +1,27 @@ +import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; + +@Entity('Question') +export class QuestionEntity { + @PrimaryGeneratedColumn({ + name: 'question_id', + type: 'int', + comment: '질문ID', + }) + questionId: number; + + @Column({ + name: 'content', + type: 'text', + nullable: false, + comment: '질문내용', + }) + content: string; + + @Column({ + name: 'target_date', + type: 'date', + nullable: false, + comment: '질문 날짜', + }) + targetDate: string; +} diff --git a/src/app.module.ts b/src/app.module.ts index 98fb3dd..34ab990 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 { AiModule } from './ai/ai.module'; @Module({ imports: [ @@ -29,6 +30,7 @@ import { UserModule } from './users/user.module'; AlarmsModule, ScheduleModule, UserModule, + AiModule, ], controllers: [AppController], providers: [], From 7a313a6512120c5e4449d9d79a3927ec7d4ad3dd Mon Sep 17 00:00:00 2001 From: kimkimgungunwoo Date: Mon, 13 Jul 2026 19:49:04 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Refactor:=ED=8C=8C=EC=9D=BC=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EC=BB=A8=EB=B2=A4=EC=85=98=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ai/entities/{ai.answer.entity.ts => ai-answer.entity.ts} | 0 .../{ai.diary.question.entity.ts => ai-diary.question.entity.ts} | 0 src/ai/entities/{ai.question.entity.ts => ai-question.entity.ts} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/ai/entities/{ai.answer.entity.ts => ai-answer.entity.ts} (100%) rename src/ai/entities/{ai.diary.question.entity.ts => ai-diary.question.entity.ts} (100%) rename src/ai/entities/{ai.question.entity.ts => ai-question.entity.ts} (100%) diff --git a/src/ai/entities/ai.answer.entity.ts b/src/ai/entities/ai-answer.entity.ts similarity index 100% rename from src/ai/entities/ai.answer.entity.ts rename to src/ai/entities/ai-answer.entity.ts diff --git a/src/ai/entities/ai.diary.question.entity.ts b/src/ai/entities/ai-diary.question.entity.ts similarity index 100% rename from src/ai/entities/ai.diary.question.entity.ts rename to src/ai/entities/ai-diary.question.entity.ts diff --git a/src/ai/entities/ai.question.entity.ts b/src/ai/entities/ai-question.entity.ts similarity index 100% rename from src/ai/entities/ai.question.entity.ts rename to src/ai/entities/ai-question.entity.ts From 16c730de054ad3b6a70577661efb01c7cfae3d41 Mon Sep 17 00:00:00 2001 From: kimkimgungunwoo Date: Mon, 13 Jul 2026 20:29:52 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Feat:=EC=9D=BC=EC=A0=95=EC=B6=94=EC=B2=9C?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ai/entities/ai-recommend.entitiy.ts | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/ai/entities/ai-recommend.entitiy.ts diff --git a/src/ai/entities/ai-recommend.entitiy.ts b/src/ai/entities/ai-recommend.entitiy.ts new file mode 100644 index 0000000..9c0ea64 --- /dev/null +++ b/src/ai/entities/ai-recommend.entitiy.ts @@ -0,0 +1,42 @@ +import { + Column, + CreateDateColumn, + Entity, + PrimaryGeneratedColumn, +} from 'typeorm'; + +@Entity('Recommend') +export class RecommendEntity { + @PrimaryGeneratedColumn({ + name: 'recommend_id', + type: 'int', + comment: '추천ID', + }) + recommendId: number; + + @Column({ + name: 'title', + type: 'varchar', + length: 500, + nullable: false, + comment: '추천 일정 제목', + }) + title: string; + + @Column({ + name: 'is_added', + type: 'boolean', + nullable: false, + default: false, + comment: '일정 추가 여부', + }) + isAdded: boolean; + + @CreateDateColumn({ + name: 'created_at', + type: 'timestamp', + nullable: false, + comment: '생성일자', + }) + createdAt: Date; +}