START TRANSACTION;

/*
  Seed rápido de tarefas para institucionalizar changelogs nos repositórios pessoais.

  Ajuste estes valores antes de executar, se necessário:
  - @criador_id: usuário que ficará como criador das tarefas
  - @id_contrato: contrato vinculado; deixe NULL se quiser tarefa sem contrato
*/

SET @criador_id  := 22178;
SET @id_contrato := 57;

SET @resp_pedro := 22175; /* Pedro Barbosa */
SET @resp_lucas := 22174; /* Lucas Chacon */

SET @inicio_hoje := CURDATE();
SET @prazo_final := DATE_ADD(CURDATE(), INTERVAL 2 DAY);

/* =========================================================
   TAREFA 1 - PEDRO
   ========================================================= */
INSERT INTO wpjy_tarefas (
  id_contrato,
  titulo,
  descricao,
  status,
  prioridade,
  tipo,
  data_inicio,
  data_fim_prevista,
  progresso,
  visibilidade,
  etiquetas,
  criador_id,
  responsavel_id
) VALUES (
  @id_contrato,
  'Governança de changelogs no GitHub - Pedro Barbosa',
  CONCAT(
    'Objetivo:', CHAR(10),
    'Estruturar no repositório pessoal do GitHub um diretório padrão docs/changelogs e registrar nesse local os changelogs de todas as entregas realizadas, usando apoio da IA para gerar os arquivos em formato executivo orientado a produto.', CHAR(10), CHAR(10),
    'Escopo obrigatório:', CHAR(10),
    '- Criar o diretório docs/changelogs no repositório do GitHub.', CHAR(10),
    '- Passar a registrar changelog de tudo que for entregue no repositório.', CHAR(10),
    '- Em toda nova solicitação para IA relacionada a implementação, ajuste, correção ou melhoria, pedir também a geração do changelog correspondente.', CHAR(10),
    '- Solicitar que a IA gere um arquivo pronto para download/publicação e salvar esse arquivo no diretório docs/changelogs.', CHAR(10),
    '- Subir os changelogs junto com as entregas no GitHub sempre que houver trabalho concluído.', CHAR(10), CHAR(10),
    'Padrão esperado dos changelogs:', CHAR(10),
    '- Escrever como produto, não como dev.', CHAR(10),
    '- Foco em valor entregue.', CHAR(10),
    '- Linguagem clara, objetiva e estratégica.', CHAR(10),
    '- Estrutura mínima: título estratégico, tipo, impacto, módulo, resumo executivo, entregas realizadas, estratégia aplicada e resultado.', CHAR(10),
    '- Não usar linguagem vaga nem detalhe técnico desnecessário.', CHAR(10), CHAR(10),
    'Fluxo operacional esperado:', CHAR(10),
    '1. Criar docs/changelogs no repositório.', CHAR(10),
    '2. A cada entrega, abrir ou pedir à IA um changelog no padrão corporativo.', CHAR(10),
    '3. Solicitar o arquivo final pronto para baixar/salvar.', CHAR(10),
    '4. Colocar o arquivo dentro de docs/changelogs.', CHAR(10),
    '5. Versionar e subir junto com o restante da entrega no GitHub.', CHAR(10), CHAR(10),
    'Critérios de aceite:', CHAR(10),
    '- Diretório docs/changelogs criado no repositório.', CHAR(10),
    '- Processo de changelog incorporado ao fluxo de trabalho.', CHAR(10),
    '- Pelo menos um changelog de referência criado ou primeiro uso validado.', CHAR(10),
    '- Comentário final explicando que o repositório ficou preparado para manter histórico executivo das entregas.', CHAR(10), CHAR(10),
    'Orientações de execução, timer e status:', CHAR(10),
    '- Ao iniciar, mudar a tarefa para em_andamento e ligar o timer.', CHAR(10),
    '- Se houver bloqueio de acesso ao repositório, GitHub, branch ou fluxo de publicação, parar o timer, comentar o bloqueio e mudar para bloqueada.', CHAR(10),
    '- Ao retomar, voltar para em_andamento e religar o timer.', CHAR(10),
    '- Ao concluir, parar o timer, revisar checklist, registrar comentário final com o que foi estruturado e então mudar para concluida.'
  ),
  'aberta',
  'alta',
  'tarefa',
  @inicio_hoje,
  @prazo_final,
  0,
  'equipe',
  'github,changelog,governanca,documentacao',
  @criador_id,
  @resp_pedro
);

SET @tarefa_pedro := LAST_INSERT_ID();

INSERT INTO wpjy_tarefas_atribuidos (id_tarefa, alvo_tipo, alvo_id, papel, created_at)
VALUES (@tarefa_pedro, 'usuario', @resp_pedro, 'responsavel', NOW());

INSERT INTO wpjy_tarefas_checklist (id_tarefa, titulo, feito, ordem, created_at) VALUES
(@tarefa_pedro, 'Abrir a tarefa, alterar status para em_andamento e ligar o timer no início da execução', 0, 1, NOW()),
(@tarefa_pedro, 'Criar o diretório docs/changelogs no repositório do GitHub', 0, 2, NOW()),
(@tarefa_pedro, 'Validar que o diretório fará parte do fluxo padrão do repositório', 0, 3, NOW()),
(@tarefa_pedro, 'Definir que toda entrega deverá ter changelog correspondente nesse diretório', 0, 4, NOW()),
(@tarefa_pedro, 'Passar a pedir à IA um changelog a cada nova requisição de trabalho relevante', 0, 5, NOW()),
(@tarefa_pedro, 'Solicitar à IA a geração do arquivo final pronto para download/publicação', 0, 6, NOW()),
(@tarefa_pedro, 'Salvar o arquivo gerado dentro de docs/changelogs', 0, 7, NOW()),
(@tarefa_pedro, 'Subir o diretório e os changelogs junto com as entregas no GitHub', 0, 8, NOW()),
(@tarefa_pedro, 'Registrar comentário final e encerrar timer antes de concluir', 0, 9, NOW());

INSERT INTO wpjy_tarefas_log (id_tarefa, user_id, acao, de_val, para_val, created_at)
VALUES
(@tarefa_pedro, @criador_id, 'criada', NULL, 'Tarefa criada via SQL para governança de changelogs no GitHub', NOW()),
(@tarefa_pedro, @criador_id, 'atribuido', NULL, CAST(@resp_pedro AS CHAR), NOW());

/* =========================================================
   TAREFA 2 - LUCAS
   ========================================================= */
