<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class CalificacionesTable extends AbstractMigration
{
    public function change(): void
    {
        $table = $this->table('calificaciones');
        $table
            ->addColumn('pedido_id', 'integer', ['signed' => false])
            ->addColumn('origen_tipo', 'enum', ['values' => ['cliente', 'tienda']])
            ->addColumn('repartidor_id', 'integer', ['signed' => false])
            ->addColumn('puntuacion', 'integer', ['limit' => 1])
            ->addColumn('comentario', 'text', ['null' => true])
            ->addColumn('created_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP'])
            ->addForeignKey('pedido_id', 'pedidos', 'id', ['delete' => 'CASCADE', 'update' => 'CASCADE'])
            ->addForeignKey('repartidor_id', 'repartidores', 'id', ['delete' => 'CASCADE', 'update' => 'CASCADE'])
            ->addIndex(['pedido_id', 'origen_tipo'], ['unique' => true])
            ->create();
    }
}
