<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr59825 extends AbstractMigration
{
		public function up(): void
		{
				$this->execute(<<<SQL
						INSERT INTO sistema.configuracao_sistema (id_usuario_criacao, dt_criacao, ds_nome, ds_valor) VALUES (
								2068,
								now(),
								'MSG_SINISTRO_CONFIRMACAO',
'<i>Conforme determina a Lei nº 15.040/2024, o prazo para regulação do sinistro inicia-se somente após o envio completo e correto da documentação obrigatória exigida pela seguradora.
<br>
É <u>de responsabilidade exclusiva do usuário</u> garantir:
<br>
<ul>
	<li>A indexação correta dos documentos no sistema;</li>
	<li>O envio tempestivo dos arquivos exigidos;</li>
	<li>A veracidade e integridade das informações prestadas.</li>
</ul>
<br>
Ao prosseguir com o envio dos documentos, o usuário declara estar ciente de que:
<br>
<ul>
	<li>A contagem do prazo de regulação do sinistro será iniciada apenas após o recebimento completo e válido da documentação exigida;</li>
	<li>O sistema não se responsabiliza por documentos enviados fora dos padrões exigidos ou por falhas de indexação realizadas pelo usuário;</li>
	<li>O usuário é o único responsável pela conformidade documental, conforme previsto na Lei nº 15.040/2024 e nas normas da SUSEP.</li>
</ul>
<br>
O envio incompleto, incorreto ou fora dos padrões estabelecidos poderá:
<br>
<ul>
	<li>Tardar o início do prazo de regulação;</li>
	<li>Comprometer o andamento do processo de sinistro;</li>
	<li>Gerar responsabilização direta do usuário por eventuais atrasos ou perdas de direitos.</li>
</ul>
<br>
O uso indevido do sistema ou o envio de informações falsas ou incompletas poderá acarretar sanções civis ou contratuais, conforme previsto em regulamento interno e legislação vigente.
<br>
Para dúvidas sobre os documentos exigidos, consulte as Condições Gerais do Produto diretamente no site da Seguradora: </i> <a  rel="noopener noreferrer" target="_blank" href="https://essor.com.br/condicoes-gerais/">https://essor.com.br/condicoes-gerais/</a>
'
						);

						CREATE TABLE sinistro.confirmacao_termo_avisos_encerramento (
							id SERIAL NOT NULL,
							id_aviso_encerramento INT NOT NULL,
							CONSTRAINT pk_confirmacao_termo_avisos_encerramento PRIMARY KEY (id),
							CONSTRAINT fk_confirmacao_termo_avisos_encerramento FOREIGN KEY (id_aviso_encerramento) REFERENCES sinistro.avisos_encerramento (id)
						) INHERITS (public.campos_default) WITH (OIDS=FALSE);

						CREATE TABLE sinistro.confirmacao_termo_avisos_final_replantio (
							id SERIAL NOT NULL,
							id_aviso_final_replantio INT NOT NULL,
							CONSTRAINT pk_confirmacao_termo_avisos_final_replantio PRIMARY KEY (id),
							CONSTRAINT fk_confirmacao_termo_avisos_final_replantio FOREIGN KEY (id_aviso_final_replantio) REFERENCES sinistro.avisos_final_replantio (id)
						) INHERITS (public.campos_default) WITH (OIDS=FALSE);

						CREATE TABLE sinistro.confirmacao_termo_processos (
							id SERIAL NOT NULL,
							id_processo INT NOT NULL,
							CONSTRAINT pk_confirmacao_termo_processos PRIMARY KEY (id),
							CONSTRAINT fk_confirmacao_termo_processos FOREIGN KEY (id_processo) REFERENCES sinistro.processos (id)
						) INHERITS (public.campos_default) WITH (OIDS=FALSE);

						CREATE TABLE sinistro.confirmacao_termo_beneficiarios (
							id SERIAL NOT NULL,
							id_beneficiario INT NOT NULL,
							CONSTRAINT pk_confirmacao_termo_beneficiarios PRIMARY KEY (id),
							CONSTRAINT fk_confirmacao_termo_beneficiarios FOREIGN KEY (id_beneficiario) REFERENCES seguro.beneficiarios (id)
						) INHERITS (public.campos_default) WITH (OIDS=FALSE);
SQL
				);
		}

		public function down(): void
		{
				$this->execute(<<<SQL
						DROP TABLE sinistro.confirmacao_termo_beneficiarios;
						DROP TABLE sinistro.confirmacao_termo_processos;
						DROP TABLE sinistro.confirmacao_termo_avisos_final_replantio;
						DROP TABLE sinistro.confirmacao_termo_avisos_encerramento;
						DELETE FROM sistema.configuracao_sistema WHERE id_usuario_criacao = 2068 AND ds_nome = 'MSG_SINISTRO_CONFIRMACAO';
SQL
				);
		}
}
