mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-14 01:47:26 +00:00
community user relation
This commit is contained in:
@ -1,8 +1,16 @@
|
||||
import { Column, Entity, ManyToOne, OneToMany, Unique } from 'typeorm';
|
||||
import {
|
||||
Column,
|
||||
Entity,
|
||||
ManyToMany,
|
||||
ManyToOne,
|
||||
OneToMany,
|
||||
Unique,
|
||||
} from 'typeorm';
|
||||
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
|
||||
import { CommunityDto } from '../dtos';
|
||||
import { RegionEntity } from '../../region/entities';
|
||||
import { SpaceEntity } from '../../space/entities';
|
||||
import { UserEntity } from '../../user/entities';
|
||||
|
||||
@Entity({ name: 'community' })
|
||||
@Unique(['name'])
|
||||
@ -31,4 +39,7 @@ export class CommunityEntity extends AbstractEntity<CommunityDto> {
|
||||
|
||||
@OneToMany(() => SpaceEntity, (space) => space.community)
|
||||
spaces: SpaceEntity[];
|
||||
|
||||
@ManyToMany(() => UserEntity, (user) => user.communities)
|
||||
users: UserEntity[];
|
||||
}
|
||||
|
@ -2,6 +2,8 @@ import {
|
||||
Column,
|
||||
DeleteDateColumn,
|
||||
Entity,
|
||||
JoinTable,
|
||||
ManyToMany,
|
||||
ManyToOne,
|
||||
OneToMany,
|
||||
Unique,
|
||||
@ -26,6 +28,7 @@ import { OtpType } from '../../../../src/constants/otp-type.enum';
|
||||
import { RoleTypeEntity } from '../../role-type/entities';
|
||||
import { SpaceEntity } from '../../space/entities';
|
||||
import { VisitorPasswordEntity } from '../../visitor-password/entities';
|
||||
import { CommunityEntity } from '../../community/entities';
|
||||
|
||||
@Entity({ name: 'user' })
|
||||
export class UserEntity extends AbstractEntity<UserDto> {
|
||||
@ -115,6 +118,15 @@ export class UserEntity extends AbstractEntity<UserDto> {
|
||||
(visitorPassword) => visitorPassword.user,
|
||||
)
|
||||
public visitorPasswords: VisitorPasswordEntity[];
|
||||
|
||||
@ManyToMany(() => CommunityEntity, (community) => community.users)
|
||||
@JoinTable({
|
||||
name: 'user_communities', // Join table to link users and communities
|
||||
joinColumn: { name: 'user_id', referencedColumnName: 'uuid' },
|
||||
inverseJoinColumn: { name: 'community_id', referencedColumnName: 'uuid' },
|
||||
})
|
||||
communities: CommunityEntity[];
|
||||
|
||||
constructor(partial: Partial<UserEntity>) {
|
||||
super();
|
||||
Object.assign(this, partial);
|
||||
|
Reference in New Issue
Block a user