Ctrl K
ComunidadGuías…

app/models/GroupUser.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import type { GroupPermission } from "@shared/types";
import Group from "./Group";
import User from "./User";
import Model from "./base/Model";
import Relation from "./decorators/Relation";
import Field from "./decorators/Field";
import { observable } from "mobx";

/**
 * Represents a user's membership to a group.
 */
class GroupUser extends Model {
  static modelName = "GroupUser";

  constructor(fields: Record<string, unknown>, store: Model["store"]) {
    super(fields, store);
    this.initialize(fields);
  }

  /** The ID of the user. */
  userId: string;

  /** The user that belongs to the group. */
  @Relation(() => User, { onDelete: "cascade" })
  user: User;

  /** The ID of the group. */
  groupId: string;

  /** The group that the user belongs to. */
  @Relation(() => Group, { onDelete: "cascade" })
  group: Group;

  /** The ID of the user that added the user to the group. */
  createdById: string;

  /** The user that added the user to the group. */
  @Relation(() => User, { onDelete: "null" })
  createdBy?: User;

  /** The permission of the user in the group. */
  @Field
  @observable
  permission: GroupPermission;
}

export default GroupUser;