/**
 * Generated by orval v8.23.0 🍺
 * Do not edit manually.
 * FastAPI
 * OpenAPI spec version: v2.2.0
 */
import * as zod from 'zod';


/**
 * 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 GetCustomEventsEventCustomSeasonUuidGetParams = zod.object({
  "season_uuid": zod.string()
})

export const GetCustomEventsEventCustomSeasonUuidGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "season": zod.union([zod.uuid(),zod.null()]),
  "event_code": zod.string(),
  "name": zod.string(),
  "type": zod.string(),
  "city": zod.string(),
  "country": zod.string(),
  "start_date": zod.iso.datetime({"offset":true}),
  "end_date": zod.iso.datetime({"offset":true}),
  "pits_generated": zod.boolean(),
  "custom": zod.boolean(),
  "created_at": zod.iso.datetime({"offset":true})
})
export const GetCustomEventsEventCustomSeasonUuidGetResponse = zod.array(GetCustomEventsEventCustomSeasonUuidGetResponseItem)

/**
 * 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 CreateCustomEventEventCustomSeasonUuidCreatePostParams = zod.object({
  "season_uuid": zod.uuid()
})

export const CreateCustomEventEventCustomSeasonUuidCreatePostBody = zod.object({
  "season_uuid": zod.uuid(),
  "event_code": zod.string(),
  "event_name": zod.string(),
  "event_type": zod.string(),
  "event_city": zod.string(),
  "event_country": zod.string(),
  "event_start_date": zod.string(),
  "event_end_date": zod.string()
})

export const CreateCustomEventEventCustomSeasonUuidCreatePostResponse = zod.object({
  "uuid": zod.uuid(),
  "season": zod.union([zod.uuid(),zod.null()]),
  "event_code": zod.string(),
  "name": zod.string(),
  "type": zod.string(),
  "city": zod.string(),
  "country": zod.string(),
  "start_date": zod.iso.datetime({"offset":true}),
  "end_date": zod.iso.datetime({"offset":true}),
  "pits_generated": zod.boolean(),
  "custom": zod.boolean(),
  "created_at": zod.iso.datetime({"offset":true})
})

/**
 * 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 GetAllEventsEventsGetGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "season": zod.union([zod.uuid(),zod.null()]),
  "event_code": zod.string(),
  "name": zod.string(),
  "type": zod.string(),
  "city": zod.string(),
  "country": zod.string(),
  "start_date": zod.iso.datetime({"offset":true}),
  "end_date": zod.iso.datetime({"offset":true}),
  "pits_generated": zod.boolean(),
  "custom": zod.boolean(),
  "created_at": zod.iso.datetime({"offset":true}),
  "match_scouting_submissions": zod.int(),
  "pits": zod.int()
})
export const GetAllEventsEventsGetGetResponse = zod.array(GetAllEventsEventsGetGetResponseItem)

/**
 * 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 DeleteEventEventsDeleteEventUuidDeleteParams = zod.object({
  "event_uuid": zod.uuid()
})

export const DeleteEventEventsDeleteEventUuidDeleteResponse = zod.object({
  "message": zod.string()
})

/**
 * 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 DeleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteParams = zod.object({
  "event_uuid": zod.uuid()
})

export const DeleteMatchScoutingSubmissionsEventsDeleteEventUuidMatchScoutingSubmissionsDeleteResponse = zod.object({
  "message": zod.string()
})

/**
 * 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 DeleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteParams = zod.object({
  "event_uuid": zod.uuid()
})

export const DeleteTeamPitsEventsDeleteEventUuidTeamPitsDeleteResponse = zod.object({
  "message": zod.string()
})

/**
 * 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 GetEventInfoEventInfoYearEventCodeGetParams = zod.object({
  "year": zod.int(),
  "event_code": zod.string()
})

export const GetEventInfoEventInfoYearEventCodeGetResponse = zod.object({
  "match_scouting_submissions": zod.int(),
  "match_scouting_answers": zod.int(),
  "pits": zod.int(),
  "pit_answers": zod.int(),
  "pits_complete": zod.int(),
  "pits_incomplete": zod.int(),
  "pits_not_started": zod.int()
})

