<?php
/**
 * Seed Premium — تصاویر، کپی لوکس، نظرات، ویدیو hero
 * php run-arag-premium-seed.php
 */
declare(strict_types=1);

define( 'ACC_BASE_PATH', __DIR__ );
require_once __DIR__ . '/standalone/bootstrap.php';
require_once ACC_PATH . 'includes/helpers/arag-shop.php';

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

global $wpdb;
$pre = $wpdb->prefix;

// ensure schema (inline, no require)
$ft = $pre . 'arag_families';
$cols = [ 'tagline', 'description_short', 'description_long', 'bottle_image_url', 'gallery_json' ];
foreach ( $cols as $c ) {
    if ( ! $wpdb->get_row( "SHOW COLUMNS FROM `{$ft}` LIKE '{$c}'" ) ) {
        if ( $c === 'tagline' ) $wpdb->query( "ALTER TABLE `{$ft}` ADD COLUMN tagline VARCHAR(240) NOT NULL DEFAULT '' AFTER icon" );
        if ( $c === 'description_short' ) $wpdb->query( "ALTER TABLE `{$ft}` ADD COLUMN description_short TEXT NULL AFTER tagline" );
        if ( $c === 'description_long' ) $wpdb->query( "ALTER TABLE `{$ft}` ADD COLUMN description_long TEXT NULL AFTER description_short" );
        if ( $c === 'bottle_image_url' ) $wpdb->query( "ALTER TABLE `{$ft}` ADD COLUMN bottle_image_url VARCHAR(500) NOT NULL DEFAULT '' AFTER description_long" );
        if ( $c === 'gallery_json' ) $wpdb->query( "ALTER TABLE `{$ft}` ADD COLUMN gallery_json JSON NULL AFTER bottle_image_url" );
    }
}
$wpdb->query( "CREATE TABLE IF NOT EXISTS {$pre}arag_shop_settings (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    hero_eyebrow VARCHAR(200) NOT NULL DEFAULT '',
    hero_title VARCHAR(300) NOT NULL DEFAULT '',
    hero_subtitle TEXT NULL,
    hero_video_url VARCHAR(500) NOT NULL DEFAULT '',
    hero_poster_url VARCHAR(500) NOT NULL DEFAULT '',
    brand_story TEXT NULL,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
) DEFAULT CHARSET=utf8mb4" );
$wpdb->query( "CREATE TABLE IF NOT EXISTS {$pre}arag_reviews (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    family_id BIGINT UNSIGNED NOT NULL,
    author_name VARCHAR(120) NOT NULL DEFAULT '',
    author_city VARCHAR(80) NOT NULL DEFAULT '',
    rating TINYINT UNSIGNED NOT NULL DEFAULT 5,
    body TEXT NOT NULL,
    is_verified TINYINT(1) NOT NULL DEFAULT 0,
    is_approved TINYINT(1) NOT NULL DEFAULT 1,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id), KEY family_id (family_id)
) DEFAULT CHARSET=utf8mb4" );

$assetBase = '/acc-engine/assets/img/shop/bottles/';
$imgDir    = __DIR__ . '/assets/img/shop/bottles';
@mkdir( $imgDir, 0755, true );

/** @var array<string,string> slug => remote url */
$stock = [
    'golab'    => 'https://images.unsplash.com/photo-1518882605630-4890c0d4ede2?w=800&q=85&auto=format&fit=crop',
    'bidmeshk' => 'https://images.unsplash.com/photo-1490750967868-88aa4486c946?w=800&q=85&auto=format&fit=crop',
    'kasni'    => 'https://images.unsplash.com/photo-1462143338528-eca9936a4d38?w=800&q=85&auto=format&fit=crop',
    'naana'    => 'https://images.unsplash.com/photo-1628556270448-4f4e7c80d98b?w=800&q=85&auto=format&fit=crop',
    'nastaran' => 'https://images.unsplash.com/photo-1525313346988-1fcc206374f0?w=800&q=85&auto=format&fit=crop',
    'bahar'    => 'https://images.unsplash.com/photo-1550837810-b53c6815fe29?w=800&q=85&auto=format&fit=crop',
    'avishan'  => 'https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=800&q=85&auto=format&fit=crop',
    'zafaran'  => 'https://images.unsplash.com/photo-1596040033229-a9821ebd058d?w=800&q=85&auto=format&fit=crop',
];

$downloaded = [];
foreach ( $stock as $slug => $url ) {
    $local = $imgDir . '/' . $slug . '.jpg';
    if ( ! file_exists( $local ) || filesize( $local ) < 1000 ) {
        $ctx = stream_context_create( [ 'http' => [ 'timeout' => 20, 'user_agent' => 'ACC-Shop/1.0' ] ] );
        $bin = @file_get_contents( $url, false, $ctx );
        if ( $bin && strlen( $bin ) > 1000 ) {
            file_put_contents( $local, $bin );
            $downloaded[] = $slug;
        }
    }
}

