/**
 * Generated by orval v8.23.0 🍺
 * Do not edit manually.
 * FastAPI
 * OpenAPI spec version: v2.2.0
 */
import type {
  HTTPValidationError,
  MatchScoutingFieldRequest,
  MatchScoutingFieldResponse,
  MatchScoutingPresetResponse,
  MatchScoutingSeasonFieldsResponse,
  MessageResponse,
  ReorderMatchScoutingFieldsRequest
} from '../model';

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

export type getSeasonFieldsFieldsSeasonSeasonUuidGetResponse200 = {
  data: MatchScoutingSeasonFieldsResponse[]
  status: 200
}

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

export type getSeasonFieldsFieldsSeasonSeasonUuidGetResponseSuccess = (getSeasonFieldsFieldsSeasonSeasonUuidGetResponse200) & {
  headers: Headers;
};
export type getSeasonFieldsFieldsSeasonSeasonUuidGetResponseError = (getSeasonFieldsFieldsSeasonSeasonUuidGetResponse422) & {
  headers: Headers;
};

export type getSeasonFieldsFieldsSeasonSeasonUuidGetResponse = (getSeasonFieldsFieldsSeasonSeasonUuidGetResponseSuccess | getSeasonFieldsFieldsSeasonSeasonUuidGetResponseError)

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




  return `/fields/season/${seasonUuid}`
}

/**
 * Get all match scouting fields for a season
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to get fields for
 *
 * Returns:
 *     `list[MatchScoutingField]`: A list of all match scouting fields for the season
 * @summary Get Season Fields
 */
export const getSeasonFieldsFieldsSeasonSeasonUuidGet = async (seasonUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<getSeasonFieldsFieldsSeasonSeasonUuidGetResponse> => {

  return customInstance<getSeasonFieldsFieldsSeasonSeasonUuidGetResponse>(getGetSeasonFieldsFieldsSeasonSeasonUuidGetUrl(seasonUuid),
  {
    ...options,
    method: 'GET'


  }
);}


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

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

export type clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponseSuccess = (clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponse200) & {
  headers: Headers;
};
export type clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponseError = (clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponse422) & {
  headers: Headers;
};

export type clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponse = (clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponseSuccess | clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponseError)

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




  return `/fields/season/${seasonUuid}/clear`
}

/**
 * Clear all match scouting fields for a season
 *
 * Requires superuser access
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to clear fields for
 *
 * Returns:
 *     `MessageResponse`: A message indicating that the fields were cleared
 * @summary Clear Season Fields
 */
export const clearSeasonFieldsFieldsSeasonSeasonUuidClearDelete = async (seasonUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponse> => {

  return customInstance<clearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteResponse>(getClearSeasonFieldsFieldsSeasonSeasonUuidClearDeleteUrl(seasonUuid),
  {
    ...options,
    method: 'DELETE'


  }
);}


export type createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponse200 = {
  data: MatchScoutingFieldResponse
  status: 200
}

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

export type createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponseSuccess = (createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponse200) & {
  headers: Headers;
};
export type createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponseError = (createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponse422) & {
  headers: Headers;
};

export type createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponse = (createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponseSuccess | createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponseError)

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




  return `/fields/season/${seasonUuid}/create`
}

/**
 * Create a new match scouting field
 *
 * Requires superuser access
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to create the field for
 *     data (MatchScoutingFieldRequest): The data to create the field
 *
 * Returns:
 *     `MatchScoutingField`: The created field
 * @summary Create Season Field
 */
export const createSeasonFieldFieldsSeasonSeasonUuidCreatePost = async (seasonUuid: string,
    matchScoutingFieldRequest: MatchScoutingFieldRequest, options?: Parameters<typeof customInstance>[1]): Promise<createSeasonFieldFieldsSeasonSeasonUuidCreatePostResponse> => {

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


export type editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponse200 = {
  data: MatchScoutingFieldResponse
  status: 200
}

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

export type editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponseSuccess = (editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponse200) & {
  headers: Headers;
};
export type editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponseError = (editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponse422) & {
  headers: Headers;
};

export type editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponse = (editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponseSuccess | editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponseError)

export const getEditSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostUrl = (seasonUuid: string,
    fieldUuid: string,) => {




  return `/fields/season/${seasonUuid}/edit/${fieldUuid}`
}

/**
 * Edit a match scouting field
 *
 * Requires superuser access
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to edit the field for
 *     field_uuid (`UUID`): The UUID of the field to edit
 *     data (MatchScoutingFieldRequest): The data to edit the field
 *
 * Returns:
 *     `MatchScoutingField`: The edited field
 * @summary Edit Season Field
 */
export const editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPost = async (seasonUuid: string,
    fieldUuid: string,
    matchScoutingFieldRequest: MatchScoutingFieldRequest, options?: Parameters<typeof customInstance>[1]): Promise<editSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponse> => {

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


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

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

export type moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponseSuccess = (moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponse200) & {
  headers: Headers;
};
export type moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponseError = (moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponse422) & {
  headers: Headers;
};

export type moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponse = (moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponseSuccess | moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponseError)

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




  return `/fields/${seasonUuid}/reorder`
}

/**
 * Reorder match scouting fields for a season
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to reorder fields for
 *     data (`ReorderMatchScoutingFieldsRequest`): The data to reorder the fields
 *
 * Returns:
 *     `MessageResponse`: A message indicating that the fields were reordered
 * @summary Move Match Scouting Fields
 */
export const moveMatchScoutingFieldsFieldsSeasonUuidReorderPatch = async (seasonUuid: string,
    reorderMatchScoutingFieldsRequest: ReorderMatchScoutingFieldsRequest, options?: Parameters<typeof customInstance>[1]): Promise<moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponse> => {

  return customInstance<moveMatchScoutingFieldsFieldsSeasonUuidReorderPatchResponse>(getMoveMatchScoutingFieldsFieldsSeasonUuidReorderPatchUrl(seasonUuid),
  {
    ...options,
    method: 'PATCH',
    headers: { 'Content-Type': 'application/json', ...options?.headers },
    body: JSON.stringify(reorderMatchScoutingFieldsRequest)
  }
);}


export type getMatchScoutingFieldPresetsFieldsGetPresetsGetResponse200 = {
  data: MatchScoutingPresetResponse[]
  status: 200
}

export type getMatchScoutingFieldPresetsFieldsGetPresetsGetResponseSuccess = (getMatchScoutingFieldPresetsFieldsGetPresetsGetResponse200) & {
  headers: Headers;
};
;

export type getMatchScoutingFieldPresetsFieldsGetPresetsGetResponse = (getMatchScoutingFieldPresetsFieldsGetPresetsGetResponseSuccess)

export const getGetMatchScoutingFieldPresetsFieldsGetPresetsGetUrl = () => {




  return `/fields/get_presets`
}

/**
 * Get all JSON match scouting field presets
 *
 * Requires superuser access
 *
 * Returns:
 *     `list[MatchScoutingPresetResponse]`: A list of all match scouting field presets
 * @summary Get Match Scouting Field Presets
 */
export const getMatchScoutingFieldPresetsFieldsGetPresetsGet = async ( options?: Parameters<typeof customInstance>[1]): Promise<getMatchScoutingFieldPresetsFieldsGetPresetsGetResponse> => {

  return customInstance<getMatchScoutingFieldPresetsFieldsGetPresetsGetResponse>(getGetMatchScoutingFieldPresetsFieldsGetPresetsGetUrl(),
  {
    ...options,
    method: 'GET'


  }
);}


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

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

export type deleteFieldFieldsDeleteFieldUuidDeleteResponseSuccess = (deleteFieldFieldsDeleteFieldUuidDeleteResponse200) & {
  headers: Headers;
};
export type deleteFieldFieldsDeleteFieldUuidDeleteResponseError = (deleteFieldFieldsDeleteFieldUuidDeleteResponse422) & {
  headers: Headers;
};

export type deleteFieldFieldsDeleteFieldUuidDeleteResponse = (deleteFieldFieldsDeleteFieldUuidDeleteResponseSuccess | deleteFieldFieldsDeleteFieldUuidDeleteResponseError)

export const getDeleteFieldFieldsDeleteFieldUuidDeleteUrl = (fieldUuid: string,) => {




  return `/fields/delete/${fieldUuid}`
}

/**
 * Delete a match scouting field
 *
 * Requires superuser access
 *
 * Parameters:
 *     field_uuid (`UUID`): The UUID of the field to delete
 *
 * Returns:
 *     `MessageResponse`: A message indicating that the field was deleted
 * @summary Delete Field
 */
export const deleteFieldFieldsDeleteFieldUuidDelete = async (fieldUuid: string, options?: Parameters<typeof customInstance>[1]): Promise<deleteFieldFieldsDeleteFieldUuidDeleteResponse> => {

  return customInstance<deleteFieldFieldsDeleteFieldUuidDeleteResponse>(getDeleteFieldFieldsDeleteFieldUuidDeleteUrl(fieldUuid),
  {
    ...options,
    method: 'DELETE'


  }
);}


