export interface EquipmentItem {
  id: number;
  rentman_id: string;
  name: string;
  number: string | null;
  category: string | null;
  description: string | null;
  image_url: string | null;
  rental_price: number | null;
  available: boolean;
}

export interface EquipmentDetail {
  id: number;
  rentman_id: string;
  name: string;
  number: string | null;
  category: string | null;
  description: string | null;
  specifications: Record<string, unknown> | null;
  image_url: string | null;
  images: string[] | null;
  rental_price: number | null;
  brand: string | null;
  available: boolean;
}

export interface PaginatedEquipment {
  items: EquipmentItem[];
  total: number;
  page: number;
  page_size: number;
  total_pages: number;
}

export type SortOption = "name_asc" | "name_desc";

export interface CartItem {
  equipment_id: number;
  name: string;
  quantity: number;
  rental_price: number | null;
  image_url: string | null;
}

export interface RentalRequestPayload {
  event_name: string;
  date_start: string;
  date_end: string;
  location: string;
  person_count: number;
  contact_name: string;
  contact_company: string;
  contact_email: string;
  contact_phone: string;
  contact_street: string;
  contact_postalcode: string;
  contact_city: string;
  message: string;
  items: { equipment_id: number; quantity: number }[];
}

export interface RentalRequestResponse {
  reference_number: string;
  status: string;
}
