<?php
/**
 * Ficha da obra (/obras/nome-da-obra) — blocos do escopo jul/2026:
 * 1. breadcrumb · 2. nome + localização + badge · 3. galeria navegável ·
 * 4. resumo + informações principais · 5. andamento em 4 etapas + barra ·
 * 6. mini-mapa Leaflet · 7. atualizações relacionadas · 8. Open Graph
 * individual (inc/seo.php — foto com carimbo quando entregue).
 */

get_header();
the_post();

$mfm_obra_id       = get_the_ID();
$mfm_status        = (string) get_post_meta( $mfm_obra_id, 'status', true );
$mfm_status_rotulo = mfm_status_rotulos()[ $mfm_status ] ?? '';
$mfm_entregue      = 'entregue' === $mfm_status;
$mfm_tipo          = 'servico' === get_post_meta( $mfm_obra_id, 'tipo', true ) ? 'Serviço' : 'Obra';
$mfm_progresso     = min( 100, max( 0, (int) get_post_meta( $mfm_obra_id, 'progresso', true ) ) );
$mfm_eixo          = mfm_termo_da_obra( $mfm_obra_id, 'eixo' );
$mfm_regiao        = mfm_termo_da_obra( $mfm_obra_id, 'regiao' );
$mfm_bairro        = mfm_termo_da_obra( $mfm_obra_id, 'bairro' );
$mfm_local         = implode( ' · ', array_filter( array( $mfm_bairro['nome'], $mfm_regiao['nome'] ? 'Região ' . $mfm_regiao['nome'] : '' ) ) );
$mfm_endereco      = (string) get_post_meta( $mfm_obra_id, 'endereco', true );
$mfm_investimento  = mfm_formata_investimento( get_post_meta( $mfm_obra_id, 'investimento', true ) );
$mfm_inicio        = mfm_formata_data_campo( get_post_meta( $mfm_obra_id, 'data_inicio', true ) );
$mfm_prazo         = mfm_formata_data_campo( get_post_meta( $mfm_obra_id, 'prazo_previsto', true ) );
$mfm_entrega       = mfm_formata_data_campo( get_post_meta( $mfm_obra_id, 'data_entrega', true ) );
$mfm_situacao      = (string) get_post_meta( $mfm_obra_id, 'etapa_atual', true );
$mfm_tem_acf       = function_exists( 'get_field' );

// get_field aplica o wpautop configurado no campo; o meta cru é o fallback.
$mfm_descricao = $mfm_tem_acf ? (string) get_field( 'descricao_completa', $mfm_obra_id ) : wpautop( (string) get_post_meta( $mfm_obra_id, 'descricao_completa', true ) );
$mfm_resumo    = (string) get_post_meta( $mfm_obra_id, 'descritivo_breve', true );

// Galeria navegável: foto principal + fotos da galeria (sem repetir a capa).
$mfm_capa_id = (int) get_post_thumbnail_id( $mfm_obra_id );
$mfm_fotos   = $mfm_tem_acf ? array_map( 'intval', (array) get_field( 'galeria', $mfm_obra_id ) ) : array();
$mfm_fotos   = array_values( array_unique( array_filter( array_merge( array( $mfm_capa_id ), $mfm_fotos ) ) ) );

$mfm_videos = array();
foreach ( ( $mfm_tem_acf ? (array) get_field( 'videos', $mfm_obra_id ) : array() ) as $mfm_linha ) {
	$mfm_video = ! empty( $mfm_linha['arquivo'] ) ? (string) $mfm_linha['arquivo'] : (string) ( $mfm_linha['url'] ?? '' );
	if ( $mfm_video ) {
		$mfm_videos[] = $mfm_video;
	}
}

$mfm_lat = (float) get_post_meta( $mfm_obra_id, 'latitude', true );
$mfm_lng = (float) get_post_meta( $mfm_obra_id, 'longitude', true );

$mfm_etapas       = mfm_etapas_da_obra( $mfm_obra_id );
$mfm_atualizacoes = mfm_atualizacoes_da_obra( $mfm_obra_id );

$mfm_breadcrumb = array( array( 'rotulo' => 'Obras', 'url' => mfm_url_listagem() ) );
if ( $mfm_eixo['nome'] ) {
	$mfm_link_eixo    = get_term_link( $mfm_eixo['slug'], 'eixo' );
	$mfm_breadcrumb[] = array(
		'rotulo' => $mfm_eixo['nome'],
		'url'    => is_wp_error( $mfm_link_eixo ) ? '' : $mfm_link_eixo,
	);
}
$mfm_breadcrumb[] = array( 'rotulo' => get_the_title() );
?>

