import { IBook } from './book.types';

export interface ICartItem {
  id: string;
  cartId: string;
  bookId: string;
  book: IBook;
  quantity: number;
  unitPrice: number;
  totalPrice: number;
  createdAt: string;
  updatedAt: string;
}

export interface ICart {
  id: string;
  userId?: string;
  guestToken?: string;
  items: ICartItem[];
  subtotal: number;
  itemCount: number;
  createdAt: string;
  updatedAt: string;
}

export interface IAddToCartRequest {
  bookId: string;
  quantity: number;
}

export interface IUpdateCartItemRequest {
  cartItemId: string;
  quantity: number;
}

export interface ICartSummary {
  subtotal: number;
  estimatedTax: number;
  shippingCost: number;
  discount: number;
  total: number;
}