// hero poster
$heroPoster = __DIR__ . '/assets/img/shop/hero-poster.jpg';
if ( ! file_exists( $heroPoster ) || filesize( $heroPoster ) < 1000 ) {
    $ctx = stream_context_create( [ 'http' => [ 'timeout' => 20 ] ] );
    $bin = @file_get_contents( 'https://images.unsplash.com/photo-1501004318643-1d4f64f7b8a0?w=1920&q=85&auto=format&fit=crop', false, $ctx );
    if ( $bin ) file_put_contents( $heroPoster, $bin );
}

// hero video — Mixkit free license
$videoDir = __DIR__ . '/assets/video';
@mkdir( $videoDir, 0755, true );
$heroVideo = $videoDir . '/shop-hero.mp4';
$videoUrl  = '/acc-engine/assets/video/shop-hero.mp4';
if ( ! file_exists( $heroVideo ) || filesize( $heroVideo ) < 50000 ) {
    $remote = 'https://assets.mixkit.co/videos/preview/mixkit-green-plant-leaves-in-the-breeze-9976-large.mp4';
    $ctx = stream_context_create( [ 'http' => [ 'timeout' => 60 ] ] );
    $bin = @file_get_contents( $remote, false, $ctx );
    if ( $bin && strlen( $bin ) > 50000 ) {
        file_put_contents( $heroVideo, $bin );
    } else {
        $videoUrl = 'https://assets.mixkit.co/videos/preview/mixkit-green-plant-leaves-in-the-breeze-9976-large.mp4';
    }
}

$copy = [
    'golab' => [
        'tagline' => 'گل محمد از باغ‌های اصفهان',
        'short'   => 'گلاب اصیل با عطر پایدار — مناسب پذیرایی و طب سنتی.',
        'long'    => "گلاب ما از گل محمد تازه‌چیده و با روش سنتی دو دیگی عرق‌گیری می‌شود.\n\nهر بطری قبل از ارسال از نظر شفافیت، عطر و غلظت کنترل می‌شود. بدون افزودن اسانس مصنوعی.\n\nپیشنهاد: یک قاشق در چای عصرانه، یا چند قطره روی بستنی و دسر.",
    ],
    'bidmeshk' => [
        'tagline' => 'آرامش در هر قطره',
        'short'   => 'عرق بیدمشک با رایحه‌ای ملایم و دل‌انگیز.',
        'long'    => "بیدمشک از کهن‌ترین عرقیات ایرانی است — برای آرامش، خواب و پذیرایی.\n\nعرق‌گیری در فصل گل‌دهی و بسته‌بندی در شیشه‌های محافظ از نور.\n\nدر مهمانی‌ها و مراسم سنتی، همراهی بی‌نظیر.",
    ],
    'kasni' => [
        'tagline' => 'تأثیر گیاهی، اصالت ایرانی',
        'short'   => 'عرق کاسنی خالص — همراه سفره و طب خانگی.',
        'long'    => "کاسنی گیاهی است که نسل‌ها در فرهنگ غذایی و سلامت ایرانی جایگاه دارد.\n\nعرق‌گیری از ریشه و برگ تازه، بدون نگهدارنده.\n\nطعم تلخ‌ملایم مشخص کاسنی را در هر جرعه حس کنید.",
    ],
    'naana' => [
        'tagline' => 'خنکی و طراوت نعنا',
        'short'   => 'نعنای تازه، عرق‌گیری همان روز.',
        'long'    => "عرق نعنا برای روزهای گرم و پذیرایی تابستانی ایده‌آل است.\n\nبسته‌بندی شیشه‌ای ۲۵۰ml و پت ۵۰۰ml.\n\nچند قطره در آب یخ — ساده و اصیل.",
    ],
    'nastaran' => [
        'tagline' => 'گل‌های بهاری در بطری',
        'short'   => 'عرق نسترن با رایحه گلی ظریف.',
        'long'    => "نسترن از گل‌هایی است که عطر ظریف و لطیفی دارد.\n\nمناسب پذیرایی خاص و هدیه.\n\nهر بطری با برچسب دست‌ساز و تاریخ عرق‌گیری.",
    ],
    'bahar' => [
        'tagline' => 'بهار نارنج، شادابی بهاری',
        'short'   => 'رایحه‌ای شاداب از شکوفه‌های بهار نارنج.',
        'long'    => "عرق بهارنارنج از شکوفه‌های تازه بهار نارنج عرق‌گیری می‌شود.\n\nدر شیرینی‌پزی و نوشیدنی‌های سرد بی‌نظیر است.\n\nغلظت استاندارد، بدون شکر افزوده.",
    ],
    'avishan' => [
        'tagline' => 'آویشن کوهی، اصیل و تند',
        'short'   => 'طعم مشخص آویشن برای غذا و دمنوش.',
        'long'    => "آویشن از گیاهان دارویی پرکاربرد است.\n\nعرق‌گیری با بخار آرام برای حفظ اسانس.\n\nهمراه غذاهای سنگین و دمنوش عصر.",
    ],
    'zafaran' => [
        'tagline' => 'زعفران اصیل، عرق نادر',
        'short'   => 'عرق زعفران — کمیاب و لوکس.',
        'long'    => "زعفران گران‌بهاترین ادویه ایران است و عرق آن نادر و خاص.\n\nمناسب هدیه VIP و مراسم رسمی.\n\nهر بطری محدود و شماره‌دار.",
    ],
];

