export class UserDirectoryReferenceDto {
  id: number;
  name?: string;
}

export class UserDirectoryTeamDto {
  id: number;
  name: string;
  alias: string;
}

export class UserDirectoryAssignmentDto {
  id: number;
  firstName: string;
  lastName: string;
  active: boolean;
  team: UserDirectoryTeamDto;
  teamRole: UserDirectoryReferenceDto | null;
}

export class UserDirectorySummaryDto {
  id: number;
  firstName: string | null;
  lastName: string | null;
  status: UserDirectoryReferenceDto | null;
  assignments: UserDirectoryAssignmentDto[];
}

export class AdminUserDirectorySummaryDto extends UserDirectorySummaryDto {
  email: string | null;
  role: UserDirectoryReferenceDto | null;
}

export class UserDirectoryPageDto {
  data: Array<UserDirectorySummaryDto | AdminUserDirectorySummaryDto>;
  page: number;
  limit: number;
  total: number;
  hasNextPage: boolean;
}
