import type { WizardForm } from '@/lib/publish'

export const STEP_TITLES = [
  'Identificación', 'Ubicación', 'Negocio', 'Ficha técnica', 'Narrativa', 'Contacto', 'Revisión',
]

export const WHY_PUBLISH: [string, string][] = [
  ['Alcance global', 'Conecta con compradores e inversionistas de la región y el mundo.'],
  ['Avisos mejorados', 'Presentación profesional para due diligence.'],
  ['Especialistas en pertenencias', 'Diseñado para la venta de activos mineros.'],
  ['Tráfico calificado', 'Compradores serios, no curiosos.'],
]

export const WHAT_NEXT = [
  'Nuestro equipo revisa tu aviso (hasta 24 h).',
  'Generamos un resumen profesional para compradores.',
  'Se publica y conecta con compradores e inversionistas.',
  'Recibes consultas directas por correo electrónico.',
]

// Descripciones cortas para las tarjetas selectables del asistente.
export const STAGE_DESC: Record<string, string> = {
  PROSPECCION: 'Identificación inicial de anomalías y observación de terreno. Sin sondajes ni recursos definidos.',
  EXPLORACION_BASICA: 'Mapeo, muestreo y primeras campañas. Definición de blancos a explorar.',
  EXPLORACION_AVANZADA: 'Sondajes sistemáticos con leyes que permiten estimar recursos y modelar el cuerpo.',
  PRE_DESARROLLO: 'Recursos definidos, plan minero y permisos en trámite. Listo para financiamiento.',
  PRODUCCION: 'Operación activa con producción de mineral. Faena e infraestructura instaladas.',
}

export const ASSET_TYPE_DESC: Record<string, string> = {
  TERRENO_PROYECTO: 'Yacimiento o proyecto, con o sin concesiones constituidas.',
  CONCESION_MINERA: 'Concesión de exploración o explotación con superficie definida e inscrita.',
  RELAVE_RIPIO_ESCORIA: 'Relaves, ripios o escorias con contenido recuperable para reprocesamiento.',
  INFRAESTRUCTURA_PLANTA: 'Planta de procesamiento o infraestructura independiente del yacimiento.',
}

export const OFFER_TYPE_DESC: Record<string, string> = {
  VENTA_TOTAL: 'Transferencia del 100% del activo.',
  VENTA_PARCIAL: 'Cesión de un porcentaje o asociación con un socio.',
}

export const DEAL_TYPE_DESC: Record<string, string> = {
  ADQUISICION: 'Compra directa del activo o de la sociedad titular.',
  VENTA_100: 'Transferencia del 100% de la propiedad.',
  VENTA_PARCIAL: 'Venta de un porcentaje de la propiedad.',
  EARN_IN: 'Un socio invierte en exploración para ganar participación.',
  FARM_IN: 'Aporte de capital o trabajo a cambio de participación futura.',
  ROYALTY: 'Pago por tonelada o porcentaje sobre la producción.',
  OPCION_COMPRA: 'Derecho a comprar en un plazo y precio acordados.',
  OFF_TAKE: 'Compromiso de compra de la producción futura.',
  SPIN_OUT: 'Segregación del activo a una nueva sociedad.',
  ARRIENDO: 'Cesión temporal de uso a cambio de una renta.',
  PARTICIPACION_ACCIONARIA: 'Entrada como accionista de la sociedad titular.',
  ACUERDO_TRIBUTO: 'Operación a tributo / maquila con el titular.',
  ALIANZA_ESTRATEGICA: 'Acuerdo de colaboración o JV de largo plazo.',
}

export const SELLER_TYPE_DESC: Record<string, string> = {
  PERSONA_NATURAL: 'Persona natural, titular individual del activo.',
  PERSONA_JURIDICA: 'Empresa o sociedad titular de las pertenencias.',
  ESTADO: 'El Estado u organismo estatal como titular.',
}

// Generador por plantillas (sin IA real / sin red).
export function generarHeadline(form: WizardForm): string {
  const mineral = form.primaryCommodity || form.commodities[0] || 'mineral'
  const lugar = [form.city, form.region].filter(Boolean).join(', ')
  const sup = form.surfaceHa ? `${form.surfaceHa} ha de ` : ''
  const etapa = form.stage ? form.stage.toLowerCase().replace(/_/g, ' ') : 'exploración'
  return `${sup}${mineral} en ${lugar || form.country} — ${form.mineralizationType || 'proyecto'} en etapa de ${etapa}.`
}

export function generarResumen(form: WizardForm): string {
  const ubic = [form.city, form.region, form.country].filter(Boolean).join(', ')
  const trabajos = form.works.length ? ` Trabajos realizados: ${form.works.join(', ').toLowerCase()}.` : ''
  const trato = form.dealTypes.length ? ` Disponible para ${form.dealTypes.join(', ')}.` : ''
  const motivo = form.sellReason ? ` Motivo: ${form.sellReason}.` : ''
  return `${form.title || 'Proyecto minero'} ubicado en ${ubic}.${trabajos}${trato}${motivo}`.trim()
}
