import { Column, DeleteDateColumn, Entity, ManyToOne } from "typeorm";
import { User } from "./user.entity";
import { Group } from "./group.entity";
import { BaseEntity } from "./base.entity";

export enum GroupRole {
  OWNER = 'owner',
  ADMIN = 'admin',
  MEMBER = 'member',
}

@Entity('group_members')
export class GroupMember extends BaseEntity {
  @ManyToOne(() => User, (user) => user.groupMembers)
  user: User;

  @ManyToOne(() => Group, (group) => group.members)
  group: Group;

  @Column({
    type: 'enum',
    enum: GroupRole,
    default: GroupRole.MEMBER,
  })
  role: GroupRole;

  @DeleteDateColumn()
  deletedAt?: Date;
}