Untitled

mail@pastecode.io avatar
unknown
php
a year ago
43 kB
1
Indexable
Never
<?php

add_action( 'admin_enqueue_scripts', 'dw_scripts' );
function dw_scripts( $hook ) {
	if ( 'index.php' === $hook ) {
		wp_enqueue_style( 'dw_style', plugin_dir_url( __FILE__ ) . 'dashboard-style.css', array(), '1.0' );
	}
}

// ADICIONA WIDGETS
function wpdocs_add_dashboard_widgets() {
  // Remove Welcome panel and all Dashboard widgets
  remove_action( 'welcome_panel', 'wp_welcome_panel' );
  global $wp_meta_boxes;
  unset( $wp_meta_boxes['dashboard'] );

  wp_add_dashboard_widget( 'dashboard_widget', 'STARTUPS', 'dashboard_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget2', 'CHAMADAS', 'dashboard2_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget3', 'INSCRIÇÕES', 'dashboard3_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget4', 'INSCRIÇÕES - POR FASE DO NEGÓCIO', 'dashboard4_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget5', 'INSCRIÇÕES - POR GÊNERO DOS FUNDADORES', 'dashboard5_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget6', 'INSCRIÇÕES - POR ESTADO', 'dashboard6_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget7', 'INSCRIÇÕES - POR FAIXA ETÁRIA', 'dashboard7_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget8', 'CADASTROS ATUALIZADOS (a partir de 01/05/23)', 'dashboard8_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget9', 'UPDATES - POR FASE DO NEGÓCIO (a partir de 01/05/23)', 'dashboard9_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget10', 'UPDATES - POR GÊNERO DOS FUNDADORES (a partir de 01/05/23)', 'dashboard10_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget11', 'UPDATES - POR ESTADO (a partir de 01/05/23)', 'dashboard11_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget12', 'UPDATES - POR FAIXA ETÁRIA (a partir de 01/05/23)', 'dashboard12_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget13', 'NOVOS CADASTROS (a partir de 01/05/23)', 'dashboard13_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget14', 'NOVOS CADASTROS - POR FASE DO NEGÓCIO (a partir de 01/05/23)', 'dashboard14_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget15', 'NOVOS CADASTROS - POR GÊNERO DOS FUNDADORES (a partir de 01/05/23)', 'dashboard15_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget16', 'NOVOS CADASTROS - POR ESTADO (a partir de 01/05/23)', 'dashboard16_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget17', 'NOVOS CADASTROS - POR FAIXA ETÁRIA (a partir de 01/05/23)', 'dashboard17_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget18', 'CADASTROS PUBLICADOS (a partir de 01/05/23)', 'dashboard18_widget_function' );
  wp_add_dashboard_widget( 'dashboard_widget19', 'CADASTROS INCOMPLETOS (a partir de 01/05/23)', 'dashboard19_widget_function' );
}
add_action( 'wp_dashboard_setup', 'wpdocs_add_dashboard_widgets' );

// STARTUPS
function dashboard_widget_function( $post, $callback_args ) {
  $n_startups_por_area = get_area_de_impacto_post_count();
  $n_startups = total_startups_number();
  $n_startups_publicadas = total_startups_publicadas();
  $n_startups_cadastradas_ultima_semana = total_startups_cadastradas_ultima_semana();
  $arr_n_startups_por_area = array(
    'Cidadania / Civic Tech' => $n_startups_por_area[2],
    'Cidades / Smart Cities' => $n_startups_por_area[3],
    'Educação / Edtech' => $n_startups_por_area[4],
    'Saúde / Health Tech' => $n_startups_por_area[5],
    'Finanças / Fintech' => $n_startups_por_area[6],
    'Tecnologias Verdes / Green Tech' => $n_startups_por_area[7],
  );
  $arr_n_startups_por_classification = array(
    'Negócio de Impacto' => get_classification_post_count(9),
    'Cadastro mal preenchido' => get_classification_post_count(11)
  );

  echo "<div class='activity-block'>
          <div class='widget-header'>
            <h3>Cadastradas</h3>
          </div>
          <ul class='widget-list'>
            <li>Total<span class='float-right'>$n_startups</span></li>
            <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$n_startups_cadastradas_ultima_semana</span></li>
          </ul>
        </div>";
  echo "<div class='activity-block'>
          <div class='widget-header'>
            <h3>Publicadas</h3>
          </div>
          <ul class='widget-list'>
            <li>Total <span class='float-right'>$n_startups_publicadas</span></li>";
            foreach($arr_n_startups_por_area as $k => $v) {
              echo "<li>$k<span class='float-right'>$v</span></li>";
            };
  echo "</ul>
        </div>";
  echo "<div class='activity-block'>
          <div class='widget-header'>
            <h3>Classificadas</h3>
          </div>
          <ul class='widget-list'>";
            foreach($arr_n_startups_por_classification as $k => $v) {
              echo "<li>$k<span class='float-right'>$v</span></li>";
            };
  echo "</ul>
        </div>";
}

