import { ServiceApiContract } from "@ethicdevs/react-monolith";
import { FastifyRequest } from "fastify";
import { Prisma, PullRequest, Repository, User } from "@prisma/client";
export interface CreatePullRequestDTO {
author: User;
summary: string;
textMd: string;
source: {
repository: Repository;
fromBranch: string;
};
target: {
repository: Repository;
destBranch: string;
};
}
export type PullRequestSelectOrIncludes =
| { select?: Prisma.PullRequestSelect }
| { includes?: Prisma.PullRequestInclude };
export interface PullRequestServiceAPI extends ServiceApiContract {
getPullRequest(pullRequestId: string): Promise<PullRequest | null>;
createPullRequest(dto: CreatePullRequestDTO): Promise<PullRequest>;
}
export interface PullRequestServiceDeps {
request: FastifyRequest;
}