// Square catalog types
export interface SquareProduct {
  id: string
  variationId: string
  name: string
  description: string
  price: number
  currency: string
  imageUrl: string
  inventory: number
  category: string
  categoryName?: string
  isAvailable: boolean
  variations: SquareVariation[]
}

export interface SquareVariation {
  id: string
  name: string
  price: number
  currency: string
  inventory: number
  sku?: string
}

export interface SquareCategory {
  id: string
  name: string
  imageUrl?: string
}

export interface SquareInventory {
  catalogObjectId: string
  quantity: number
  locationId: string
  state: 'IN_STOCK' | 'SOLD' | 'WASTE' | 'NONE'
}

// Payment types
export interface PaymentRequest {
  sourceId: string
  orderId?: string
  amount: number
  currency: string
  customerInfo: CustomerInfo
  items: CartItem[]
}

export interface CustomerInfo {
  name: string
  email: string
  phone?: string
  address?: {
    street: string
    city: string
    state: string
    zipCode: string
    country?: string
  }
}

export interface CartItem {
  id: string
  variationId: string
  name: string
  price: number
  quantity: number
  description?: string
}

export interface OrderResult {
  orderId: string
  paymentId: string
  status: string
  totalAmount: number
  receiptUrl?: string
}