// CHAMADAS
function dashboard2_widget_function( $post, $callback_args ) {
  $n_chamadas_ativas = total_chamadas_ativas();
  $n_chamadas = total_chamadas();
  $chamadas_ativas = chamadas_ativas();
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Total<span class='float-right'>$n_chamadas</span></li>
            <li>Ativas (em andamento)<span class='float-right'>$n_chamadas_ativas</span></li>
          </ul>
        </div>";
}

// INSCRICOES
function dashboard3_widget_function( $post, $callback_args ) {
  $chamadas_ativas = chamadas_ativas();
  foreach($chamadas_ativas as $chamada) {
    $info = get_chamada_subscalls_startups_info($chamada->ID);
    $title = $info["title"];
    $n_subscalls = $info["n_subscalls"];
    $n_incompletos = $info["cadastro_incompleto"];
    echo "<div class='activity-block'>
            <div class='widget-header'>
              <div class='wp-menu-image dashicons-before dashicons-megaphone'></div>
              <h3>$title</h3>
            </div>
            <ul class='widget-list'>
              <li>Total<span class='float-right'>$n_subscalls</span></li>
              <li>Com cadastros incompletos<span class='float-right'>$n_incompletos</span></li>
              <li>Na última semana (de segunda-feira à domingo)<span class='float-right'>10</span></li>
            </ul>
          </div>";
  };
}

// INSCRICOES - POR FASE DO NEGÓCIO
function dashboard4_widget_function( $post, $callback_args ) {
  $chamadas_ativas = chamadas_ativas();
  foreach($chamadas_ativas as $chamada) {
    $info = get_chamada_subscalls_startups_info($chamada->ID);
    $f = $info['fase_do_negocio'];
    $title = $info["title"];
    echo "<div class='activity-block'>
            <div class='widget-header'>
              <div class='wp-menu-image dashicons-before dashicons-megaphone'></div>
              <h3>$title</h3>
            </div>
            <ul class='widget-list'>
              <li>Ideia (pensando e desenvolvendo os detalhes do negócio)<span class='float-right'>".$f['Ideia (pensando e desenvolvendo os detalhes do negócio)']."</span></li>
              <li>Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)<span class='float-right'>".$f['Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)']."</span></li>
              <li>Protótipo (desenvolvendo a solução)<span class='float-right'>".$f['Protótipo (desenvolvendo a solução)']."</span></li>
              <li>Piloto (testando a solução)<span class='float-right'>".$f['Piloto (testando a solução)']."</span></li>
              <li>MVP (temos uma operação mínima em curso)<span class='float-right'>".$f['MVP (temos uma operação mínima em curso)']."</span></li>
              <li>Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)<span class='float-right'>".$f['Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)']."</span></li>
              <li>Tração (estamos em forte ritmo de crescimento)<span class='float-right'>".$f['Tração (estamos em forte ritmo de crescimento)']."</span></li>
              <li>Pré-escala (estamos nos preparando para uma grande expansão)<span class='float-right'>".$f['Pré-escala (estamos nos preparando para uma grande expansão)']."</span></li>
              <li>Escala (estamos em grande expansão)<span class='float-right'>".$f['Escala (estamos em grande expansão)']."</span></li>
              <li>Não sei dizer, alguém me explica?<span class='float-right'>".$f['Não sei dizer, alguém me explica?']."</span></li>
            </ul>
          </div>";
  };
}

// INSCRICOES - POR GÊNERO DOS FUNDADORES
function dashboard5_widget_function( $post, $callback_args ) {
  $chamadas_ativas = chamadas_ativas();
  foreach($chamadas_ativas as $chamada) {
    $info = get_chamada_subscalls_startups_info($chamada->ID);
    $title = $info["title"];
    $h = $info["homens"];
    $m = $info["mulheres"];
    $n = $info["nao_binarios"];
    echo "<div class='activity-block'>
            <div class='widget-header'>
              <div class='wp-menu-image dashicons-before dashicons-megaphone'></div>
              <h3>$title</h3>
            </div>
            <ul class='widget-list'>
              <li>Homem<span class='float-right'>$h</span></li>
              <li>Mulher<span class='float-right'>$m</span></li>
              <li>Não binário<span class='float-right'>$n</span></li>
            </ul>
          </div>";
  };
}

