/** * Copyright (c) 2021 Gitpod GmbH. All rights reserved. * Licensed under the Gitpod Enterprise Source Code License, * See License.enterprise.txt in the project root folder. */ import { Team, TeamMemberInfo, TeamMemberRole, TeamMembershipInvite } from "@gitpod/gitpod-protocol"; export const TeamDB = Symbol('TeamDB'); export interface TeamDB { findTeams(offset: number, limit: number, orderBy: keyof Team, orderDir: "ASC" | "DESC", searchTerm: string): Promise<{ total: number, rows: Team[] }>; findTeamById(teamId: string): Promise; findMembersByTeam(teamId: string): Promise; findTeamsByUser(userId: string): Promise; findTeamsByUserAsSoleOwner(userId: string): Promise; createTeam(userId: string, name: string): Promise; addMemberToTeam(userId: string, teamId: string): Promise; setTeamMemberRole(userId: string, teamId: string, role: TeamMemberRole): Promise; removeMemberFromTeam(userId: string, teamId: string): Promise; findTeamMembershipInviteById(inviteId: string): Promise; findGenericInviteByTeamId(teamId: string): Promise; resetGenericInvite(teamId: string): Promise; deleteTeam(teamId: string): Promise; }