54 lines
1.0 KiB
TypeScript
54 lines
1.0 KiB
TypeScript
import {
|
||
Column,
|
||
CreateDateColumn,
|
||
DeleteDateColumn,
|
||
Entity,
|
||
OneToMany,
|
||
PrimaryGeneratedColumn,
|
||
UpdateDateColumn,
|
||
} from 'typeorm';
|
||
import { BlogComment } from './BlogComment.entity';
|
||
import { BlogPermission } from '../blog.permission.enum';
|
||
|
||
/** @todo 考虑后续将权限的数据类型替换为json,以提高查询效率 */
|
||
@Entity()
|
||
export class Blog {
|
||
@PrimaryGeneratedColumn('uuid')
|
||
id: string;
|
||
|
||
@Column({ unique: true, nullable: true })
|
||
slug: string;
|
||
|
||
@Column()
|
||
title: string;
|
||
|
||
@Column()
|
||
description: string;
|
||
|
||
@Column()
|
||
contentUrl: string;
|
||
|
||
@Column({ default: 0 })
|
||
viewCount: number;
|
||
|
||
@CreateDateColumn({ precision: 3 })
|
||
createdAt: Date;
|
||
|
||
@UpdateDateColumn({ precision: 3 })
|
||
updatedAt: Date;
|
||
|
||
@DeleteDateColumn({ precision: 3, nullable: true })
|
||
deletedAt: Date;
|
||
|
||
// 权限
|
||
@Column('simple-array', { default: '' })
|
||
permissions: BlogPermission[];
|
||
|
||
@Column({ nullable: true })
|
||
password_hash: string | null;
|
||
|
||
// 关系
|
||
@OneToMany(() => BlogComment, (comment) => comment.blog)
|
||
comments: BlogComment[];
|
||
}
|