import { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, } from 'typeorm'; import { Project } from './project.entity'; import { User } from '../users/user.entity'; export type ProjectRole = 'owner' | 'editor'; @Entity('project_members') @Index(['projectId', 'userId'], { unique: true }) export class ProjectMember { @PrimaryGeneratedColumn('uuid') id: string; @Column() projectId: string; @Column() userId: string; @Column({ default: 'editor' }) role: ProjectRole; @ManyToOne(() => Project, (project) => project.members, { onDelete: 'CASCADE', }) project: Project; @ManyToOne(() => User, (user) => user.projectMemberships, { onDelete: 'CASCADE', }) user: User; }