<?php
if ( ! defined( 'ABSPATH' ) ) { exit; }
function lt_core_migrate_v2_options(){
    $raw=get_option('lt_core_options',array()); if(!is_array($raw))$raw=array(); $o=wp_parse_args($raw,lt_core_defaults());
    $map=array('email'=>'general_email','hours'=>'office_hours','linkedin_url'=>'linkedin','enable_schema'=>'schema_enabled');
    foreach($map as $old=>$newkey){ if(empty($o[$newkey]) && isset($raw[$old]) && ''!==$raw[$old]) $o[$newkey]=$raw[$old]; }
    if(empty($o['postal_address'])&&!empty($raw['postal_address']))$o['postal_address']=$raw['postal_address'];
    if(empty($o['digital_address'])&&!empty($raw['digital_address']))$o['digital_address']=$raw['digital_address'];
    if(empty($o['phone_primary'])&&!empty($raw['phone_primary']))$o['phone_primary']=$raw['phone_primary'];
    if(empty($o['phone_secondary'])&&!empty($raw['phone_secondary']))$o['phone_secondary']=$raw['phone_secondary'];
    if(empty($o['enquiry_recipient'])&&!empty($raw['enquiry_recipient']))$o['enquiry_recipient']=$raw['enquiry_recipient'];
    $legacy=get_option('law_temple_options',array()); if(is_array($legacy)){ foreach(array('phone_primary','phone_secondary','postal_address','digital_address','external_form_url','enquiry_recipient') as $key) if(empty($o[$key])&&!empty($legacy[$key]))$o[$key]=$legacy[$key]; if(empty($o['general_email'])&&!empty($legacy['email']))$o['general_email']=$legacy['email']; if(empty($o['office_hours'])&&!empty($legacy['hours']))$o['office_hours']=$legacy['hours']; }
    update_option('lt_core_options',$o,false);
    if(!get_option('lt_core_v2_hero_migrated') && post_type_exists('hero_slide') && empty(get_posts(array('post_type'=>'hero_slide','post_status'=>'any','posts_per_page'=>1)))){
        $heading=sanitize_text_field($raw['hero_heading']??''); $text=sanitize_textarea_field($raw['hero_text']??'');
        if($heading||$text){$id=wp_insert_post(array('post_type'=>'hero_slide','post_status'=>'draft','post_title'=>$heading?:__('Migrated homepage hero','law-temple-core'),'post_excerpt'=>$text)); if($id&&!is_wp_error($id)){update_post_meta($id,'lt_hero_layout','split');update_post_meta($id,'lt_enabled',1);}}
        update_option('lt_core_v2_hero_migrated',1,false);
    }
}
function lt_core_legacy_redirects(){if(is_singular('lawyer')&&isset($_SERVER['REQUEST_URI'])&&str_contains(sanitize_text_field(wp_unslash($_SERVER['REQUEST_URI'])),'/lawyers/')){wp_safe_redirect(get_permalink(),301);exit;}}
function lt_core_vcard_download(){if(empty($_GET['lt_vcard']))return;$id=absint($_GET['lt_vcard']);if(!$id||'lawyer'!==get_post_type($id)||!lt_core_post_is_public($id))return;$name=get_the_title($id);$role=get_post_meta($id,'lt_role',true);$email=get_post_meta($id,'lt_email',true);$phone=get_post_meta($id,'lt_phone',true);$firm=lt_core_get_firm_name();$lines=array('BEGIN:VCARD','VERSION:3.0','FN:'.str_replace(array("\r","\n"),'',$name),'ORG:'.str_replace(array("\r","\n"),'',$firm),'TITLE:'.str_replace(array("\r","\n"),'',$role),'EMAIL:'.$email,'TEL:'.$phone,'URL:'.get_permalink($id),'END:VCARD');nocache_headers();header('Content-Type: text/vcard; charset=utf-8');header('Content-Disposition: attachment; filename="'.sanitize_file_name($name).'.vcf"');echo implode("\r\n",$lines);exit;}
function lt_core_create_page_if_missing($title,$slug,$content=''){ $existing=get_page_by_path($slug);if($existing)return $existing->ID;return wp_insert_post(array('post_type'=>'page','post_status'=>'publish','post_title'=>$title,'post_name'=>$slug,'post_content'=>$content)); }
function lt_core_run_setup($demo=false){
    $created=array();$pages=array('home'=>array(__('Home','law-temple-core'),'home'),'about'=>array(__('About','law-temple-core'),'about'),'contact'=>array(__('Contact','law-temple-core'),'contact'),'privacy'=>array(__('Privacy Notice','law-temple-core'),'privacy'),'disclaimer'=>array(__('Legal Disclaimer','law-temple-core'),'disclaimer'),'terms'=>array(__('Terms','law-temple-core'),'terms'));
    foreach($pages as $key=>$row){$fallback=$key==='contact'?'[law_firm_enquiry_form]':'';$content=apply_filters('lt_core_starter_page_content',$fallback,$key,0);$created[$key]=lt_core_create_page_if_missing($row[0],$row[1],$content);}if($created['home']){update_option('show_on_front','page');update_option('page_on_front',$created['home']);}
    lt_core_create_default_menu($created); if($demo)lt_core_install_demo_content();do_action('lt_core_after_setup',$created,$demo);flush_rewrite_rules();return $created;
}
function lt_core_install_demo_content(){
    $practice_names=array('Corporate & Commercial','Dispute Resolution & Litigation','Foreign Investment & International Business','Energy & Natural Resources','Real Estate & Infrastructure','Tax','Regulatory & Compliance');$practice_ids=array();foreach($practice_names as $name){$found=get_page_by_title($name,OBJECT,'practice');$practice_ids[]=$found?$found->ID:wp_insert_post(array('post_type'=>'practice','post_status'=>'draft','post_title'=>$name));}
    $sectors=array('Banking and Finance','Energy','Mining','Infrastructure','Technology','Real Estate','Oil and Gas','Renewable Energy');foreach($sectors as $s)if(!term_exists($s,'sector'))wp_insert_term($s,'sector');
    $people=array(array('James Agalga','james-agalga.jpg'),array('Anthony Namoo','anthony-namoo.jpg'),array('Raphael Alijina','raphael-alijina.jpg'),array('Richard Mensah','richard-mensah.png'));
    foreach($people as $row){$found=get_page_by_title($row[0],OBJECT,'lawyer');if($found)continue;$id=wp_insert_post(array('post_type'=>'lawyer','post_status'=>'draft','post_title'=>$row[0]));if($id&&!is_wp_error($id)){update_post_meta($id,'lt_profile_visibility','public');lt_core_import_demo_asset($row[1],$id);}}
    if(!get_posts(array('post_type'=>'hero_slide','posts_per_page'=>1,'post_status'=>'any'))){$id=wp_insert_post(array('post_type'=>'hero_slide','post_status'=>'draft','post_title'=>__('Strategic legal counsel','law-temple-core'),'post_excerpt'=>__('A configurable starter hero slide. Edit or replace this demo content before publication.','law-temple-core')));if($id){update_post_meta($id,'lt_hero_layout','split');update_post_meta($id,'lt_enabled',1);}}
}
function lt_core_import_demo_asset($filename,$post_id=0){$path=LT_CORE_DIR.'assets/img/'.$filename;if(!file_exists($path))return 0;require_once ABSPATH.'wp-admin/includes/file.php';require_once ABSPATH.'wp-admin/includes/media.php';require_once ABSPATH.'wp-admin/includes/image.php';$tmp=wp_tempnam($filename);copy($path,$tmp);$file=array('name'=>$filename,'tmp_name'=>$tmp);$id=media_handle_sideload($file,$post_id);if(is_wp_error($id)){@unlink($tmp);return 0;}if($post_id)set_post_thumbnail($post_id,$id);return $id;}

function lt_core_create_default_menu($pages){$name=__('Primary Navigation','law-temple-core');$menu=wp_get_nav_menu_object($name);$menu_id=$menu?$menu->term_id:wp_create_nav_menu($name);if(is_wp_error($menu_id))return;foreach(array('home','about','contact') as $key){if(empty($pages[$key]))continue;$exists=wp_get_associated_nav_menu_items($pages[$key]);if(!$exists)wp_update_nav_menu_item($menu_id,0,array('menu-item-object-id'=>$pages[$key],'menu-item-object'=>'page','menu-item-type'=>'post_type','menu-item-status'=>'publish','menu-item-title'=>get_the_title($pages[$key])));}if(current_theme_supports('menus')){$locations=get_theme_mod('nav_menu_locations',array());if(empty($locations['primary'])){$locations['primary']=$menu_id;set_theme_mod('nav_menu_locations',$locations);}}}
