From 6386c3f1b39cb3bfa94e82d261c144613c12d2c2 Mon Sep 17 00:00:00 2001 From: liuyi Date: Mon, 19 May 2025 12:39:06 +0800 Subject: [PATCH] add content --- src/modules/content/constants.ts | 11 ++++++ src/modules/content/entities/post.entity.ts | 38 +++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/modules/content/constants.ts create mode 100644 src/modules/content/entities/post.entity.ts diff --git a/src/modules/content/constants.ts b/src/modules/content/constants.ts new file mode 100644 index 0000000..944044a --- /dev/null +++ b/src/modules/content/constants.ts @@ -0,0 +1,11 @@ +export enum PostBodyType { + HTML = 'html', + MD = 'markdown', +} + +export enum PostOrder { + CREATED = 'createdAt', + UPDATED = 'updatedAt', + PUBLISHED = 'publishedAt', + CUSTOM = 'custom', +} diff --git a/src/modules/content/entities/post.entity.ts b/src/modules/content/entities/post.entity.ts new file mode 100644 index 0000000..5961c33 --- /dev/null +++ b/src/modules/content/entities/post.entity.ts @@ -0,0 +1,38 @@ +import { Expose } from 'class-transformer'; +import { BaseEntity, Column, Entity, PrimaryColumn } from 'typeorm'; + +import { PostBodyType } from '@/modules/content/constants'; + +@Entity('content_posts') +export class PostEntity extends BaseEntity { + @PrimaryColumn({ type: 'varchar', generated: 'uuid', length: 36 }) + id: string; + + @Column({ comment: '文章标题' }) + title: string; + + @Column({ comment: '文章内容', type: 'text' }) + body: string; + + @Column({ comment: '文章描述', nullable: true }) + summary?: string; + + @Expose() + @Column({ comment: '关键字', type: 'simple-array', nullable: true }) + keywords?: []; + + @Column({ comment: '文章类型', type: 'varchar', enum: PostBodyType }) + type: PostBodyType; + + @Column({ comment: '发布时间', type: 'varchar', nullable: true }) + publishedAt?: Date | null; + + @Column({ comment: '自定义文章排序', default: 0 }) + customOrder: number; + + @Column({ comment: '创建时间' }) + createdAt?: Date; + + @Column({ comment: '更新时间' }) + updatedAt?: Date; +}