<?php declare(strict_types=1);

class Seguro_Model_PropostaCentroideCar extends Agro_Db_Table_Abstract
{
    protected $_log = true;
	protected $_schema = 'seguro';
	protected $_name = 'proposta_centroide_car';
	protected $_primary = 'id';

    public function save(array $data): int
    {
        $row = $this->getRow($data['id']);

        $row->id_proposta = $data['id_proposta'];
        $row->ds_numero_car = $data['ds_numero_car'];
        $row->geom_centroide = new Zend_Db_Expr("ST_GeomFromText('POINT({$data['longitude']} {$data['latitude']})', 4326)");
        
        return $row->save();
    }

    public function getByCoordenadas(float $latitude, float $longitude): ?Zend_Db_Table_Row
    {
        $select = $this->select()
            ->from(['pcc' => 'seguro.proposta_centroide_car'])
            ->where('ST_Y(geom_centroide) = ?', $latitude)
            ->where('ST_X(geom_centroide) = ?', $longitude);

        return $this->fetchRow($select);
    }

    public function getByNumeroCar(string $numeroCar): ?Zend_Db_Table_Row
    {
        $select = $this->select()
            ->from(['pcc' => 'seguro.proposta_centroide_car'])
            ->where('ds_numero_Car = ?', $numeroCar);

        return $this->fetchRow($select);
    }
}