import { ServiceApiContract } from "@ethicdevs/react-monolith";
import { FastifyRequest } from "fastify";
import {
Organization,
OrganizationMembership,
Repository,
User,
} from "@prisma/client";
export interface UsersServiceAPI extends ServiceApiContract {
getUserById(userId: string): Promise<User | null>;
getUserByUsername(username: string): Promise<User | null>;
getUserByEmailAddress(emailAddress: string): Promise<User | null>;
getUserOrganizationMemberships(
userId: string
): Promise<OrganizationMembership[]>;
getUserOrganizations(userId: string): Promise<Organization[]>;
getUserRepositories(
userId: string
): Promise<(Repository & { parentOrg: Organization })[]>;
}
export interface UsersServiceDeps {
request: FastifyRequest;
}