<?php
/**
 * ASISMA CRM - Modelo Contacto
 */
class Contacto extends Model {
    protected $table = 'contactos';

    /**
     * Obtiene los contactos asociados a una empresa
     */
    public function getByEmpresa($empresaId) {
        return $this->getAll("empresa_id = :empresa_id AND activo = 1", ['empresa_id' => $empresaId], 'es_principal DESC, nombre ASC');
    }

    /**
     * Marca un contacto como principal y desmarca los otros de la misma empresa
     */
    public function setPrincipal($contactoId, $empresaId) {
        $this->db->beginTransaction();
        try {
            // Desmarcar todos como principales
            $this->db->update($this->table, ['es_principal' => 0], "empresa_id = :empresa_id", ['empresa_id' => $empresaId]);
            // Marcar el seleccionado como principal
            $this->db->update($this->table, ['es_principal' => 1], "id = :id", ['id' => $contactoId]);
            $this->db->commit();
            return true;
        } catch (Exception $e) {
            $this->db->rollBack();
            error_log("Error al setear contacto principal: " . $e->getMessage());
            return false;
        }
    }
}
