// PRD-001 — shared types for product-types feature

export interface ProductTypeListItem {
  id: number
  nombre: string
  hasDuration: boolean
  requiresText: boolean
  requiresCategory: boolean
  isBundle: boolean
  allowImages: boolean
  isActive: boolean
}

export interface ProductTypeDetail {
  id: number
  nombre: string
  hasDuration: boolean
  requiresText: boolean
  requiresCategory: boolean
  isBundle: boolean
  allowImages: boolean
  maxImages: number | null
  maxImageSizeMB: number | null
  maxImageWidth: number | null
  maxImageHeight: number | null
  isActive: boolean
  fechaCreacion: string
  fechaModificacion: string | null
}

export interface CreateProductTypeRequest {
  nombre: string
  hasDuration: boolean
  requiresText: boolean
  requiresCategory: boolean
  isBundle: boolean
  allowImages: boolean
  maxImages?: number | null
  maxImageSizeMB?: number | null
  maxImageWidth?: number | null
  maxImageHeight?: number | null
}

export interface UpdateProductTypeRequest {
  nombre: string
  hasDuration: boolean
  requiresText: boolean
  requiresCategory: boolean
  isBundle: boolean
  allowImages: boolean
  maxImages?: number | null
  maxImageSizeMB?: number | null
  maxImageWidth?: number | null
  maxImageHeight?: number | null
}

export interface PagedResult<T> {
  items: T[]
  page: number
  pageSize: number
  total: number
}

export interface ListProductTypesParams {
  page?: number
  pageSize?: number
  activo?: boolean | null
  search?: string
}
