<?php
/**
 * v9 — چارچوب OSCE-ACC + ماتریس اقشار/ادارات
 * C:\xampp\php\php.exe run-election-v9-install.php
 */
declare(strict_types=1);

if ( ! defined( 'ACC_BASE_PATH' ) ) {
    define( 'ACC_BASE_PATH', __DIR__ );
    require __DIR__ . '/standalone/bootstrap.php';
}

header( 'Content-Type: application/json; charset=utf-8' );
global $wpdb;

require_once ACC_PATH . 'includes/helpers/election-havadaran.php';

$log = [];

$t = Election_Havadaran::sector_engagements_table();
$wpdb->query( "CREATE TABLE IF NOT EXISTS {$t} (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    sector_slug VARCHAR(40) NOT NULL,
    title VARCHAR(200) NOT NULL,
    description TEXT NULL,
    attendees INT UNSIGNED NOT NULL DEFAULT 0,
    location VARCHAR(200) NULL,
    event_date DATE NOT NULL,
    outcome VARCHAR(20) NOT NULL DEFAULT 'planned',
    user_id BIGINT UNSIGNED NULL,
    station_id BIGINT UNSIGNED NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    KEY idx_sector (sector_slug),
    KEY idx_date (event_date)
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" );
$log[] = 'sector_engagements_table';

$existing = (int) $wpdb->get_var( "SELECT COUNT(*) FROM {$t}" );
if ( $existing === 0 ) {
    $samples = [
        [ 'trades', 'جلسه اتحادیه اصناف زند', 'رای‌زنی با ۴۵ واحد صنفی — تأکید بر مهار تورم', 45, 'بازار زند', 'done' ],
        [ 'youth', 'کارگاه دانشگاه شیراز', 'معرفی برنامه اشتغال جوانان + GIS', 120, 'دانشگاه', 'done' ],
        [ 'women', 'نشست بانوان معالی‌آباد', 'گفت‌وگوی محله‌ای — ۳۰ نفر', 30, 'معالی‌آباد', 'done' ],
        [ 'engineers', 'ارائه GIS برای نظام مهندسی', 'نقشه پهنه 1011 — ۲۵ مهندس', 25, 'ستاد', 'planned' ],
        [ 'farmers', 'ستاد روستایی دهستان فیشور', 'هماهنگی امین روستا — خنج', 18, 'شهرستان خنج', 'planned' ],
        [ 'clerics', 'هماهنگی هیئت مذهبی درکی', 'پیام عقلانیت و مشارکت', 40, 'مسجد محله', 'done' ],
    ];
    foreach ( $samples as [ $sec, $title, $desc, $att, $loc, $out ] ) {
        $wpdb->insert( $t, [
            'sector_slug'  => $sec,
            'title'        => $title,
            'description'  => $desc,
            'attendees'    => $att,
            'location'     => $loc,
            'event_date'   => current_time( 'Y-m-d' ),
            'outcome'      => $out,
            'created_at'   => current_time( 'mysql' ),
        ] );
    }
    $log[] = 'sample_sector_engagements';
}

$integrity = Election_Havadaran::integrity_scorecard();
$matrix = Election_Havadaran::sector_matrix_payload();

echo json_encode( [
    'ok'          => true,
    'message'     => 'v9 — OSCE-ACC Integrity + Sector Matrix',
    'log'         => $log,
    'certificate' => $integrity['certificate'],
    'average'     => $integrity['average'],
    'sectors'     => count( $matrix['sectors'] ?? [] ),
    'departments' => count( $matrix['departments'] ?? [] ),
], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT );
