import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, Unique, UpdateDateColumn } from 'typeorm' import { Project } from './Project' import { User } from './User' export enum Permission { View = 'View', Edit = 'Edit' } @Entity() @Unique(['project', 'member']) export class ProjectMember { @PrimaryGeneratedColumn('uuid') id!: string @ManyToOne( () => User, (user) => user.projectMembers ) @JoinColumn({ name: 'userId' }) member!: User @ManyToOne( () => Project, (project) => project.projectMembers ) @JoinColumn({ name: 'projectId' }) project!: Project @Column({ type: 'simple-array' }) permissions!: Permission[] @Column('boolean', { default: false }) isPending!: boolean @CreateDateColumn() createdAt!: Date @UpdateDateColumn() updatedAt!: Date @DeleteDateColumn() deletedAt!: Date | null }