// CAT-001 — shared types for rubros feature

export interface RubroTreeNode {
  id: number
  nombre: string
  orden: number
  activo: boolean
  parentId: number | null
  tarifarioBaseId: number | null
  // CAT-002: additive field — optional for backward-compat (PRD-002 always sends it)
  tieneAvisos?: boolean
  hijos: RubroTreeNode[]
}

export interface Rubro {
  id: number
  nombre: string
  orden: number
  activo: boolean
  parentId: number | null
  tarifarioBaseId: number | null
  fechaCreacion: string
  fechaModificacion: string | null
}

export interface CreateRubroRequest {
  nombre: string
  parentId: number | null
  tarifarioBaseId: number | null
}

export interface UpdateRubroRequest {
  nombre: string
  tarifarioBaseId: number | null
}

export interface MoveRubroRequest {
  nuevoParentId: number | null
  nuevoOrden: number
}
