主要变更: 1. 代码风格统一 - 统一使用双引号替代单引号 - 保持项目代码风格一致性 - 涵盖所有模块、配置、实体和服务文件 2. 项目文档 - 新增 SECURITY_FIXES_SUMMARY.md - 安全修复总结文档 - 新增 项目问题评估报告.md - 项目问题评估文档 3. 包含修改的文件类别 - 配置文件:app, database, jwt, redis, cache, performance - 实体文件:所有 TypeORM 实体 - 模块文件:所有业务模块 - 公共模块:guards, decorators, interceptors, filters, utils - 测试文件:单元测试和 E2E 测试 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
import {
|
||
Entity,
|
||
PrimaryGeneratedColumn,
|
||
Column,
|
||
CreateDateColumn,
|
||
UpdateDateColumn,
|
||
ManyToOne,
|
||
JoinColumn,
|
||
OneToMany,
|
||
} from "typeorm";
|
||
import { User } from "./user.entity";
|
||
import { GroupMember } from "./group-member.entity";
|
||
import { Appointment } from "./appointment.entity";
|
||
|
||
@Entity("groups")
|
||
export class Group {
|
||
@PrimaryGeneratedColumn("uuid")
|
||
id: string;
|
||
|
||
@Column({ length: 100 })
|
||
name: string;
|
||
|
||
@Column({ type: "text", nullable: true })
|
||
description: string;
|
||
|
||
@Column({ type: "varchar", nullable: true, length: 255 })
|
||
avatar: string;
|
||
|
||
@Column()
|
||
ownerId: string;
|
||
|
||
@ManyToOne(() => User)
|
||
@JoinColumn({ name: "ownerId" })
|
||
owner: User;
|
||
|
||
@Column({ default: "normal", length: 20, comment: "类型: normal/guild" })
|
||
type: string;
|
||
|
||
@Column({ nullable: true, comment: "父组ID,用于子组" })
|
||
parentId: string;
|
||
|
||
@ManyToOne(() => Group, { nullable: true })
|
||
@JoinColumn({ name: "parentId" })
|
||
parent: Group;
|
||
|
||
@Column({ type: "text", nullable: true, comment: "公示信息" })
|
||
announcement: string;
|
||
|
||
@Column({ default: 50, comment: "最大成员数" })
|
||
maxMembers: number;
|
||
|
||
@Column({ default: 1, comment: "当前成员数" })
|
||
currentMembers: number;
|
||
|
||
@Column({ default: true })
|
||
isActive: boolean;
|
||
|
||
@CreateDateColumn()
|
||
createdAt: Date;
|
||
|
||
@UpdateDateColumn()
|
||
updatedAt: Date;
|
||
|
||
@OneToMany(() => GroupMember, (member) => member.group)
|
||
members: GroupMember[];
|
||
|
||
@OneToMany(() => Appointment, (appointment) => appointment.group)
|
||
appointments: Appointment[];
|
||
}
|