INSERT INTO wpjy_tarefas (
  id_contrato,
  titulo,
  descricao,
  status,
  prioridade,
  tipo,
  data_inicio,
  data_fim_prevista,
  progresso,
  visibilidade,
  etiquetas,
  criador_id,
  responsavel_id
) VALUES (
  @id_contrato,
  'Governança de changelogs no GitHub - Lucas Chacon',
  CONCAT(
    'Objetivo:', CHAR(10),
    'Estruturar no repositório pessoal do GitHub um diretório padrão docs/changelogs e registrar nesse local os changelogs de todas as entregas realizadas, usando apoio da IA para gerar os arquivos em formato executivo orientado a produto.', CHAR(10), CHAR(10),
    'Escopo obrigatório:', CHAR(10),
    '- Criar o diretório docs/changelogs no repositório do GitHub.', CHAR(10),
    '- Passar a registrar changelog de tudo que for entregue no repositório.', CHAR(10),
    '- Em toda nova solicitação para IA relacionada a implementação, ajuste, correção ou melhoria, pedir também a geração do changelog correspondente.', CHAR(10),
    '- Solicitar que a IA gere um arquivo pronto para download/publicação e salvar esse arquivo no diretório docs/changelogs.', CHAR(10),
    '- Subir os changelogs junto com as entregas no GitHub sempre que houver trabalho concluído.', CHAR(10), CHAR(10),
    'Padrão esperado dos changelogs:', CHAR(10),
    '- Escrever como produto, não como dev.', CHAR(10),
    '- Foco em valor entregue.', CHAR(10),
    '- Linguagem clara, objetiva e estratégica.', CHAR(10),
    '- Estrutura mínima: título estratégico, tipo, impacto, módulo, resumo executivo, entregas realizadas, estratégia aplicada e resultado.', CHAR(10),
    '- Não usar linguagem vaga nem detalhe técnico desnecessário.', CHAR(10), CHAR(10),
    'Fluxo operacional esperado:', CHAR(10),
    '1. Criar docs/changelogs no repositório.', CHAR(10),
    '2. A cada entrega, abrir ou pedir à IA um changelog no padrão corporativo.', CHAR(10),
    '3. Solicitar o arquivo final pronto para baixar/salvar.', CHAR(10),
    '4. Colocar o arquivo dentro de docs/changelogs.', CHAR(10),
    '5. Versionar e subir junto com o restante da entrega no GitHub.', CHAR(10), CHAR(10),
    'Critérios de aceite:', CHAR(10),
    '- Diretório docs/changelogs criado no repositório.', CHAR(10),
    '- Processo de changelog incorporado ao fluxo de trabalho.', CHAR(10),
    '- Pelo menos um changelog de referência criado ou primeiro uso validado.', CHAR(10),
    '- Comentário final explicando que o repositório ficou preparado para manter histórico executivo das entregas.', CHAR(10), CHAR(10),
    'Orientações de execução, timer e status:', CHAR(10),
    '- Ao iniciar, mudar a tarefa para em_andamento e ligar o timer.', CHAR(10),
    '- Se houver bloqueio de acesso ao repositório, GitHub, branch ou fluxo de publicação, parar o timer, comentar o bloqueio e mudar para bloqueada.', CHAR(10),
    '- Ao retomar, voltar para em_andamento e religar o timer.', CHAR(10),
    '- Ao concluir, parar o timer, revisar checklist, registrar comentário final com o que foi estruturado e então mudar para concluida.'
  ),
  'aberta',
  'alta',
  'tarefa',
  @inicio_hoje,
  @prazo_final,
  0,
  'equipe',
  'github,changelog,governanca,documentacao',
  @criador_id,
  @resp_lucas
);

SET @tarefa_lucas := LAST_INSERT_ID();

INSERT INTO wpjy_tarefas_atribuidos (id_tarefa, alvo_tipo, alvo_id, papel, created_at)
VALUES (@tarefa_lucas, 'usuario', @resp_lucas, 'responsavel', NOW());

INSERT INTO wpjy_tarefas_checklist (id_tarefa, titulo, feito, ordem, created_at) VALUES
(@tarefa_lucas, 'Abrir a tarefa, alterar status para em_andamento e ligar o timer no início da execução', 0, 1, NOW()),
(@tarefa_lucas, 'Criar o diretório docs/changelogs no repositório do GitHub', 0, 2, NOW()),
(@tarefa_lucas, 'Validar que o diretório fará parte do fluxo padrão do repositório', 0, 3, NOW()),
(@tarefa_lucas, 'Definir que toda entrega deverá ter changelog correspondente nesse diretório', 0, 4, NOW()),
(@tarefa_lucas, 'Passar a pedir à IA um changelog a cada nova requisição de trabalho relevante', 0, 5, NOW()),
(@tarefa_lucas, 'Solicitar à IA a geração do arquivo final pronto para download/publicação', 0, 6, NOW()),
(@tarefa_lucas, 'Salvar o arquivo gerado dentro de docs/changelogs', 0, 7, NOW()),
(@tarefa_lucas, 'Subir o diretório e os changelogs junto com as entregas no GitHub', 0, 8, NOW()),
(@tarefa_lucas, 'Registrar comentário final e encerrar timer antes de concluir', 0, 9, NOW());

INSERT INTO wpjy_tarefas_log (id_tarefa, user_id, acao, de_val, para_val, created_at)
VALUES
(@tarefa_lucas, @criador_id, 'criada', NULL, 'Tarefa criada via SQL para governança de changelogs no GitHub', NOW()),
(@tarefa_lucas, @criador_id, 'atribuido', NULL, CAST(@resp_lucas AS CHAR), NOW());

COMMIT;