$updated = 0;
foreach ( $copy as $slug => $c ) {
    $localImg = $assetBase . $slug . '.jpg';
    if ( ! file_exists( __DIR__ . '/assets/img/shop/bottles/' . $slug . '.jpg' ) ) {
        $localImg = '';
    }
    $gallery = array_values( array_filter( [
        $localImg,
        $localImg ? str_replace( '.jpg', '-2.jpg', $localImg ) : '',
    ] ) );
    if ( $localImg && ! file_exists( __DIR__ . str_replace( '/acc-engine/', '/', $gallery[1] ?? '' ) ) ) {
        $gallery = [ $localImg ];
    }

    $wpdb->update( $pre . 'arag_families', [
        'tagline'           => $c['tagline'],
        'description_short' => $c['short'],
        'description_long'  => $c['long'],
        'bottle_image_url'  => $localImg,
        'image_url'         => $localImg,
        'gallery_json'      => wp_json_encode( $gallery, JSON_UNESCAPED_UNICODE ),
    ], [ 'slug' => $slug ] );
    if ( $wpdb->rows_affected ) $updated++;
}

// settings
Arag_Shop::save_settings( [
    'hero_eyebrow'    => 'عرق‌گیری سنتی · ۱۳۵۰',
    'hero_title'      => 'طبیعت را به خانه ببرید',
    'hero_subtitle'   => 'بدون اسانس مصنوعی',
    'hero_video_url'  => $videoUrl,
    'hero_poster_url' => '/acc-engine/assets/img/shop/hero-poster.jpg',
    'brand_story'     => 'ما باور داریم عرق گیاهان باید همان‌طور که از دیگ می‌آید به دست شما برسد. هر محصول از مزرعه تا بطری ردیابی می‌شود.',
] );

// reviews seed
$reviews_seed = [
    [ 'slug' => 'golab', 'name' => 'مریم رضایی', 'city' => 'اصفهان', 'rating' => 5, 'body' => 'گلابی که گرفتم عطر واقعی گل محمد داشت. در شربت و دسر عالی بود. بسته‌بندی شیشه‌ای هم محکم رسید.', 'verified' => 1 ],
    [ 'slug' => 'golab', 'name' => 'حامد موسوی', 'city' => 'تهران', 'rating' => 5, 'body' => 'سال‌هاست گلاب می‌خرم؛ این یکی از اصیل‌ترین‌هاست. غلظت مناسب و بوی طبیعی.', 'verified' => 1 ],
    [ 'slug' => 'naana', 'name' => 'سارا احمدی', 'city' => 'شیراز', 'rating' => 4, 'body' => 'عرق نعنا خیلی تازه بود. برای تابستان عالیه. فقط دوست داشتم حجم یک لیتری هم داشته باشید.', 'verified' => 0 ],
    [ 'slug' => 'kasni', 'name' => 'علی کریمی', 'city' => 'مشهد', 'rating' => 5, 'body' => 'طعم کاسنی اصیل و تلخی ملایم درست. برای سفره خانوادگی عالی.', 'verified' => 1 ],
    [ 'slug' => 'zafaran', 'name' => 'نرگس هاشمی', 'city' => 'تهران', 'rating' => 5, 'body' => 'هدیه دادم، خیلی راضی بودند. بسته‌بندی لوکس و بوی زعفران واقعی.', 'verified' => 1 ],
];

$rev_cnt = 0;
foreach ( $reviews_seed as $r ) {
    $fid = (int) $wpdb->get_var( $wpdb->prepare(
        "SELECT id FROM {$pre}arag_families WHERE slug = %s", $r['slug']
    ) );
    if ( ! $fid ) continue;
    $exists = $wpdb->get_var( $wpdb->prepare(
        "SELECT id FROM {$pre}arag_reviews WHERE family_id = %d AND author_name = %s LIMIT 1",
        $fid, $r['name']
    ) );
    if ( $exists ) continue;
    $wpdb->insert( $pre . 'arag_reviews', [
        'family_id'   => $fid,
        'author_name' => $r['name'],
        'author_city' => $r['city'],
        'rating'      => $r['rating'],
        'body'        => $r['body'],
        'is_verified' => $r['verified'],
        'is_approved' => 1,
        'created_at'  => current_time( 'mysql' ),
    ] );
    $rev_cnt++;
}

echo json_encode( [
    'success'    => true,
    'downloaded' => $downloaded,
    'copy_updated' => $updated,
    'reviews'    => $rev_cnt,
    'video'      => $videoUrl,
    'poster'     => file_exists( $heroPoster ),
], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT );
