/**
 * Generated by orval v8.23.0 🍺
 * Do not edit manually.
 * FastAPI
 * OpenAPI spec version: v2.2.0
 */
import type {
  HTTPValidationError,
  MatchScoutingRequest,
  MatchScoutingResponse,
  MessageResponse,
  SubmissionResponse
} from '../model';

import { customInstance } from '.././client';

export type submitMatchScoutingScoutingSubmitPostResponse200 = {
  data: MatchScoutingResponse
  status: 200
}

export type submitMatchScoutingScoutingSubmitPostResponse422 = {
  data: HTTPValidationError
  status: 422
}

export type submitMatchScoutingScoutingSubmitPostResponseSuccess = (submitMatchScoutingScoutingSubmitPostResponse200) & {
  headers: Headers;
};
export type submitMatchScoutingScoutingSubmitPostResponseError = (submitMatchScoutingScoutingSubmitPostResponse422) & {
  headers: Headers;
};

export type submitMatchScoutingScoutingSubmitPostResponse = (submitMatchScoutingScoutingSubmitPostResponseSuccess | submitMatchScoutingScoutingSubmitPostResponseError)

export const getSubmitMatchScoutingScoutingSubmitPostUrl = () => {




  return `/scouting/submit`
}

/**
 * Submit a match scouting form
 *
 * Will create a MatchScoutingSubmission for each submission, and then create a MatchScoutingAnswer for each field answer
 *
 * Parameters:
 *     data (MatchScoutingRequest): The data to submit the match scouting form
 *
 * Returns:
 *     `MatchScoutingSubmission`: The submitted match scouting form
 * @summary Submit Match Scouting
 */
export const submitMatchScoutingScoutingSubmitPost = async (matchScoutingRequest: MatchScoutingRequest, options?: Parameters<typeof customInstance>[1]): Promise<submitMatchScoutingScoutingSubmitPostResponse> => {

  return customInstance<submitMatchScoutingScoutingSubmitPostResponse>(getSubmitMatchScoutingScoutingSubmitPostUrl(),
  {
    ...options,
    method: 'POST',
    headers: { 'Content-Type': 'application/json', ...options?.headers },
    body: JSON.stringify(matchScoutingRequest)
  }
);}


export type getMatchScoutingSubmissionsScoutingSubmissionsGetResponse200 = {
  data: SubmissionResponse[]
  status: 200
}

export type getMatchScoutingSubmissionsScoutingSubmissionsGetResponseSuccess = (getMatchScoutingSubmissionsScoutingSubmissionsGetResponse200) & {
  headers: Headers;
};
;

export type getMatchScoutingSubmissionsScoutingSubmissionsGetResponse = (getMatchScoutingSubmissionsScoutingSubmissionsGetResponseSuccess)

export const getGetMatchScoutingSubmissionsScoutingSubmissionsGetUrl = () => {




  return `/scouting/submissions`
}

/**
 * Get all match scouting submissions
 *
 * Requires superuser access
 *
 * Returns:
 *     list[SubmissionResponse]: A list of all match scouting submissions
 * @summary Get Match Scouting Submissions
 */
export const getMatchScoutingSubmissionsScoutingSubmissionsGet = async ( options?: Parameters<typeof customInstance>[1]): Promise<getMatchScoutingSubmissionsScoutingSubmissionsGetResponse> => {

  return customInstance<getMatchScoutingSubmissionsScoutingSubmissionsGetResponse>(getGetMatchScoutingSubmissionsScoutingSubmissionsGetUrl(),
  {
    ...options,
    method: 'GET'


  }
);}


export type deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse200 = {
  data: MessageResponse
  status: 200
}

export type deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse422 = {
  data: HTTPValidationError
  status: 422
}

export type deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponseSuccess = (deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse200) & {
  headers: Headers;
};
export type deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponseError = (deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse422) & {
  headers: Headers;
};

export type deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse = (deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponseSuccess | deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponseError)

export const getDeleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteUrl = (submissionUuid: string,) => {




  return `/scouting/submissions/delete/${submissionUuid}`
}

/**
 * Delete a match scouting submission
 *
 * Requires superuser access
 *
 * Parameters:
 *     submission_uuid (`UUID`): The UUID of the submission to delete
 *
 * Returns:
 *     MessageResponse: A message indicating that the submission was deleted
 * @summary Delete Match Scouting Submission
 */
export const deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDelete = async (submissionUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse> => {

  return customInstance<deleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteResponse>(getDeleteMatchScoutingSubmissionScoutingSubmissionsDeleteSubmissionUuidDeleteUrl(submissionUuid),
  {
    ...options,
    method: 'DELETE'


  }
);}


