<?php
if ( ! defined( 'ABSPATH' ) ) { exit; }

function lt_theme_page_builder_pattern_categories() {
    register_block_pattern_category( 'law-firm-pages', array( 'label'=>__( 'Law Firm Pages', 'law-temple-theme' ) ) );
    register_block_pattern_category( 'law-firm-sections', array( 'label'=>__( 'Law Firm Sections', 'law-temple-theme' ) ) );
    register_block_pattern_category( 'law-firm-content', array( 'label'=>__( 'Law Firm Dynamic Content', 'law-temple-theme' ) ) );
}
add_action( 'init', 'lt_theme_page_builder_pattern_categories', 9 );

/** Starter pages supplied by the presentation theme for safe framework setup. */
function lt_theme_starter_page_content( $content, $key ) {
    if ( 'about' === $key && ! trim( (string) $content ) ) { return lt_theme_about_starter_markup(); }
    if ( 'contact' === $key ) { return lt_theme_contact_starter_markup(); }
    return $content;
}
add_filter( 'lt_core_starter_page_content', 'lt_theme_starter_page_content', 10, 2 );

function lt_theme_pattern_content( $slug ) {
    if ( class_exists( 'WP_Block_Patterns_Registry' ) ) {
        $pattern = WP_Block_Patterns_Registry::get_instance()->get_registered( $slug );
        if ( is_array( $pattern ) && ! empty( $pattern['content'] ) ) { return (string) $pattern['content']; }
    }
    $name = sanitize_file_name( str_replace( 'law-temple/', '', (string) $slug ) );
    $file = LT_THEME_DIR . 'patterns/' . $name . '.php';
    if ( $name && file_exists( $file ) ) { ob_start(); include $file; return (string) ob_get_clean(); }
    return '';
}

function lt_theme_about_starter_markup() {
    $pattern = lt_theme_pattern_content( 'law-temple/page-about' );
    if ( $pattern ) { return $pattern; }
    return '<!-- wp:heading {"level":2} --><h2 class="wp-block-heading">' . esc_html__( 'About the Firm', 'law-temple-theme' ) . '</h2><!-- /wp:heading --><!-- wp:paragraph --><p>' . esc_html__( 'Introduce the firm, its clients, approach and professional values.', 'law-temple-theme' ) . '</p><!-- /wp:paragraph -->';
}

function lt_theme_contact_starter_markup() {
    $pattern = lt_theme_pattern_content( 'law-temple/page-contact' );
    if ( $pattern ) { return $pattern; }
    return '<!-- wp:heading {"level":2} --><h2 class="wp-block-heading">' . esc_html__( 'Contact', 'law-temple-theme' ) . '</h2><!-- /wp:heading --><!-- wp:law-firm/enquiry-form /-->';
}

function lt_theme_builder_body_class( $classes ) {
    if ( is_page() ) {
        $layout = get_post_meta( get_queried_object_id(), 'lt_page_layout', true );
        if ( 'builder' === $layout ) { $classes[] = 'lt-page-builder'; }
    }
    return $classes;
}
add_filter( 'body_class', 'lt_theme_builder_body_class', 30 );

function lt_theme_configure_starter_pages( $pages, $demo = false ) {
    foreach ( array( 'about','contact' ) as $key ) {
        $id = absint( $pages[ $key ] ?? 0 ); if ( ! $id ) { continue; }
        $post = get_post( $id ); if ( ! $post || false === strpos( (string) $post->post_content, 'lt-builder-' ) ) { continue; }
        if ( ! get_post_meta( $id, 'lt_page_layout', true ) ) { update_post_meta( $id, 'lt_page_layout', 'builder' ); }
        if ( ! get_post_meta( $id, 'lt_page_hero_layout', true ) ) { update_post_meta( $id, 'lt_page_hero_layout', 'none' ); }
    }
}
add_action( 'lt_core_after_setup', 'lt_theme_configure_starter_pages', 10, 2 );
