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


/**
 * Get all seasons on the server
 *
 * Returns:
 *     list[Season]: A list of all seasons
 * @summary Get Seasons
 */
export const GetSeasonsSeasonsGetResponseItem = zod.object({
  "year": zod.int(),
  "name": zod.string(),
  "active": zod.boolean(),
  "uuid": zod.uuid(),
  "created_at": zod.iso.datetime({"offset":true})
})
export const GetSeasonsSeasonsGetResponse = zod.array(GetSeasonsSeasonsGetResponseItem)

/**
 * Get the active season on the server
 *
 * Returns:
 *     Season: The active season
 * @summary Get Active Season
 */
export const GetActiveSeasonSeasonsActiveGetResponse = zod.union([zod.object({
  "year": zod.int(),
  "name": zod.string(),
  "active": zod.boolean(),
  "uuid": zod.uuid(),
  "created_at": zod.iso.datetime({"offset":true})
}),zod.null()])

/**
 * Create a new season
 *
 * Requires superuser access
 *
 * Parameters:
 *     data (`SeasonCreate`): The data to create the season
 *
 * Returns:
 *     `SeasonResponse`: The created season
 * @summary Create Season
 */
export const CreateSeasonSeasonsCreatePostBody = zod.object({
  "year": zod.int(),
  "name": zod.string(),
  "active": zod.boolean()
})

export const CreateSeasonSeasonsCreatePostResponse = zod.object({
  "year": zod.int(),
  "name": zod.string(),
  "active": zod.boolean(),
  "uuid": zod.uuid(),
  "created_at": zod.iso.datetime({"offset":true})
})

/**
 * Delete a season
 *
 * Requires superuser access
 *
 * Parameters:
 *     season_uuid (`UUID`): The UUID of the season to delete
 *
 * Returns:
 *     `MessageResponse`: A message indicating that the season was deleted
 * @summary Delete Season
 */
export const DeleteSeasonSeasonsDeleteSeasonUuidDeleteParams = zod.object({
  "season_uuid": zod.string()
})

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

/**
 * Deactivate the current season and make the given season active
 *
 * Requires superuser access
 *
 * Paramaters:
 *     season_uuid (`UUID`): The UUID of the season to activate
 *
 * Returns:
 *     `MessageResponse`: A message indicating that the season was made active
 * @summary Activate Season
 */
export const ActivateSeasonSeasonsActivateSeasonUuidPostParams = zod.object({
  "season_uuid": zod.uuid()
})

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

