<?php

declare(strict_types=1);

namespace DoctrineMigrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

final class Version20260401000001 extends AbstractMigration
{
    public function getDescription(): string
    {
        return 'Ajout table push_subscription';
    }

    public function up(Schema $schema): void
    {
        $this->addSql('
            CREATE TABLE push_subscription (
                id UUID NOT NULL DEFAULT gen_random_uuid(),
                coastal_point_id UUID,
                endpoint TEXT NOT NULL,
                auth_token TEXT NOT NULL,
                p256dh_key TEXT NOT NULL,
                created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL,
                PRIMARY KEY(id),
                UNIQUE (endpoint)
            )
        ');
        $this->addSql('ALTER TABLE push_subscription ADD CONSTRAINT fk_push_coastal_point FOREIGN KEY (coastal_point_id) REFERENCES coastal_point (id) ON DELETE SET NULL');
        $this->addSql('CREATE INDEX idx_push_coastal_point ON push_subscription (coastal_point_id)');
    }

    public function down(Schema $schema): void
    {
        $this->addSql('DROP TABLE IF EXISTS push_subscription');
    }
}
