<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class CotizacionesTable extends AbstractMigration
{
    public function change(): void
    {
        $table = $this->table('cotizaciones');
        $table
            ->addColumn('zona_id', 'integer', ['null' => true, 'signed' => false])
            ->addColumn('pedido_id', 'integer', ['null' => true, 'signed' => false])
            ->addColumn('origen_lat', 'decimal', ['precision' => 10, 'scale' => 7])
            ->addColumn('origen_lng', 'decimal', ['precision' => 10, 'scale' => 7])
            ->addColumn('destino_lat', 'decimal', ['precision' => 10, 'scale' => 7])
            ->addColumn('destino_lng', 'decimal', ['precision' => 10, 'scale' => 7])
            ->addColumn('distancia_km', 'decimal', ['precision' => 8, 'scale' => 2])
            ->addColumn('duracion_min', 'decimal', ['precision' => 8, 'scale' => 1, 'null' => true])
            ->addColumn('total', 'decimal', ['precision' => 10, 'scale' => 2])
            ->addColumn('created_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP'])
            ->addForeignKey('zona_id', 'zonas', 'id', ['delete' => 'SET_NULL', 'update' => 'CASCADE'])
            ->addForeignKey('pedido_id', 'pedidos', 'id', ['delete' => 'SET_NULL', 'update' => 'CASCADE'])
            ->create();
    }
}
