import { Entity, Column, PrimaryGeneratedColumn, ManyToMany, JoinTable, CreateDateColumn, UpdateDateColumn, } from 'typeorm'; import { ApiProperty } from '@nestjs/swagger'; import { PUser } from 'kkk-lib/auth/entity/p-user.entity'; import { PDepart } from 'kkk-lib/auth/entity/p-depart'; @Entity() export class PGroup { @ApiProperty({ description: '主键id', type: 'number' }) @PrimaryGeneratedColumn() id: number; @ApiProperty({ description: '名字', type: 'string' }) @Column() name: string; @ApiProperty({ description: '简介', nullable: true, type: 'string' }) @Column('text', { nullable: true }) brief: string; @ApiProperty({ description: '基本信息 JSON字符串格式', nullable: true, type: 'string', }) @Column('longtext', { nullable: true }) baseInfo: string; @ManyToMany((user) => PUser, { cascade: true }) @JoinTable({ name: 'p_group_user', joinColumn: { name: 'groupId', referencedColumnName: 'id' }, inverseJoinColumn: { name: 'userId', referencedColumnName: 'id' }, }) users: PUser[]; @ManyToMany((depart) => PDepart, { cascade: true }) @JoinTable({ name: 'p_group_depart', joinColumn: { name: 'groupId', referencedColumnName: 'id' }, inverseJoinColumn: { name: 'departId', referencedColumnName: 'id' }, }) departs: PDepart[]; @ApiProperty({ description: '创建时间,更新时候不用处理,系统自动更新', nullable: true, type: 'Date', }) @CreateDateColumn({ type: 'timestamp' }) createdTime: Date; @ApiProperty({ description: '更新时间,更新时候不用处理,系统自动更新', nullable: true, type: 'Date', }) @UpdateDateColumn({ type: 'timestamp' }) updatedTime: Date; }