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


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

export const GetSeasonFieldsFieldsSeasonSeasonUuidGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "name": zod.string(),
  "description": zod.union([zod.string(),zod.null()]),
  "field_type": zod.string(),
  "stat_type": zod.string(),
  "game_piece_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "required": zod.boolean(),
  "options": zod.union([zod.object({
  "choices": zod.array(zod.unknown()),
  "default": zod.number(),
  "minimum": zod.number(),
  "maximum": zod.number()
}),zod.null()]),
  "order": zod.int(),
  "organization_id": zod.union([zod.uuid(),zod.null()]),
  "fields": zod.array(zod.unknown()).optional()
})
export const GetSeasonFieldsFieldsSeasonSeasonUuidGetResponse = zod.array(GetSeasonFieldsFieldsSeasonSeasonUuidGetResponseItem)

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

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

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

export const CreateSeasonFieldFieldsSeasonSeasonUuidCreatePostBody = zod.object({
  "uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "name": zod.string(),
  "description": zod.union([zod.string(),zod.null()]),
  "season_uuid": zod.uuid(),
  "field_type": zod.string(),
  "stat_type": zod.string(),
  "required": zod.boolean(),
  "order": zod.int(),
  "organization_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "parent_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "options": zod.object({
  "choices": zod.array(zod.unknown()),
  "default": zod.number(),
  "minimum": zod.number(),
  "maximum": zod.number()
}),
  "choices": zod.array(zod.unknown()).optional(),
  "game_piece_uuid": zod.union([zod.uuid(),zod.null()]).optional()
})

export const CreateSeasonFieldFieldsSeasonSeasonUuidCreatePostResponse = zod.object({
  "uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "name": zod.string(),
  "description": zod.union([zod.string(),zod.null()]),
  "field_type": zod.string(),
  "stat_type": zod.string(),
  "game_piece_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "required": zod.boolean(),
  "options": zod.object({
  "choices": zod.array(zod.unknown()),
  "default": zod.number(),
  "minimum": zod.number(),
  "maximum": zod.number()
}),
  "choices": zod.array(zod.unknown()).optional(),
  "order": zod.int(),
  "organization_id": zod.union([zod.uuid(),zod.null()]).optional()
})

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

export const EditSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostBody = zod.object({
  "uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "name": zod.string(),
  "description": zod.union([zod.string(),zod.null()]),
  "season_uuid": zod.uuid(),
  "field_type": zod.string(),
  "stat_type": zod.string(),
  "required": zod.boolean(),
  "order": zod.int(),
  "organization_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "parent_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "options": zod.object({
  "choices": zod.array(zod.unknown()),
  "default": zod.number(),
  "minimum": zod.number(),
  "maximum": zod.number()
}),
  "choices": zod.array(zod.unknown()).optional(),
  "game_piece_uuid": zod.union([zod.uuid(),zod.null()]).optional()
})

export const EditSeasonFieldFieldsSeasonSeasonUuidEditFieldUuidPostResponse = zod.object({
  "uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "name": zod.string(),
  "description": zod.union([zod.string(),zod.null()]),
  "field_type": zod.string(),
  "stat_type": zod.string(),
  "game_piece_uuid": zod.union([zod.uuid(),zod.null()]).optional(),
  "required": zod.boolean(),
  "options": zod.object({
  "choices": zod.array(zod.unknown()),
  "default": zod.number(),
  "minimum": zod.number(),
  "maximum": zod.number()
}),
  "choices": zod.array(zod.unknown()).optional(),
  "order": zod.int(),
  "organization_id": zod.union([zod.uuid(),zod.null()]).optional()
})

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

export const MoveMatchScoutingFieldsFieldsSeasonUuidReorderPatchBodyItem = zod.object({
  "uuid": zod.uuid(),
  "order": zod.int(),
  "parent_uuid": zod.union([zod.uuid(),zod.null()])
})
export const MoveMatchScoutingFieldsFieldsSeasonUuidReorderPatchBody = zod.array(MoveMatchScoutingFieldsFieldsSeasonUuidReorderPatchBodyItem)

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

/**
 * 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 GetMatchScoutingFieldPresetsFieldsGetPresetsGetResponseItem = zod.object({
  "name": zod.string(),
  "preset": zod.record(zod.string(), zod.unknown())
})
export const GetMatchScoutingFieldPresetsFieldsGetPresetsGetResponse = zod.array(GetMatchScoutingFieldPresetsFieldsGetPresetsGetResponseItem)

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

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

