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


/**
 * Create a new report
 *
 * Parameters:
 *     data (CreateReportRequest): The data to create the report
 *
 * Returns:
 *     `CreateReportResponse`: The created report
 * @summary Create Report
 */
export const CreateReportReportCreatePostBody = zod.object({
  "type": zod.enum(['match_scouting_submission', 'match_scouting_answer', 'team_pit', 'pit_scouting_answer', 'event']),
  "content_uuid": zod.uuid(),
  "report_reason": zod.enum(['spam', 'innaccurate', 'inappropriate', 'offensive', 'duplicate', 'other']),
  "report_details": zod.string()
})

export const CreateReportReportCreatePostResponse = zod.object({
  "type": zod.enum(['match_scouting_submission', 'match_scouting_answer', 'team_pit', 'pit_scouting_answer', 'event']),
  "content_uuid": zod.uuid(),
  "report_reason": zod.enum(['spam', 'innaccurate', 'inappropriate', 'offensive', 'duplicate', 'other']),
  "report_details": zod.string(),
  "uuid": zod.uuid()
})

/**
 * Get all reports from the server
 *
 * Construct corresponding report_details depending on the type of each report
 *
 * Requires superuser access
 *
 * Returns:
 *     list[ReportResponse]: A list of all reports
 * @summary Get Reports
 */
export const GetReportsReportsGetGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "type": zod.enum(['match_scouting_submission', 'match_scouting_answer', 'team_pit', 'pit_scouting_answer', 'event']),
  "content_uuid": zod.uuid(),
  "content_details": zod.union([zod.object({
  "uuid": zod.uuid(),
  "event_uuid": zod.uuid(),
  "season_uuid": zod.uuid(),
  "team_number": zod.int(),
  "match_number": zod.int(),
  "match_type": zod.string(),
  "answers_count": zod.int(),
  "answers": zod.array(zod.object({
  "uuid": zod.uuid(),
  "field_uuid": zod.uuid(),
  "value": zod.string(),
  "created_at": zod.union([zod.iso.datetime({"offset":true}),zod.null()]).optional()
}))
}),zod.object({
  "uuid": zod.uuid(),
  "field_uuid": zod.uuid(),
  "value": zod.string(),
  "created_at": zod.union([zod.iso.datetime({"offset":true}),zod.null()]).optional()
}),zod.object({
  "uuid": zod.uuid(),
  "team_number": zod.int(),
  "nickname": zod.string(),
  "season_uuid": zod.uuid(),
  "event_uuid": zod.uuid()
}),zod.object({
  "uuid": zod.uuid(),
  "field_uuid": zod.uuid(),
  "value": zod.string(),
  "team_uuid": zod.uuid(),
  "team_number": zod.int(),
  "created_at": zod.iso.datetime({"offset":true})
}),zod.object({
  "uuid": zod.uuid(),
  "season_uuid": zod.uuid(),
  "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}),
  "custom": zod.boolean(),
  "created_at": zod.iso.datetime({"offset":true})
}),zod.null()]),
  "report_reason": zod.enum(['spam', 'innaccurate', 'inappropriate', 'offensive', 'duplicate', 'other']),
  "report_details": zod.string(),
  "created_at": zod.iso.datetime({"offset":true})
})
export const GetReportsReportsGetGetResponse = zod.array(GetReportsReportsGetGetResponseItem)

/**
 * Get the number of reports
 *
 * Requires superuser access
 *
 * Returns:
 *     CountResponse: The number of reports
 * @summary Get Reports Count
 */
export const GetReportsCountReportsGetCountGetResponse = zod.int()

/**
 * Delete the content for a report. Then delete the report itself.
 *
 * Requires superuser access
 *
 * Parameters:
 *     report_uuid (`UUID`): The UUID of the report's content to delete
 *
 * Returns:
 *     MessageResponse: A message indicating that the report was deleted
 * @summary Delete Report Content
 */
export const DeleteReportContentReportContentDeleteReportUuidDeleteParams = zod.object({
  "report_uuid": zod.uuid()
})

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

/**
 * Delete a report
 *
 * Requires superuser access
 *
 * Parameters:
 *     report_uuid (`UUID`): The UUID of the report to delete
 *
 * Returns:
 *     MessageResponse: A message indicating that the report was deleted
 * @summary Delete Report
 */
export const DeleteReportReportDeleteReportUuidDeleteParams = zod.object({
  "report_uuid": zod.uuid()
})

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

