import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToMany, JoinTable, } from 'typeorm'; import { Role } from './role.entity'; @Entity('users') export class User { @PrimaryGeneratedColumn() id: number; @Column({ length: 50, unique: true }) username: string; @Column({ name: 'password_hash', length: 255 }) passwordHash: string; // 移除: @Column({ type: 'varchar', length: 20, default: 'operator' }) // role: string; @Column({ length: 50, nullable: true }) name: string; // 移除: @Column({ name: 'allowed_menus', type: 'text', nullable: true }) // allowedMenus: string; @Column({ name: 'is_active', default: true }) isActive: boolean; @Column({ name: 'last_login_at', type: 'datetime', nullable: true }) lastLoginAt: Date; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; @ManyToMany(() => Role, (role) => role.users) @JoinTable({ name: 'user_roles', joinColumn: { name: 'user_id', referencedColumnName: 'id' }, inverseJoinColumn: { name: 'role_id', referencedColumnName: 'id' }, }) roles: Role[]; }