<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskSr48259 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
            ALTER TABLE produto.produtos ADD COLUMN ds_url_condicoes VARCHAR(255);
            UPDATE produto.produtos SET ds_url_condicoes = 'https://essor.com.br/condicoes-gerais/';
            ALTER TABLE produto.produtos ALTER COLUMN ds_url_condicoes SET NOT NULL;

            INSERT INTO sistema.configuracao_sistema (id_usuario_criacao, dt_criacao, ds_nome, ds_valor)
                VALUES (2068, now(), 'DATA_ALTERACAO_CONDICOES_PROPOSTA', '06/11/2024');

            INSERT INTO sistema.configuracao_sistema (id_usuario_criacao, dt_criacao, ds_nome, ds_valor)
                VALUES (2068, now(), 'DECLARACAO_PROPONENTE_CONDICOES_SUSEP',
                            '<b><u>DECLARO</u></b> que tomei ciência das Condições dos Programas de Subvenção ao Prêmio do Seguro dos Governos Federal e Estadual e <b>ESTOU DE ACORDO COM SUAS CONDIÇÕES</b>.
							Se, por qualquer motivo, o Governo Federal e/ou Estadual não conceda subsídio ao prêmio para esta proposta, <b>ME RESPONSABILIZO PELO CUSTO INTEGRAL DO SEGURO</b>.
							<b><u>DECLARO</u></b> ter ciência e <b>CONCORDO</b> com as Condições Gerais deste seguro, para as quais não tenho dúvidas, acatando-as como parte integrante desta proposta. 
                            O proponente, por si, seus sócios, diretores, empregados, agentes prepostos, e outras pessoas que venham a agir em seu nome, direta e indiretamente, DECLARA que tem conhecimento do Código de Conduta da Essor disponível no site ("https://essor.com.br/") e, ainda, que se absterá da prática de violações aos direitos humanos, bem como cumprirá quaisquer legislação, regulamentações e normativos aplicáveis à proteção e respeito a estes direitos na condução de suas atividades, sob pena de cancelamento da apólice e perda de direito à indenização nos termos das condições deste contrato de seguro.
							<b>CONFIRMO COMO VERDADEIRAS, COMPLETAS E EXATAS</b> todas as declarações que prestei a esta proposta, seja a respeito do objeto, como das circunstâncias, <b>SOB PENA DE PERDA DO DIREITO À GARANTIA</b>, além de ficar obrigado ao pagamento do prêmio vencido (Art. 766 do Código Civil).
							<b><u>COMPROMETO-ME</u></b> a comunicar à Seguradora qualquer alteração relativa ao seguro assim que ocorra e estou ciente de que esse fato será objeto de nova análise por parte da Seguradora, podendo resultar em ajuste de prêmio ou até mesmo cancelamento do seguro. Estas informações poderão ser auditadas pela Seguradora.
							Tenho ciência dos anexos a esta Proposta, <b>CUJAS CÓPIAS RECEBI NO ATO DA SUA ASSINATURA, ACEITANDO-OS NA ÍNTEGRA.</b>
							<b>Tenho ciência de que não terei direito a indenização se estiver em atraso no pagamento do prêmio</b>, se o sinistro ocorrer antes da quitação das parcelas vencidas e não pagas (Art. 763 do Código Civil).
							
							<b>AUTORIZO</b> o uso de meio eletrônico pela Seguradora para o contato e envio de informações referentes ao seguro, inclusive envio de apólices e boletos.
							
							Solicito cobertura provisória de seguro, que se inicia conforme vigência especificada nesta presente proposta, e estou ciente de que a mesma está condicionada ao pagamento antecipado de prêmio, total ou parcial.');
            
            UPDATE produto.produtos SET ds_frase_restricoes = TRIM(ds_frase_restricoes) || '
Para fins da Cláusula 9.1 - alínea d das Condições Gerais do Seguro, com exceção ao período de plantio definido na proposta, soberano e independente de qualquer outra norma ou disposição, são consideradas recomendações técnicas dos órgãos oficiais aquelas definidas pelo Zoneamento Agrícola de Risco Climático (ZARC) publicado pelo Ministério da Agricultura, Pecuária e Abastecimento (MAPA) para o ano vigente. A condução da cultura segurada pelo proponente em desacordo, parcial ou total, às demais estritas condições e/ou orientações emanadas pelo MAPA, dentre outras de igual relevância, acarretará na ineficácia absoluta da cobertura e no imediato cancelamento do contrato de seguro por não aquisição do direito à garantia.' where id_safra = (select id from produto.safras where fl_vigente is true) AND ds_frase_restricoes is not null;

            UPDATE produto.produtos SET ds_frase_restricoes = '
Para fins da Cláusula 9.1 - alínea d das Condições Gerais do Seguro, com exceção ao período de plantio definido na proposta, soberano e independente de qualquer outra norma ou disposição, são consideradas recomendações técnicas dos órgãos oficiais aquelas definidas pelo Zoneamento Agrícola de Risco Climático (ZARC) publicado pelo Ministério da Agricultura, Pecuária e Abastecimento (MAPA) para o ano vigente. A condução da cultura segurada pelo proponente em desacordo, parcial ou total, às demais estritas condições e/ou orientações emanadas pelo MAPA, dentre outras de igual relevância, acarretará na ineficácia absoluta da cobertura e no imediato cancelamento do contrato de seguro por não aquisição do direito à garantia.' where id_safra = (select id from produto.safras where fl_vigente is true) AND ds_frase_restricoes is null;
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
            UPDATE produto.produtos SET ds_frase_restricoes = REPLACE(ds_frase_restricoes, '
Para fins da Cláusula 9.1 - alínea d das Condições Gerais do Seguro, com exceção ao período de plantio definido na proposta, soberano e independente de qualquer outra norma ou disposição, são consideradas recomendações técnicas dos órgãos oficiais aquelas definidas pelo Zoneamento Agrícola de Risco Climático (ZARC) publicado pelo Ministério da Agricultura, Pecuária e Abastecimento (MAPA) para o ano vigente. A condução da cultura segurada pelo proponente em desacordo, parcial ou total, às demais estritas condições e/ou orientações emanadas pelo MAPA, dentre outras de igual relevância, acarretará na ineficácia absoluta da cobertura e no imediato cancelamento do contrato de seguro por não aquisição do direito à garantia.', '') where id_safra = (select id from produto.safras where fl_vigente is true);
            UPDATE produto.produtos SET ds_frase_restricoes = TRIM(ds_frase_restricoes) where id_safra = (select id from produto.safras where fl_vigente is true);
            DELETE FROM sistema.configuracao_sistema WHERE id_usuario_criacao = '2068' AND ds_nome = 'DECLARACAO_PROPONENTE_CONDICOES_SUSEP';
            DELETE FROM sistema.configuracao_sistema WHERE id_usuario_criacao = '2068' AND ds_nome = 'DATA_ALTERACAO_CONDICOES_PROPOSTA';
            ALTER TABLE produto.produtos DROP COLUMN ds_url_condicoes;
SQL
        );
    }
}
