import { z } from 'zod';
import {
  answerJoinRequestSchema,
  createJoinRequestSchema,
  createRacingTeamSchema,
  joinRequestSchema,
  paginatedRacingTeamSchema,
  paginatedRacingTeamSummarySchema,
  racingTeamWithMembersSchema,
  racingTeamSchema,
  racingTeamSummarySchema,
  teamMemberWithPlayerSchema,
  teamMemberSchema,
  updateRacingTeamSchema,
  addTeamMemberSchema,
} from './RacingTeam.schema';

export type RacingTeam = z.infer<typeof racingTeamSchema>;
export type CreateRacingTeamInput = z.infer<typeof createRacingTeamSchema>;
export type UpdateRacingTeamInput = z.infer<typeof updateRacingTeamSchema>;
export type PaginatedRacingTeam = z.infer<typeof paginatedRacingTeamSchema>;
export type RacingTeamSummary = z.infer<typeof racingTeamSummarySchema>;
export type PaginatedRacingTeamSummary = z.infer<typeof paginatedRacingTeamSummarySchema>;

export type JoinRequest = z.infer<typeof joinRequestSchema>;
export type TeamMember = z.infer<typeof teamMemberSchema>;
export type CreateJoinRequest = z.infer<typeof createJoinRequestSchema>;
export type AnswerJoinRequest = z.infer<typeof answerJoinRequestSchema>;

export type TeamMemberWithPlayer = z.infer<typeof teamMemberWithPlayerSchema>;
export type RacingTeamWithMembers = z.infer<typeof racingTeamWithMembersSchema>;
export type AddTeamMember = z.infer<typeof addTeamMemberSchema>;
