Ver código fonte

✨ feat(file): add file entity and database configuration

- 创建File实体类用于文件信息存储
- 为File实体各字段添加数据库注释
- 将File实体添加到数据源配置中以支持数据库操作
- 优化字段类型定义,使用显式的null类型替代可选类型
yourname 4 meses atrás
pai
commit
40ea9b98c1
2 arquivos alterados com 11 adições e 10 exclusões
  1. 2 1
      src/server/data-source.ts
  2. 9 9
      src/server/modules/files/file.entity.ts

+ 2 - 1
src/server/data-source.ts

@@ -5,6 +5,7 @@ import process from 'node:process'
 // 实体类导入
 import { UserEntity as User } from "./modules/users/user.entity"
 import { Role } from "./modules/users/role.entity"
+import { File } from "./modules/files/file.entity"
 
 export const AppDataSource = new DataSource({
   type: "mysql",
@@ -14,7 +15,7 @@ export const AppDataSource = new DataSource({
   password: process.env.DB_PASSWORD || "",
   database: process.env.DB_DATABASE || "d8dai",
   entities: [
-    User, Role
+    User, Role, File
   ],
   migrations: [],
   synchronize: process.env.DB_SYNCHRONIZE !== "false",

+ 9 - 9
src/server/modules/files/file.entity.ts

@@ -10,17 +10,17 @@ export class File {
   @Column({ name: 'name', type: 'varchar', length: 255 })
   name!: string;
 
-  @Column({ name: 'type', type: 'varchar', length: 50, nullable: true })
-  type?: string;
+  @Column({ name: 'type', type: 'varchar', length: 50, nullable: true, comment: '文件类型' })
+  type!: string | null;
 
-  @Column({ name: 'size', type: 'int', unsigned: true, nullable: true })
-  size?: number;
+  @Column({ name: 'size', type: 'int', unsigned: true, nullable: true, comment: '文件大小,单位字节' })
+  size!: number | null;
 
-  @Column({ name: 'path', type: 'varchar', length: 512 })
+  @Column({ name: 'path', type: 'varchar', length: 512, comment: '文件存储路径' })
   path!: string;
 
-  @Column({ name: 'description', type: 'text', nullable: true })
-  description?: string;
+  @Column({ name: 'description', type: 'text', nullable: true, comment: '文件描述' })
+  description!: string | null;
 
   @Column({ name: 'upload_user_id', type: 'int', unsigned: true })
   uploadUserId!: number;
@@ -32,8 +32,8 @@ export class File {
   @Column({ name: 'upload_time', type: 'datetime' })
   uploadTime!: Date;
 
-  @Column({ name: 'last_updated', type: 'datetime', nullable: true })
-  lastUpdated?: Date;
+  @Column({ name: 'last_updated', type: 'datetime', nullable: true, comment: '最后更新时间' })
+  lastUpdated!: Date | null;
 
   @Column({ name: 'created_at', type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
   createdAt!: Date;