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

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

export type getCustomEventsEventCustomSeasonUuidGetResponse200 = {
  data: EventResponse[]
  status: 200
}

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

export type getCustomEventsEventCustomSeasonUuidGetResponseSuccess = (getCustomEventsEventCustomSeasonUuidGetResponse200) & {
  headers: Headers;
};
export type getCustomEventsEventCustomSeasonUuidGetResponseError = (getCustomEventsEventCustomSeasonUuidGetResponse422) & {
  headers: Headers;
};

export type getCustomEventsEventCustomSeasonUuidGetResponse = (getCustomEventsEventCustomSeasonUuidGetResponseSuccess | getCustomEventsEventCustomSeasonUuidGetResponseError)

export const getGetCustomEventsEventCustomSeasonUuidGetUrl = (seasonUuid: string,) => {




  return `/event/custom/${seasonUuid}`
}

/**
 * Get all custom events for a season
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to get custom events for
 *
 * Returns:
 *     list[EventResponse]: A list of all custom events for the season
 * @summary Get Custom Events
 */
export const getCustomEventsEventCustomSeasonUuidGet = async (seasonUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<getCustomEventsEventCustomSeasonUuidGetResponse> => {

  return customInstance<getCustomEventsEventCustomSeasonUuidGetResponse>(getGetCustomEventsEventCustomSeasonUuidGetUrl(seasonUuid),
  {
    ...options,
    method: 'GET'


  }
);}


export type createCustomEventEventCustomSeasonUuidCreatePostResponse200 = {
  data: EventResponse
  status: 200
}

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

export type createCustomEventEventCustomSeasonUuidCreatePostResponseSuccess = (createCustomEventEventCustomSeasonUuidCreatePostResponse200) & {
  headers: Headers;
};
export type createCustomEventEventCustomSeasonUuidCreatePostResponseError = (createCustomEventEventCustomSeasonUuidCreatePostResponse422) & {
  headers: Headers;
};

export type createCustomEventEventCustomSeasonUuidCreatePostResponse = (createCustomEventEventCustomSeasonUuidCreatePostResponseSuccess | createCustomEventEventCustomSeasonUuidCreatePostResponseError)

export const getCreateCustomEventEventCustomSeasonUuidCreatePostUrl = (seasonUuid: string,) => {




  return `/event/custom/${seasonUuid}/create`
}

/**
 * Create a custom event for a season
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to create a custom event for
 *     data (`CustomEventRequest`): The UUID of the season to create a custom event for
 *
 * Returns:
 *     EventResponse: The created custom event
 * @summary Create Custom Event
 */
export const createCustomEventEventCustomSeasonUuidCreatePost = async (seasonUuid: string,
    customEventRequest: CustomEventRequest, options?: Parameters<typeof customInstance>[1]): Promise<createCustomEventEventCustomSeasonUuidCreatePostResponse> => {

  return customInstance<createCustomEventEventCustomSeasonUuidCreatePostResponse>(getCreateCustomEventEventCustomSeasonUuidCreatePostUrl(seasonUuid),
  {
    ...options,
    method: 'POST',
    headers: { 'Content-Type': 'application/json', ...options?.headers },
    body: JSON.stringify(customEventRequest)
  }
);}


export type getAllEventsEventsGetGetResponse200 = {
  data: AdminEventResponse[]
  status: 200
}

export type getAllEventsEventsGetGetResponseSuccess = (getAllEventsEventsGetGetResponse200) & {
  headers: Headers;
};
;

export type getAllEventsEventsGetGetResponse = (getAllEventsEventsGetGetResponseSuccess)

export const getGetAllEventsEventsGetGetUrl = () => {




  return `/events/get`
}

/**
 * Get all events on the server, used for the admin dashboard
 *
 * Requires superuser access
 *
 * Returns:
 *     list[EventResponse]: A list of all events
 * @summary Get All Events
 */
export const getAllEventsEventsGetGet = async ( options?: Parameters<typeof customInstance>[1]): Promise<getAllEventsEventsGetGetResponse> => {

  return customInstance<getAllEventsEventsGetGetResponse>(getGetAllEventsEventsGetGetUrl(),
  {
    ...options,
    method: 'GET'


  }
);}


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

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

export type deleteEventEventsDeleteEventUuidDeleteResponseSuccess = (deleteEventEventsDeleteEventUuidDeleteResponse200) & {
  headers: Headers;
};
export type deleteEventEventsDeleteEventUuidDeleteResponseError = (deleteEventEventsDeleteEventUuidDeleteResponse422) & {
  headers: Headers;
};

export type deleteEventEventsDeleteEventUuidDeleteResponse = (deleteEventEventsDeleteEventUuidDeleteResponseSuccess | deleteEventEventsDeleteEventUuidDeleteResponseError)

export const getDeleteEventEventsDeleteEventUuidDeleteUrl = (eventUuid: string,) => {




  return `/events/delete/${eventUuid}`
}

/**
 * Delete an event
 *
 * Requires superuser access
 *
 * Parameters:
 *     event_uuid (`UUID`): The UUID of the event to delete
 *
 * Returns:
 *     MessageResponse: A message indicating that the event was deleted
 * @summary Delete Event
 */
export const deleteEventEventsDeleteEventUuidDelete = async (eventUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<deleteEventEventsDeleteEventUuidDeleteResponse> => {

  return customInstance<deleteEventEventsDeleteEventUuidDeleteResponse>(getDeleteEventEventsDeleteEventUuidDeleteUrl(eventUuid),
  {
    ...options,
    method: 'DELETE'


  }
);}


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

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

export type deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponseSuccess = (deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponse200) & {
  headers: Headers;
};
export type deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponseError = (deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponse422) & {
  headers: Headers;
};

export type deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponse = (deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponseSuccess | deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponseError)

export const getDeleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteUrl = (eventUuid: string,) => {




  return `/events/delete/${eventUuid}/match_scouting_submissions`
}

/**
 * Delete all match scouting submissions for an event
 *
 * Requires superuser access
 *
 * Parameters:
 *     event_uuid (`UUID`): The UUID of the event to delete match scouting submissions for
 *
 * Returns:
 *     MessageResponse: A message indicating that the match scouting submissions were deleted
 * @summary Delete Match Scouting Submissions
 */
export const deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDelete = async (eventUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponse> => {

  return customInstance<deleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponse>(getDeleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteUrl(eventUuid),
  {
    ...options,
    method: 'DELETE'


  }
);}


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

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

export type deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponseSuccess = (deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponse200) & {
  headers: Headers;
};
export type deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponseError = (deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponse422) & {
  headers: Headers;
};

export type deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponse = (deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponseSuccess | deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponseError)

export const getDeleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteUrl = (eventUuid: string,) => {




  return `/events/delete/${eventUuid}/team_pits`
}

/**
 * Delete all team pits for an event
 *
 * Requires superuser access
 *
 * Parameters:
 *     event_uuid (`UUID`): The UUID of the event to delete team pits for
 *
 * Returns:
 *     MessageResponse: A message indicating that the team pits were deleted
 * @summary Delete Team Pits
 */
export const deleteTeamPitsEventsDeleteEventUuidTeamPitsDelete = async (eventUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponse> => {

  return customInstance<deleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponse>(getDeleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteUrl(eventUuid),
  {
    ...options,
    method: 'DELETE'


  }
);}


export type getEventInfoEventInfoYearEventCodeGetResponse200 = {
  data: EventInfoResponse
  status: 200
}

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

export type getEventInfoEventInfoYearEventCodeGetResponseSuccess = (getEventInfoEventInfoYearEventCodeGetResponse200) & {
  headers: Headers;
};
export type getEventInfoEventInfoYearEventCodeGetResponseError = (getEventInfoEventInfoYearEventCodeGetResponse422) & {
  headers: Headers;
};

export type getEventInfoEventInfoYearEventCodeGetResponse = (getEventInfoEventInfoYearEventCodeGetResponseSuccess | getEventInfoEventInfoYearEventCodeGetResponseError)

export const getGetEventInfoEventInfoYearEventCodeGetUrl = (year: number,
    eventCode: string,) => {




  return `/event/info/${year}/${eventCode}`
}

/**
 * Get match and pit scouting information about an event
 *
 * Parameters:
 *     year (`int`): The year of the event
 *     event_code (`str`): The event code of the event
 *
 * Returns:
 *     EventInfoResponse: The information about the event
 * @summary Get Event Info
 */
export const getEventInfoEventInfoYearEventCodeGet = async (year: number,
    eventCode: string, options?: Parameters<typeof customInstance>[1]): Promise<getEventInfoEventInfoYearEventCodeGetResponse> => {

  return customInstance<getEventInfoEventInfoYearEventCodeGetResponse>(getGetEventInfoEventInfoYearEventCodeGetUrl(year,eventCode),
  {
    ...options,
    method: 'GET'


  }
);}


