<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class Task2010161508 extends AbstractMigration
{
    public function up(): void
    { 
        $this->execute("
            CREATE TABLE regulacao.croquis (
                id SERIAL,
                id_laudo INTEGER NOT NULL,
                ds_referencia_regulacao VARCHAR(50) NOT NULL,
                ds_nome_arquivo VARCHAR(100) NOT NULL,
                fl_vigente BOOLEAN NOT NULL DEFAULT FALSE,

                CONSTRAINT pk_regulacao_croquis PRIMARY KEY (id)
            ) INHERITS (public.campos_default)
        ");

        $this->execute("
            COMMENT ON COLUMN regulacao.croquis.id_laudo IS 'fk aberto apontando para o id_laudo das tabelas de laudo especifico.' 
        ");

        $this->execute("
            COMMENT ON COLUMN regulacao.croquis.ds_referencia_regulacao IS 'nome da tabela de referência do laudo.' 
        ");

        $this->execute("
            CREATE TABLE regulacao.croquis_talhoes (
                id SERIAL,
                id_croqui INTEGER NOT NULL,
                ds_nome VARCHAR(100) NOT NULL,
                fl_area numeric(14,4),
                ds_coordenadas TEXT NOT NULL,
                ds_item_segurado VARCHAR(100),

                CONSTRAINT pk_regulacao_croquis_talhoes PRIMARY KEY (id),
                CONSTRAINT fk_regulacao_croquis_talhoes_croquis FOREIGN KEY (id_croqui) REFERENCES regulacao.croquis(id)
            ) INHERITS (public.campos_default)
        ");
    }

    public function down(): void
    {
        $this->execute("
            DROP TABLE regulacao.croquis_talhoes;
        ");

        $this->execute("
            DROP TABLE regulacao.croquis;
        ");
    }
}