<main id="conteudo" class="mfm-pagina mfm-ficha">
	<div class="mfm-container">
		<?php get_template_part( 'template-parts/breadcrumb', null, array( 'itens' => $mfm_breadcrumb ) ); ?>

		<!-- Bloco 2: nome + localização/área/região + badge de status -->
		<header class="mfm-ficha__cabecalho">
			<div class="mfm-ficha__titulos">
				<?php if ( $mfm_eixo['nome'] ) : ?>
					<p class="mfm-ficha__eixo"><?php echo esc_html( $mfm_eixo['nome'] . ' · ' . $mfm_tipo ); ?></p>
				<?php endif; ?>
				<h1 class="mfm-ficha__titulo"><?php the_title(); ?></h1>
				<?php if ( $mfm_local ) : ?>
					<p class="mfm-ficha__local"><?php echo esc_html( $mfm_local ); ?></p>
				<?php endif; ?>
			</div>
			<?php if ( $mfm_status_rotulo ) : ?>
				<span class="mfm-badge mfm-badge--<?php echo esc_attr( $mfm_status ); ?> mfm-ficha__badge"><?php echo esc_html( $mfm_status_rotulo ); ?></span>
			<?php endif; ?>
		</header>

		<!-- Bloco 3: imagem principal / galeria navegável -->
		<section class="mfm-ficha__galeria" aria-label="Fotos da obra">
			<figure class="mfm-ficha__foto-principal">
				<?php if ( $mfm_fotos ) : ?>
					<button class="mfm-ficha__ampliar" type="button" aria-label="Ampliar foto">
						<?php
						echo wp_get_attachment_image(
							$mfm_fotos[0],
							'large',
							false,
							array(
								'class'         => 'mfm-ficha__foto',
								'id'            => 'mfm-foto-principal',
								'fetchpriority' => 'high',
								'data-cheia'    => (string) wp_get_attachment_image_url( $mfm_fotos[0], 'full' ),
							)
						);
						?>
					</button>
				<?php else : ?>
					<span class="mfm-ficha__foto mfm-ficha__foto--vazia" aria-hidden="true">{&nbsp;}</span>
				<?php endif; ?>

				<?php if ( $mfm_entregue ) : ?>
					<span class="mfm-carimbo" aria-hidden="true">Entregue!</span>
				<?php endif; ?>

				<?php if ( count( $mfm_fotos ) > 1 ) : ?>
					<button class="mfm-ficha__seta mfm-ficha__seta--ant" type="button" aria-label="Foto anterior">
						<svg width="20" height="20" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M15.4 5.6 13.8 4l-8 8 8 8 1.6-1.6L9 12z"/></svg>
					</button>
					<button class="mfm-ficha__seta mfm-ficha__seta--prox" type="button" aria-label="Próxima foto">
						<svg width="20" height="20" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="m8.6 5.6 1.6-1.6 8 8-8 8-1.6-1.6L15 12z"/></svg>
					</button>
				<?php endif; ?>
			</figure>

			<?php if ( count( $mfm_fotos ) > 1 ) : ?>
				<div class="mfm-ficha__thumbs" role="group" aria-label="Miniaturas da galeria">
					<?php foreach ( $mfm_fotos as $mfm_i => $mfm_foto_id ) : ?>
						<button
							class="mfm-ficha__thumb<?php echo 0 === $mfm_i ? ' ativa' : ''; ?>"
							type="button"
							data-grande="<?php echo esc_url( (string) wp_get_attachment_image_url( $mfm_foto_id, 'large' ) ); ?>"
							data-cheia="<?php echo esc_url( (string) wp_get_attachment_image_url( $mfm_foto_id, 'full' ) ); ?>"
							aria-label="<?php echo esc_attr( 'Ver foto ' . ( $mfm_i + 1 ) . ' de ' . count( $mfm_fotos ) ); ?>"
							<?php echo 0 === $mfm_i ? 'aria-current="true"' : ''; ?>
						>
							<?php echo wp_get_attachment_image( $mfm_foto_id, 'thumbnail', false, array( 'loading' => 'lazy' ) ); ?>
						</button>
					<?php endforeach; ?>
				</div>
			<?php endif; ?>

			<?php if ( $mfm_videos ) : ?>
				<div class="mfm-ficha__videos">
					<?php foreach ( $mfm_videos as $mfm_i => $mfm_video ) : ?>
						<div class="mfm-ficha__video">
							<button class="mfm-video-play" type="button" data-video="<?php echo esc_url( $mfm_video ); ?>">
								<span class="mfm-video-play__selo">&#9654; Assistir vídeo<?php echo count( $mfm_videos ) > 1 ? ' ' . (int) ( $mfm_i + 1 ) : ''; ?></span>
							</button>
						</div>
					<?php endforeach; ?>
				</div>
			<?php endif; ?>
		</section>

		<!-- Bloco 4: Descrição da obra + informações principais -->
		<div class="mfm-ficha__colunas">
			<section class="mfm-ficha__resumo" aria-label="Resumo da obra">
				<h2 class="mfm-ficha__subtitulo">Descrição da obra</h2>
				<?php if ( $mfm_descricao ) : ?>
					<div class="mfm-ficha__descricao"><?php echo wp_kses_post( $mfm_descricao ); ?></div>
				<?php elseif ( $mfm_resumo ) : ?>
					<p class="mfm-ficha__descricao"><?php echo esc_html( $mfm_resumo ); ?></p>
				<?php endif; ?>
			</section>

			<aside class="mfm-ficha__infos" aria-label="Informações principais">
				<h2 class="mfm-ficha__subtitulo">Informações</h2>
				<dl>
					<?php if ( $mfm_status_rotulo ) : ?>
						<div><dt>Status</dt><dd><span class="mfm-badge mfm-badge--<?php echo esc_attr( $mfm_status ); ?>"><?php echo esc_html( $mfm_status_rotulo ); ?></span></dd></div>
					<?php endif; ?>
					<div><dt>Tipo</dt><dd><?php echo esc_html( $mfm_tipo ); ?></dd></div>
					<?php if ( $mfm_local ) : ?>
						<div><dt>Localização</dt><dd><?php echo esc_html( $mfm_local ); ?></dd></div>
					<?php endif; ?>
					<?php if ( $mfm_endereco ) : ?>
						<div><dt>Endereço</dt><dd><?php echo esc_html( $mfm_endereco ); ?></dd></div>
					<?php endif; ?>
					<?php if ( $mfm_eixo['nome'] ) : ?>
						<div><dt>Área</dt><dd><?php echo esc_html( $mfm_eixo['nome'] ); ?></dd></div>
					<?php endif; ?>
					<?php if ( $mfm_investimento ) : ?>
						<div><dt>Investimento</dt><dd class="mfm-ficha__investimento"><?php echo esc_html( $mfm_investimento ); ?></dd></div>
					<?php endif; ?>
					<?php if ( $mfm_inicio ) : ?>
						<div><dt>Início</dt><dd><?php echo esc_html( $mfm_inicio ); ?></dd></div>
					<?php endif; ?>
					<?php if ( $mfm_entregue && $mfm_entrega ) : ?>
						<div><dt>Entregue em</dt><dd><?php echo esc_html( $mfm_entrega ); ?></dd></div>
					<?php elseif ( $mfm_prazo ) : ?>
						<div><dt>Previsão de entrega</dt><dd><?php echo esc_html( $mfm_prazo ); ?></dd></div>
					<?php endif; ?>
					<?php if ( $mfm_situacao ) : ?>
						<div><dt>Situação</dt><dd><?php echo esc_html( $mfm_situacao ); ?></dd></div>
					<?php endif; ?>
				</dl>
			</aside>
		</div>

		<!-- Bloco 5: andamento — linha de 4 etapas + "Status atual X%" -->
		<section class="mfm-ficha__andamento" aria-label="Andamento da obra">
			<h2 class="mfm-ficha__subtitulo">Andamento da obra</h2>

			<ol class="mfm-etapas">
				<?php foreach ( $mfm_etapas as $mfm_i => $mfm_etapa ) : ?>
					<li class="mfm-etapa mfm-etapa--<?php echo esc_attr( $mfm_etapa['estado'] ); ?>">
						<span class="mfm-etapa__ponto" aria-hidden="true"><?php echo 'concluida' === $mfm_etapa['estado'] ? '&#10003;' : (int) ( $mfm_i + 1 ); ?></span>
						<span class="mfm-etapa__rotulo">
							<?php echo esc_html( $mfm_etapa['rotulo'] ); ?>
							<?php if ( 'atual' === $mfm_etapa['estado'] ) : ?>
								<span class="mfm-visually-hidden">(etapa atual)</span>
							<?php endif; ?>
						</span>
					</li>
				<?php endforeach; ?>
			</ol>

			<div class="mfm-ficha__progresso">
				<p class="mfm-ficha__progresso-rotulo">Status atual: <strong><?php echo esc_html( $mfm_progresso ); ?>%</strong></p>
				<span
					class="mfm-card__barra mfm-ficha__barra"
					role="progressbar"
					aria-label="Progresso da obra"
					aria-valuemin="0"
					aria-valuemax="100"
					aria-valuenow="<?php echo esc_attr( $mfm_progresso ); ?>"
				>
					<span class="mfm-card__barra-fill" style="width:<?php echo esc_attr( $mfm_progresso ); ?>%"></span>
				</span>
			</div>
		</section>

		<!-- Bloco 6: localização no mapa -->
		<?php if ( $mfm_lat && $mfm_lng ) : ?>
			<section class="mfm-ficha__mapa" aria-label="Localização da obra">
				<h2 class="mfm-ficha__subtitulo">Localização</h2>
				<div class="mfm-ficha__mapa-caixa" id="mfm-mapa-ficha" aria-label="<?php echo esc_attr( 'Mapa com a localização de ' . get_the_title() ); ?>"></div>
				<a class="mfm-ficha__mapa-link" href="<?php echo esc_url( mfm_url_mapa() ); ?>">Ver no mapa geral de obras &rarr;</a>
			</section>
		<?php endif; ?>

		<!-- Bloco 7: atualizações/notícias relacionadas -->
		<?php if ( $mfm_atualizacoes ) : ?>
			<section class="mfm-ficha__atualizacoes" aria-label="Atualizações da obra">
				<h2 class="mfm-ficha__subtitulo">Atualizações da obra</h2>
				<div class="mfm-atualizacoes">
					<?php foreach ( $mfm_atualizacoes as $mfm_atu ) : ?>
						<?php
						$mfm_atu_foto  = (int) get_post_meta( $mfm_atu->ID, 'foto', true );
						$mfm_atu_data  = mfm_formata_data_campo( get_post_meta( $mfm_atu->ID, 'data', true ) );
						$mfm_atu_texto = $mfm_tem_acf ? (string) get_field( 'texto', $mfm_atu->ID ) : wpautop( (string) get_post_meta( $mfm_atu->ID, 'texto', true ) );
						?>
						<article class="mfm-atualizacao">
							<div class="mfm-atualizacao__corpo">
								<?php if ( $mfm_atu_data ) : ?>
									<p class="mfm-atualizacao__data"><?php echo esc_html( $mfm_atu_data ); ?></p>
								<?php endif; ?>
								<h3 class="mfm-atualizacao__titulo"><?php echo esc_html( get_the_title( $mfm_atu ) ); ?></h3>
								<div class="mfm-atualizacao__texto"><?php echo wp_kses_post( $mfm_atu_texto ); ?></div>
								<!-- paginas.js só exibe o botão quando o texto passa do limite de linhas -->
								<button class="mfm-atualizacao__mais" type="button" hidden aria-expanded="false">Ler mais</button>
							</div>
							<?php if ( $mfm_atu_foto ) : ?>
								<button
									class="mfm-atualizacao__foto-botao"
									type="button"
									data-grande="<?php echo esc_url( (string) wp_get_attachment_image_url( $mfm_atu_foto, 'full' ) ); ?>"
									data-legenda="<?php echo esc_attr( get_the_title( $mfm_atu ) ); ?>"
									aria-label="<?php echo esc_attr( 'Ampliar foto: ' . get_the_title( $mfm_atu ) ); ?>"
								>
									<?php echo wp_get_attachment_image( $mfm_atu_foto, 'medium_large', false, array( 'class' => 'mfm-atualizacao__foto', 'loading' => 'lazy' ) ); ?>
								</button>
							<?php endif; ?>
						</article>
					<?php endforeach; ?>
				</div>
			</section>
		<?php endif; ?>

		<!-- Lightbox das fotos da ficha (principal e atualizações — paginas.js preenche) -->
		<div class="mfm-modal" id="mfm-ficha-modal" hidden>
			<div class="mfm-modal__fundo" data-fechar></div>
			<div class="mfm-modal__caixa" role="dialog" aria-modal="true" aria-label="Foto ampliada">
				<button class="mfm-modal__fechar" data-fechar aria-label="Fechar">&times;</button>
				<div class="mfm-modal__midia" id="mfm-ficha-modal-alvo"></div>
				<p class="mfm-modal__legenda" id="mfm-ficha-modal-legenda"></p>
			</div>
		</div>
	</div>
</main>

<?php
get_footer();
