<?php
declare(strict_types=1);

use Phinx\Migration\AbstractMigration;

final class TaskINC63553 extends AbstractMigration
{
    public function up(): void
    {
        $this->execute(<<<SQL
INSERT INTO produto.gestao_comissao_cultura_usuario
     SELECT 2068 as id_usuario_criacao,
            null as id_usuario_alteracao,
            now() as dt_criacao,
            null as dt_alteracao,
            true as fl_ativo,
            false as fl_del,
            nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
            18 as id_gestao_comissao,
            7 as id_cultura,
            su.id as id_usuario
       FROM sistema.usuarios su
            INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
      WHERE su.fl_ativo is true
        AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
     SELECT 2068 as id_usuario_criacao,
            null as id_usuario_alteracao,
            now() as dt_criacao,
            null as dt_alteracao,
            true as fl_ativo,
            false as fl_del,
            nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
            18 as id_gestao_comissao,
            7 as id_cultura,
            su.id as id_usuario
     FROM sistema.usuarios su
              INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
     WHERE su.fl_ativo is true
       AND sp.fl_ativo is true;


INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       62 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       62 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sp.fl_ativo is true;


INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       69 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       69 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sp.fl_ativo is true;


INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       6 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       6 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sp.fl_ativo is true;


INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       28 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       28 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sp.fl_ativo is true;


INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       80 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       80 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sp.fl_ativo is true;


INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       81 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.corretores sc on sc.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sc.fl_ativo is true;

INSERT INTO produto.gestao_comissao_cultura_usuario
SELECT 2068 as id_usuario_criacao,
       null as id_usuario_alteracao,
       now() as dt_criacao,
       null as dt_alteracao,
       true as fl_ativo,
       false as fl_del,
       nextval('produto.gestao_comissao_cultura_usuario_id_seq'::regclass) as id,
       18 as id_gestao_comissao,
       81 as id_cultura,
       su.id as id_usuario
FROM sistema.usuarios su
         INNER JOIN sistema.prepostos sp on sp.id_usuario = su.id
WHERE su.fl_ativo is true
  AND sp.fl_ativo is true;
SQL
        );
    }

    public function down(): void
    {
        $this->execute(<<<SQL
DELETE FROM produto.gestao_comissao_cultura_usuario WHERE id_gestao_comissao = 18 AND id_usuario <> 2639;
SQL
        );
    }
}
