feat: add topic model
This commit is contained in:
29
src/modules/topic/topic.model.ts
Normal file
29
src/modules/topic/topic.model.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { IsOptional, IsString, MaxLength } from 'class-validator'
|
||||
|
||||
import { index, modelOptions, prop } from '@typegoose/typegoose'
|
||||
|
||||
import { BaseModel } from '~/shared/model/base.model'
|
||||
|
||||
@modelOptions({
|
||||
options: {
|
||||
customName: 'Topic',
|
||||
},
|
||||
})
|
||||
@index({ name: 1 })
|
||||
export class TopicModel extends BaseModel {
|
||||
@prop({ default: '' })
|
||||
@MaxLength(400, { message: '描述信息最多 400 个字符' })
|
||||
@IsOptional()
|
||||
@IsString({ message: '描述信息必须是字符串' })
|
||||
description?: string
|
||||
|
||||
@prop()
|
||||
@IsString({ message: '简介必须是字符串' })
|
||||
introduce: string
|
||||
|
||||
@prop({ unique: true })
|
||||
name: string
|
||||
|
||||
@prop({ unique: true })
|
||||
id: string
|
||||
}
|
||||
4
src/modules/topic/topic.module.ts
Normal file
4
src/modules/topic/topic.module.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { Module } from '@nestjs/common'
|
||||
|
||||
@Module({})
|
||||
export class TopicModule {}
|
||||
34
src/processors/database/database.models.ts
Normal file
34
src/processors/database/database.models.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { AnalyzeModel } from '~/modules/analyze/analyze.model'
|
||||
import { CategoryModel } from '~/modules/category/category.model'
|
||||
import { CommentModel } from '~/modules/comment/comment.model'
|
||||
import { OptionModel } from '~/modules/configs/configs.model'
|
||||
import { LinkModel } from '~/modules/link/link.model'
|
||||
import { NoteModel } from '~/modules/note/note.model'
|
||||
import { PageModel } from '~/modules/page/page.model'
|
||||
import { PostModel } from '~/modules/post/post.model'
|
||||
import { ProjectModel } from '~/modules/project/project.model'
|
||||
import { RecentlyModel } from '~/modules/recently/recently.model'
|
||||
import { SayModel } from '~/modules/say/say.model'
|
||||
import { ServerlessStorageModel } from '~/modules/serverless/serverless.model'
|
||||
import { SnippetModel } from '~/modules/snippet/snippet.model'
|
||||
import { TopicModel } from '~/modules/topic/topic.model'
|
||||
import { UserModel } from '~/modules/user/user.model'
|
||||
import { getProviderByTypegooseClass } from '~/transformers/model.transformer'
|
||||
|
||||
export const databaseModels = [
|
||||
AnalyzeModel,
|
||||
CategoryModel,
|
||||
CommentModel,
|
||||
LinkModel,
|
||||
NoteModel,
|
||||
OptionModel,
|
||||
PageModel,
|
||||
PostModel,
|
||||
ProjectModel,
|
||||
RecentlyModel,
|
||||
TopicModel,
|
||||
SayModel,
|
||||
ServerlessStorageModel,
|
||||
SnippetModel,
|
||||
UserModel,
|
||||
].map((model) => getProviderByTypegooseClass(model))
|
||||
@@ -1,43 +1,12 @@
|
||||
import { Global, Module } from '@nestjs/common'
|
||||
|
||||
import { AnalyzeModel } from '~/modules/analyze/analyze.model'
|
||||
import { CommentModel } from '~/modules/comment/comment.model'
|
||||
import { OptionModel } from '~/modules/configs/configs.model'
|
||||
import { LinkModel } from '~/modules/link/link.model'
|
||||
import { NoteModel } from '~/modules/note/note.model'
|
||||
import { PageModel } from '~/modules/page/page.model'
|
||||
import { ProjectModel } from '~/modules/project/project.model'
|
||||
import { RecentlyModel } from '~/modules/recently/recently.model'
|
||||
import { SayModel } from '~/modules/say/say.model'
|
||||
import { ServerlessStorageModel } from '~/modules/serverless/serverless.model'
|
||||
import { SnippetModel } from '~/modules/snippet/snippet.model'
|
||||
import { getProviderByTypegooseClass } from '~/transformers/model.transformer'
|
||||
|
||||
import { CategoryModel } from '../../modules/category/category.model'
|
||||
import { PostModel } from '../../modules/post/post.model'
|
||||
import { UserModel } from '../../modules/user/user.model'
|
||||
import { databaseModels } from './database.models'
|
||||
import { databaseProvider } from './database.provider'
|
||||
import { DatabaseService } from './database.service'
|
||||
|
||||
const models = [
|
||||
AnalyzeModel,
|
||||
CategoryModel,
|
||||
CommentModel,
|
||||
LinkModel,
|
||||
NoteModel,
|
||||
OptionModel,
|
||||
PageModel,
|
||||
PostModel,
|
||||
ProjectModel,
|
||||
RecentlyModel,
|
||||
SayModel,
|
||||
ServerlessStorageModel,
|
||||
SnippetModel,
|
||||
UserModel,
|
||||
].map((model) => getProviderByTypegooseClass(model))
|
||||
@Module({
|
||||
providers: [DatabaseService, databaseProvider, ...models],
|
||||
exports: [DatabaseService, databaseProvider, ...models],
|
||||
providers: [DatabaseService, databaseProvider, ...databaseModels],
|
||||
exports: [DatabaseService, databaseProvider, ...databaseModels],
|
||||
})
|
||||
@Global()
|
||||
export class DatabaseModule {}
|
||||
|
||||
Reference in New Issue
Block a user