// INSCRICOES - POR ESTADO
function dashboard6_widget_function( $post, $callback_args ) {
  $chamadas_ativas = chamadas_ativas();
  foreach($chamadas_ativas as $chamada) {
    $info = get_chamada_subscalls_startups_info($chamada->ID);
    $title = $info["title"];
    echo "<div class='activity-block'>
            <div class='widget-header'>
              <div class='wp-menu-image dashicons-before dashicons-megaphone'></div>
              <h3>$title</h3>
            </div>
            <ul class='widget-list'>";
              foreach($info["estado"] as $k => $v) {
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
          </div>";
      
  };
}

// INSCRICOES - POR IDADE
function dashboard7_widget_function( $post, $callback_args ) {
  $chamadas_ativas = chamadas_ativas();
  foreach($chamadas_ativas as $chamada) {
    $info = get_chamada_subscalls_startups_info($chamada->ID);
    $title = $info["title"];
    echo "<div class='activity-block'>
            <div class='widget-header'>
              <div class='wp-menu-image dashicons-before dashicons-megaphone'></div>
              <h3>$title</h3>
            </div>
            <ul class='widget-list'> 
              <li><strong>Fundador 1</strong></li>";
              foreach($info["f1_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
            <ul class='widget-list'> 
              <li><strong>Fundador 2</strong></li>";
              foreach($info["f2_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
            <ul class='widget-list'> 
              <li><strong>Fundador 3</strong></li>";
              foreach($info["f3_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
            <ul class='widget-list'> 
              <li><strong>Fundador 4</strong></li>";
              foreach($info["f4_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
          </div>";
  };
}

// CADASTROS ATUALIZADOS
function dashboard8_widget_function( $post, $callback_args ) {
  $updates_startups = updates_startups();
  echo "<div class='activity-block'>
        <ul class='widget-list'>
          <li>Total<span class='float-right'>$updates_startups[0]</span></li>
          <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$updates_startups[1]</span></li>
        </ul>
        </div>";
}

// UPDATES - POR FASE DO NEGÓCIO
function dashboard9_widget_function( $post, $callback_args ) {
  $info = get_startups_atualizadas_info();
  $f = $info['fase_do_negocio'];
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Ideia (pensando e desenvolvendo os detalhes do negócio)<span class='float-right'>".$f['Ideia (pensando e desenvolvendo os detalhes do negócio)']."</span></li>
            <li>Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)<span class='float-right'>".$f['Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)']."</span></li>
            <li>Protótipo (desenvolvendo a solução)<span class='float-right'>".$f['Protótipo (desenvolvendo a solução)']."</span></li>
            <li>Piloto (testando a solução)<span class='float-right'>".$f['Piloto (testando a solução)']."</span></li>
            <li>MVP (temos uma operação mínima em curso)<span class='float-right'>".$f['MVP (temos uma operação mínima em curso)']."</span></li>
            <li>Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)<span class='float-right'>".$f['Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)']."</span></li>
            <li>Tração (estamos em forte ritmo de crescimento)<span class='float-right'>".$f['Tração (estamos em forte ritmo de crescimento)']."</span></li>
            <li>Pré-escala (estamos nos preparando para uma grande expansão)<span class='float-right'>".$f['Pré-escala (estamos nos preparando para uma grande expansão)']."</span></li>
            <li>Escala (estamos em grande expansão)<span class='float-right'>".$f['Escala (estamos em grande expansão)']."</span></li>
            <li>Não sei dizer, alguém me explica?<span class='float-right'>".$f['Não sei dizer, alguém me explica?']."</span></li>
          </ul>
        </div>";
}

// UPDATES - POR GÊNERO DOS FUNDADORES
function dashboard10_widget_function( $post, $callback_args ) {
  $info = get_startups_atualizadas_info();
  $h = $info["homens"];
  $m = $info["mulheres"];
  $n = $info["nao_binarios"];
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Homem<span class='float-right'>$h</span></li>
            <li>Mulher<span class='float-right'>$m</span></li>
            <li>Não binário<span class='float-right'>$n</span></li>
          </ul>
        </div>";
}

// UPDATES - POR ESTADO
function dashboard11_widget_function( $post, $callback_args ) {
  $info = get_startups_atualizadas_info();
  $title = $info["title"];
  echo "<div class='activity-block'>
          <ul class='widget-list'>";
            foreach($info["estado"] as $k => $v) {
              echo " <li>$k<span class='float-right'>$v</span></li>";
            }
            echo "
          </ul>
        </div>";
 
}

// UPDATES - POR IDADE
function dashboard12_widget_function( $post, $callback_args ) {
  $chamadas_ativas = chamadas_ativas();
  foreach($chamadas_ativas as $chamada) {
    $info = get_startups_atualizadas_info();
    echo "<div class='activity-block'>
            <ul class='widget-list'> 
              <li><strong>Fundador 1</strong></li>";
              foreach($info["f1_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
            <ul class='widget-list'> 
              <li><strong>Fundador 2</strong></li>";
              foreach($info["f2_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
            <ul class='widget-list'> 
              <li><strong>Fundador 3</strong></li>";
              foreach($info["f3_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
            <ul class='widget-list'> 
              <li><strong>Fundador 4</strong></li>";
              foreach($info["f4_faixa_etaria"] as $k => $v) {
                if ($k === "") {
                  $k = "Não preenchido";
                }
                echo " <li>$k<span class='float-right'>$v</span></li>";
              }
              echo "
            </ul>
          </div>";
  };
}

// NOVOS
function dashboard13_widget_function( $post, $callback_args ) {
  $novas = novas_startups();
  echo "<div class='activity-block'>
        <ul class='widget-list'>
          <li>Total<span class='float-right'>$novas[0]</span></li>
          <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$novas[1]</span></li>
        </ul>
        </div>";
}

// NOVOS - POR FASE DO NEGÓCIO
function dashboard14_widget_function( $post, $callback_args ) {
  $info = get_startups_novas_info();
  $f = $info['fase_do_negocio'];
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Ideia (pensando e desenvolvendo os detalhes do negócio)<span class='float-right'>".$f['Ideia (pensando e desenvolvendo os detalhes do negócio)']."</span></li>
            <li>Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)<span class='float-right'>".$f['Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)']."</span></li>
            <li>Protótipo (desenvolvendo a solução)<span class='float-right'>".$f['Protótipo (desenvolvendo a solução)']."</span></li>
            <li>Piloto (testando a solução)<span class='float-right'>".$f['Piloto (testando a solução)']."</span></li>
            <li>MVP (temos uma operação mínima em curso)<span class='float-right'>".$f['MVP (temos uma operação mínima em curso)']."</span></li>
            <li>Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)<span class='float-right'>".$f['Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)']."</span></li>
            <li>Tração (estamos em forte ritmo de crescimento)<span class='float-right'>".$f['Tração (estamos em forte ritmo de crescimento)']."</span></li>
            <li>Pré-escala (estamos nos preparando para uma grande expansão)<span class='float-right'>".$f['Pré-escala (estamos nos preparando para uma grande expansão)']."</span></li>
            <li>Escala (estamos em grande expansão)<span class='float-right'>".$f['Escala (estamos em grande expansão)']."</span></li>
            <li>Não sei dizer, alguém me explica?<span class='float-right'>".$f['Não sei dizer, alguém me explica?']."</span></li>
          </ul>
        </div>";
}

// NOVOS - POR GÊNERO DOS FUNDADORES
function dashboard15_widget_function( $post, $callback_args ) {
  $info = get_startups_novas_info();
  $h = $info["homens"];
  $m = $info["mulheres"];
  $n = $info["nao_binarios"];
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Homem<span class='float-right'>$h</span></li>
            <li>Mulher<span class='float-right'>$m</span></li>
            <li>Não binário<span class='float-right'>$n</span></li>
          </ul>
        </div>";
}

// NOVOS - POR ESTADO
function dashboard16_widget_function( $post, $callback_args ) {
  $info = get_startups_novas_info();
  $title = $info["title"];
  echo "<div class='activity-block'>
          <ul class='widget-list'>";
            foreach($info["estado"] as $k => $v) {
              echo " <li>$k<span class='float-right'>$v</span></li>";
            }
            echo "
          </ul>
        </div>";
}

// NOVOS - POR IDADE
function dashboard17_widget_function( $post, $callback_args ) {
  $info = get_startups_novas_info();
  echo "<div class='activity-block'>
          <ul class='widget-list'> 
            <li><strong>Fundador 1</strong></li>";
            foreach($info["f1_faixa_etaria"] as $k => $v) {
              if ($k === "") {
                $k = "Não preenchido";
              }
              echo " <li>$k<span class='float-right'>$v</span></li>";
            }
            echo "
          </ul>
          <ul class='widget-list'> 
            <li><strong>Fundador 2</strong></li>";
            foreach($info["f2_faixa_etaria"] as $k => $v) {
              if ($k === "") {
                $k = "Não preenchido";
              }
              echo " <li>$k<span class='float-right'>$v</span></li>";
            }
            echo "
          </ul>
          <ul class='widget-list'> 
            <li><strong>Fundador 3</strong></li>";
            foreach($info["f3_faixa_etaria"] as $k => $v) {
              if ($k === "") {
                $k = "Não preenchido";
              }
              echo " <li>$k<span class='float-right'>$v</span></li>";
            }
            echo "
          </ul>
          <ul class='widget-list'> 
            <li><strong>Fundador 4</strong></li>";
            foreach($info["f4_faixa_etaria"] as $k => $v) {
              if ($k === "") {
                $k = "Não preenchido";
              }
              echo " <li>$k<span class='float-right'>$v</span></li>";
            }
            echo "
          </ul>
        </div>";
}

// CADASTROS PUBLICADOS
function dashboard18_widget_function( $post, $callback_args ) {
  $new_startups_publicadas = startups_publicadas();
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Total<span class='float-right'>$new_startups_publicadas[0]</span></li>
            <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$new_startups_publicadas[1]</span></li>
          </ul>
        </div>";
}

// CADASTROS INCOMPLETOS
function dashboard19_widget_function( $post, $callback_args ) {
  $n_startups_incompletos = startups_incompletos();
  echo "<div class='activity-block'>
          <ul class='widget-list'>
            <li>Total<span class='float-right'>$n_startups_incompletos</span></li>
            <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$n_startups_incompletos</span></li>
          </ul>
        </div>";
}

// -------------------------
// HELPER FUNCTIONS:

function total_startups_number() {
  return wp_count_posts('startups')->publish;
}

function total_startups_publicadas() {
  $args = array(
    'post_type' => 'startups',
    'post_status' => 'publish',
    'meta_key' => 'publicada',
    'meta_value' => '1',
  );
  $query = new WP_Query( $args );
  $total = $query->found_posts;
  return $total;
}

function total_startups_cadastradas_ultima_semana() {
  $args = array(
    'post_type' => 'startups',
    'post_status' => 'publish',
    'date_query' => array(array('after' => 'last week monday','before' => 'last week sunday'))
  );
  $query = new WP_Query( $args );
  $total = $query->found_posts;
  return $total;
}

function get_area_de_impacto_post_count() {
  global $wpdb;
  $r = $wpdb->get_results( "select areas.meta_value as areas from wp_posts p left join wp_postmeta areas on areas.post_id = p.ID and areas.meta_key = 'areas_de_impacto' left join wp_postmeta publicada on publicada.post_id = p.ID and publicada.meta_key = 'publicada' where p.post_type = 'startups' and publicada.meta_value = '1'", ARRAY_N );
  $count = [];
  $areas = [];
  foreach($r as $area) {
    $u = unserialize($area[0]);
    $areas[] = $u;
  }
  return array_count_values(array_merge(...$areas));
}

function get_classification_post_count($classification_id) {
  $args = array(
    'post_status' => 'publish',
    'post_type' => 'startups',
    'meta_query' => array(
      'relation' => 'AND',
      array(
        'key' => 'classifications',
        'value' => $classification_id,
        'compare' => 'LIKE'
      )
    )
  );
  $query = new WP_Query( $args );
  $total = $query->found_posts;
  return $total;
}

function total_chamadas() {
  $args = array(
    'post_type' => 'chamadas',
    'post_status' => 'publish',
    'meta_query' => array(
      'relation' => 'OR',
      array(
        'key' => 'mostrar_na_chamadas_encerradas',
        'value' => '1',
      ),
      array(
        'key' => 'mostrar_na_home',
        'value' => '1',
      ),
    )
  );
  $query = new WP_Query( $args );
  $total = $query->found_posts;
  return $total;
}

function total_chamadas_ativas() {
  $args = array(
    'post_type' => 'chamadas',
    'post_status' => 'publish',
    'meta_key' => 'mostrar_na_home',
    'meta_value' => '1',
  );
  $query = new WP_Query( $args );
  $total = $query->found_posts;
  return $total;
}

function chamadas_ativas() {
  $args = array(
    'post_type' => 'chamadas',
    'post_status' => 'publish',
    'meta_key' => 'mostrar_na_home',
    'meta_value' => '1',
  );
  $query = new WP_Query( $args );
  $posts = $query->posts;
  return $posts;
}

function get_chamada_subscalls($id_chamada) {
  $args = array(
    'post_type' => 'subscription_call',
    'nopaging' => true,
    'post_status' => 'publish',
    'meta_key' => 'chamada',
    'meta_value' => sprintf(':"%s";', $id_chamada),
    'meta_compare' => 'LIKE',
    'fields' => 'startup'
  );
  $query = new WP_Query( $args );
  $posts = $query->posts;
  foreach($posts as $post) {
    $post->cadastro_incompleto = get_field('cadastro_incompleto', $post->startup->ID);
  }
  return $posts;
}

function get_chamada_subscalls_startups_info($id_chamada) {
  $args = array(
    'post_type' => 'subscription_call',
    'nopaging' => true,
    'post_status' => 'publish',
    'meta_key' => 'chamada',
    'meta_value' => sprintf(':"%s";', $id_chamada),
    'meta_compare' => 'LIKE',
    'fields' => ['startup']
  );
  $query = new WP_Query( $args );
  $posts = $query->posts;
  
  $fase_do_negocio = [];
  $estado = [];
  $cadastro_incompleto = [];
  $homens = [];
  $mulheres = [];
  $nao_binarios = []; 
  $f1_faixa_etaria = [];
  $f2_faixa_etaria = [];
  $f3_faixa_etaria = [];
  $f4_faixa_etaria = [];
  
  foreach($posts as $post) {  
    $fields = get_fields($post->ID);
    if (!$fields["startup"][0]->ID) {
      continue;
    }
    $uf = (string)get_field('estado', $fields["startup"][0]->ID);
    $fase = (string)get_field('fase_do_negocio', $fields["startup"][0]->ID)->name;
    $post->data_cadastro = get_field('data_cadastro', $fields["startup"][0]->ID);
    $fase_do_negocio[] = $fase ? $fase : "Não preenchido";
    $estado[] = $uf ? $uf : "Não preenchido";
    $cadastro_incompleto_value = get_field('cadastro_incompleto', $fields["startup"][0]->ID)->name;
    $cadastro_incompleto[] = $cadastro_incompleto_value == "Sim" ? 1 : 0;
    $homens[] = (int)get_field('fundadores_quantidade_homens', $fields["startup"][0]->ID);
    $mulheres[] = (int)get_field('fundadores_quantidade_mulheres', $fields["startup"][0]->ID);
    $nao_binarios[] = (int)get_field('fundadores_quantidade_outros', $fields["startup"][0]->ID);
    $f1_faixa_etaria[] = (string)get_field('fundador_1_faixa_etaria', $fields["startup"][0]->ID);
    $f2_faixa_etaria[] = (string)get_field('fundador_2_faixa_etaria', $fields["startup"][0]->ID);
    $f3_faixa_etaria[] = (string)get_field('fundador_3_faixa_etaria', $fields["startup"][0]->ID);
    $f4_faixa_etaria[] = (string)get_field('fundador_4_faixa_etaria', $fields["startup"][0]->ID);
  }
  
  $estado = array_count_values($estado);
  $fase_do_negocio = array_count_values($fase_do_negocio);
  $f1_faixa_etaria = array_count_values($f1_faixa_etaria);
  $f2_faixa_etaria = array_count_values($f2_faixa_etaria);
  $f3_faixa_etaria = array_count_values($f3_faixa_etaria);
  $f4_faixa_etaria = array_count_values($f4_faixa_etaria);
  
  ksort($f1_faixa_etaria);
  $f1_faixa_etaria = array_merge(array_splice($f1_faixa_etaria, 1), $f1_faixa_etaria);
  
  ksort($f2_faixa_etaria);
  $f2_faixa_etaria = array_merge(array_splice($f2_faixa_etaria, 1), $f2_faixa_etaria);
  
  ksort($f3_faixa_etaria);
  $f3_faixa_etaria = array_merge(array_splice($f3_faixa_etaria, 1), $f3_faixa_etaria);
  
  ksort($f4_faixa_etaria);
  $f4_faixa_etaria = array_merge(array_splice($f4_faixa_etaria, 1), $f4_faixa_etaria);

  arsort($estado);

  $n_ultima_semana = array_filter($posts, function($p) { 
    $data_cadastro = strtotime($p->data_cadastro);
    if ($data_cadastro > strtotime("last week monday") && $data_cadastro < strtotime("last week sunday")) {
      return $p;
    }
  });

  return array(
    'title' => get_the_title($id_chamada),
    'fase_do_negocio' => $fase_do_negocio,
    'estado' => $estado,
    'cadastro_incompleto' => array_sum($cadastro_incompleto),
    'homens' => array_sum($homens),
    'mulheres' => array_sum($mulheres),
    'nao_binarios' => array_sum($nao_binarios),
    'n_subscalls' => sizeof($posts),
    'n_ultima_semana' => sizeof($n_ultima_semana),
    'f1_faixa_etaria' => $f1_faixa_etaria,
    'f2_faixa_etaria' => $f2_faixa_etaria,
    'f3_faixa_etaria' => $f3_faixa_etaria,
    'f4_faixa_etaria' => $f4_faixa_etaria
  );
}

function get_startups_atualizadas_info() {
  global $wpdb;
  $posts = $wpdb->get_results( "select p.id as id, atualizada.meta_value as atualizada, cadastrada.meta_value as cadastrada from wp_posts p left join wp_postmeta atualizada on atualizada.post_id = p.ID and atualizada.meta_key = 'data_de_atualizacao' left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where atualizada.meta_value > '2023-04-00' and cadastrada.meta_value < '2023-04-00' and p.post_type = 'startups'", ARRAY_N );

  $fase_do_negocio = [];
  $estado = [];
  $cadastro_incompleto = [];
  $homens = [];
  $mulheres = [];
  $nao_binarios = []; 
  $f1_faixa_etaria = [];
  $f2_faixa_etaria = [];
  $f3_faixa_etaria = [];
  $f4_faixa_etaria = [];
  
  foreach($posts as $post) {  
    $id = $post[0];
    $fields = get_fields($id);

    $uf = (string)get_field('estado', $id);
    $fase = (string)get_field('fase_do_negocio', $id)->name;
    $fase_do_negocio[] = $fase ? $fase : "Não preenchido";
    $estado[] = $uf ? $uf : "Não preenchido";
    $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name;
    $cadastro_incompleto[] = $cadastro_incompleto_value == "Sim" ? 1 : 0;
    $homens[] = (int)get_field('fundadores_quantidade_homens', $id);
    $mulheres[] = (int)get_field('fundadores_quantidade_mulheres', $id);
    $nao_binarios[] = (int)get_field('fundadores_quantidade_outros', $id);
    $f1_faixa_etaria[] = (string)get_field('fundador_1_faixa_etaria', $id);
    $f2_faixa_etaria[] = (string)get_field('fundador_2_faixa_etaria', $id);
    $f3_faixa_etaria[] = (string)get_field('fundador_3_faixa_etaria', $id);
    $f4_faixa_etaria[] = (string)get_field('fundador_4_faixa_etaria', $id);
  }
  
  $estado = array_count_values($estado);
  $fase_do_negocio = array_count_values($fase_do_negocio);
  $f1_faixa_etaria = array_count_values($f1_faixa_etaria);
  $f2_faixa_etaria = array_count_values($f2_faixa_etaria);
  $f3_faixa_etaria = array_count_values($f3_faixa_etaria);
  $f4_faixa_etaria = array_count_values($f4_faixa_etaria);
  
  ksort($f1_faixa_etaria);
  $f1_faixa_etaria = array_merge(array_splice($f1_faixa_etaria, 1), $f1_faixa_etaria);
  
  ksort($f2_faixa_etaria);
  $f2_faixa_etaria = array_merge(array_splice($f2_faixa_etaria, 1), $f2_faixa_etaria);
  
  ksort($f3_faixa_etaria);
  $f3_faixa_etaria = array_merge(array_splice($f3_faixa_etaria, 1), $f3_faixa_etaria);
  
  ksort($f4_faixa_etaria);
  $f4_faixa_etaria = array_merge(array_splice($f4_faixa_etaria, 1), $f4_faixa_etaria);

  arsort($estado);

  return array(
    'title' => get_the_title($id_chamada),
    'fase_do_negocio' => $fase_do_negocio,
    'estado' => $estado,
    'cadastro_incompleto' => array_sum($cadastro_incompleto),
    'homens' => array_sum($homens),
    'mulheres' => array_sum($mulheres),
    'nao_binarios' => array_sum($nao_binarios),
    'n_subscalls' => sizeof($posts),
    'f1_faixa_etaria' => $f1_faixa_etaria,
    'f2_faixa_etaria' => $f2_faixa_etaria,
    'f3_faixa_etaria' => $f3_faixa_etaria,
    'f4_faixa_etaria' => $f4_faixa_etaria
  );
}

function get_startups_novas_info() {
  global $wpdb;
  $posts = $wpdb->get_results( "select p.id as id from wp_posts p left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where cadastrada.meta_value > '2023-04-00' and p.post_type = 'startups'", ARRAY_N );

  $fase_do_negocio = [];
  $estado = [];
  $cadastro_incompleto = [];
  $homens = [];
  $mulheres = [];
  $nao_binarios = []; 
  $f1_faixa_etaria = [];
  $f2_faixa_etaria = [];
  $f3_faixa_etaria = [];
  $f4_faixa_etaria = [];
  
  foreach($posts as $post) {  
    $id = $post[0];
    $fields = get_fields($id);

    $uf = (string)get_field('estado', $id);
    $fase = (string)get_field('fase_do_negocio', $id)->name;
    $fase_do_negocio[] = $fase ? $fase : "Não preenchido";
    $estado[] = $uf ? $uf : "Não preenchido";
    $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name;
    $cadastro_incompleto[] = $cadastro_incompleto_value == "Sim" ? 1 : 0;
    $homens[] = (int)get_field('fundadores_quantidade_homens', $id);
    $mulheres[] = (int)get_field('fundadores_quantidade_mulheres', $id);
    $nao_binarios[] = (int)get_field('fundadores_quantidade_outros', $id);
    $f1_faixa_etaria[] = (string)get_field('fundador_1_faixa_etaria', $id);
    $f2_faixa_etaria[] = (string)get_field('fundador_2_faixa_etaria', $id);
    $f3_faixa_etaria[] = (string)get_field('fundador_3_faixa_etaria', $id);
    $f4_faixa_etaria[] = (string)get_field('fundador_4_faixa_etaria', $id);
  }
  
  $estado = array_count_values($estado);
  $fase_do_negocio = array_count_values($fase_do_negocio);
  $f1_faixa_etaria = array_count_values($f1_faixa_etaria);
  $f2_faixa_etaria = array_count_values($f2_faixa_etaria);
  $f3_faixa_etaria = array_count_values($f3_faixa_etaria);
  $f4_faixa_etaria = array_count_values($f4_faixa_etaria);
  
  ksort($f1_faixa_etaria);
  $f1_faixa_etaria = array_merge(array_splice($f1_faixa_etaria, 1), $f1_faixa_etaria);
  
  ksort($f2_faixa_etaria);
  $f2_faixa_etaria = array_merge(array_splice($f2_faixa_etaria, 1), $f2_faixa_etaria);
  
  ksort($f3_faixa_etaria);
  $f3_faixa_etaria = array_merge(array_splice($f3_faixa_etaria, 1), $f3_faixa_etaria);
  
  ksort($f4_faixa_etaria);
  $f4_faixa_etaria = array_merge(array_splice($f4_faixa_etaria, 1), $f4_faixa_etaria);

  arsort($estado);

  return array(
    'title' => get_the_title($id_chamada),
    'fase_do_negocio' => $fase_do_negocio,
    'estado' => $estado,
    'cadastro_incompleto' => array_sum($cadastro_incompleto),
    'homens' => array_sum($homens),
    'mulheres' => array_sum($mulheres),
    'nao_binarios' => array_sum($nao_binarios),
    'n_subscalls' => sizeof($posts),
    'f1_faixa_etaria' => $f1_faixa_etaria,
    'f2_faixa_etaria' => $f2_faixa_etaria,
    'f3_faixa_etaria' => $f3_faixa_etaria,
    'f4_faixa_etaria' => $f4_faixa_etaria
  );
}

function updates_startups() {
    global $wpdb;

    $query = "
        SELECT
            atualizada.meta_value AS atualizada,
            cadastrada.meta_value AS cadastrada
        FROM {$wpdb->prefix}posts AS p
        LEFT JOIN {$wpdb->prefix}postmeta AS atualizada
            ON atualizada.post_id = p.ID
            AND atualizada.meta_key = 'data_de_atualizacao'
        LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada
            ON cadastrada.post_id = p.ID
            AND cadastrada.meta_key = 'data_de_cadastro'
        WHERE p.post_type = 'startups'
            AND atualizada.meta_value > '2023-04-00'
    ";

    $r = $wpdb->get_results($query, ARRAY_N);

    $query2 = "
        SELECT
            atualizada.meta_value AS atualizada,
            cadastrada.meta_value AS cadastrada
        FROM {$wpdb->prefix}posts AS p
        LEFT JOIN {$wpdb->prefix}postmeta AS atualizada
            ON atualizada.post_id = p.ID
            AND atualizada.meta_key = 'data_de_atualizacao'
        LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada
            ON cadastrada.post_id = p.ID
            AND cadastrada.meta_key = 'data_de_cadastro'
        WHERE p.post_type = 'startups'
            AND atualizada.meta_value BETWEEN DATE_SUB(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY), INTERVAL 6 DAY)
            AND DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY)
            AND atualizada.meta_value > '2023-04-00'
    ";

    $r2 = $wpdb->get_results($query2, ARRAY_N);

    return [count($r), count($r2)];
}


function novas_startups() {
  global $wpdb;

  $query_cadastrada = "SELECT cadastrada.meta_value
                       FROM wp_posts p
                       LEFT JOIN wp_postmeta cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro'
                       WHERE cadastrada.meta_value > '2023-04-00' AND p.post_type = 'startups'";

  $query_atualizada = "SELECT atualizada.meta_value
                       FROM wp_posts p
                       LEFT JOIN wp_postmeta atualizada ON atualizada.post_id = p.ID AND atualizada.meta_key = 'data_de_atualizacao'
                       LEFT JOIN wp_postmeta cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro'
                       WHERE atualizada.meta_value BETWEEN DATE_SUB(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY), INTERVAL 6 DAY) AND DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY) AND cadastrada.meta_value > '2023-04-00' AND p.post_type = 'startups'";

  $cadastrada_result = $wpdb->get_results($query_cadastrada, ARRAY_N);
  $atualizada_result = $wpdb->get_results($query_atualizada, ARRAY_N);

  return [count($cadastrada_result), count($atualizada_result)];
}

function startups_publicadas() {
  global $wpdb;

  $query = "
      SELECT
          atualizada.meta_value AS atualizada,
          cadastrada.meta_value AS cadastrada,
          publicada.meta_value AS publicada
      FROM {$wpdb->prefix}posts AS p
      LEFT JOIN {$wpdb->prefix}postmeta AS atualizada
          ON atualizada.post_id = p.ID
          AND atualizada.meta_key = 'data_de_atualizacao'
      LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada
          ON cadastrada.post_id = p.ID
          AND cadastrada.meta_key = 'data_de_cadastro'
      LEFT JOIN {$wpdb->prefix}postmeta AS publicada
          ON publicada.post_id = p.ID
          AND publicada.meta_key = 'publicada'
      WHERE p.post_type = 'startups'
          AND publicada.meta_value = '1'
          AND atualizada.meta_value > '2023-04-00'
  ";

  $r = $wpdb->get_results($query, ARRAY_N);

  $query2 = "
      SELECT
          atualizada.meta_value AS atualizada,
          cadastrada.meta_value AS cadastrada,
          publicada.meta_value AS publicada
      FROM {$wpdb->prefix}posts AS p
      LEFT JOIN {$wpdb->prefix}postmeta AS atualizada
          ON atualizada.post_id = p.ID
          AND atualizada.meta_key = 'data_de_atualizacao'
      LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada
          ON cadastrada.post_id = p.ID
          AND cadastrada.meta_key = 'data_de_cadastro'
      LEFT JOIN {$wpdb->prefix}postmeta AS publicada
          ON publicada.post_id = p.ID
          AND publicada.meta_key = 'publicada'
      WHERE p.post_type = 'startups'
          AND publicada.meta_value = '1'
          AND atualizada.meta_value BETWEEN DATE_SUB(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY), INTERVAL 6 DAY)
          AND DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY)
          AND atualizada.meta_value > '2023-04-00'
  ";

  $r2 = $wpdb->get_results($query2, ARRAY_N);

  return [count($r), count($r2)];
}

function startups_incompletos() {
  global $wpdb;
  $posts = $wpdb->get_results( "select p.id as id from wp_posts p left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where cadastrada.meta_value BETWEEN DATE_ADD(NOW(), INTERVAL -1 WEEK) AND NOW() and p.post_type = 'startups'", ARRAY_N );

  $count_incompletos_semana = 0;
  foreach($posts as $post) {  
    $id = $post[0];
    $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name;
    if ($cadastro_incompleto_value == "Sim") {
        $count_incompletos_semana += 1;
    }
  }
  $posts = $wpdb->get_results( "select p.id as id from wp_posts p left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where cadastrada.meta_value BETWEEN DATE_ADD(NOW(), INTERVAL -1 MONTH) AND NOW() and p.post_type = 'startups'", ARRAY_N );

  $count_incompletos_mes = 0;
  foreach($posts as $post) {  
    $id = $post[0];
    $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name;
    if ($cadastro_incompleto_value == "Sim") {
        $count_incompletos_mes += 1;
    }
  }

  return [$count_incompletos_semana, $count_incompletos_mes];
}