<?php
/**
 * Soft-seed فروشگاه آبلیمو — حجم‌های ۱/۲/۴/۱۰ لیتر + بسته‌های شل
 * php run-arag-lemon-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';

if ( PHP_SAPI !== 'cli' && PHP_SAPI !== 'phpdbg' ) {
	http_response_code( 403 );
	exit( 'CLI only' );
}

global $wpdb;
$pre = $wpdb->prefix;
$ft  = $pre . 'arag_families';
$vt  = $pre . 'arag_variants';
$pt  = $pre . 'arag_packages';

$done = [];

foreach ( [
	'tagline'           => "tagline VARCHAR(240) NOT NULL DEFAULT '' AFTER icon",
	'description_short' => "description_short TEXT NULL AFTER tagline",
	'description_long'  => "description_long TEXT NULL AFTER description_short",
	'bottle_image_url'  => "bottle_image_url VARCHAR(500) NOT NULL DEFAULT '' AFTER description_long",
	'gallery_json'      => "gallery_json JSON NULL AFTER bottle_image_url",
] as $col => $ddl ) {
	if ( ! $wpdb->get_row( "SHOW COLUMNS FROM `{$ft}` LIKE '{$col}'" ) ) {
		$wpdb->query( "ALTER TABLE `{$ft}` ADD COLUMN {$ddl}" );
		$done[] = "col:$col";
	}
}

$imgLocal = '/acc-engine/assets/img/shop/bottles/lemon.jpg';
$imgAbs   = __DIR__ . '/assets/img/shop/bottles/lemon.jpg';
if ( ! file_exists( $imgAbs ) || filesize( $imgAbs ) < 1000 ) {
	$imgLocal = '/acc-engine/assets/img/shop/hero-lemon.jpg';
}

$family = [
	'name'              => 'آبلیمو',
	'slug'              => 'lemon',
	'icon'              => '🍋',
	'tagline'           => '',
	'description_short' => '',
	'description_long'  => "آبلیموی شیراز از لیموی رسیده و تازه آب‌گیری می‌شود.\n\nبدون رنگ و بدون رقیق‌سازی غیرضروری.\n\nمناسب سالاد، خورشت، نوشیدنی و استفاده روزمره در آشپزخانه.",
	'bottle_image_url'  => $imgLocal,
	'image_url'         => $imgLocal,
	'gallery_json'      => wp_json_encode( [ $imgLocal ], JSON_UNESCAPED_UNICODE ),
	'sort_order'        => 0,
	'is_active'         => 1,
];

$fid = (int) $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$ft} WHERE slug = %s LIMIT 1", 'lemon' ) );
if ( $fid ) {
	$wpdb->update( $ft, $family, [ 'id' => $fid ] );
	$done[] = 'family:updated';
} else {
	$wpdb->insert( $ft, array_merge( $family, [
		'created_at' => current_time( 'mysql' ),
	] ) );
	$fid = (int) $wpdb->insert_id;
	$done[] = 'family:created';
}

$hidden = (int) $wpdb->query(
	"UPDATE {$ft} SET is_active = 0 WHERE slug NOT IN ('lemon','ablime','ablimo') AND is_active = 1"
);
$done[] = "hidden_others:{$hidden}";
$wpdb->update( $ft, [ 'is_active' => 1 ], [ 'id' => $fid ] );

// حجم‌ها به‌جای مدل طبیعی/غلیظ
$variants = [
	[
		'name' => '۱ لیتری',
		'slug' => 'lemon-1l',
		'desc' => '',
		'sort' => 0,
		'packages' => [
			[ 'label' => 'تک عدد', 'volume' => '۱ لیتر', 'price' => 290000 ],
			[ 'label' => 'بسته شل ۶ تایی', 'volume' => '۶ × ۱ لیتر', 'price' => 1600000 ],
		],
	],
	[
		'name' => '۲ لیتری',
		'slug' => 'lemon-2l',
		'desc' => '',
		'sort' => 1,
		'packages' => [
			[ 'label' => 'تک عدد', 'volume' => '۲ لیتر', 'price' => 550000 ],
			[ 'label' => 'بسته شل ۴ تایی', 'volume' => '۴ × ۲ لیتر', 'price' => 2000000 ],
		],
	],
	[
		'name' => '۴ لیتری',
		'slug' => 'lemon-4l',
		'desc' => '',
		'sort' => 2,
		'packages' => [
			[ 'label' => 'تک عدد', 'volume' => '۴ لیتر', 'price' => 1050000 ],
		],
	],
	[
		'name' => '۱۰ لیتری',
		'slug' => 'lemon-10l',
		'desc' => '',
		'sort' => 3,
		'packages' => [
			[ 'label' => 'تک عدد', 'volume' => '۱۰ لیتر', 'price' => 2400000 ],
		],
	],
];

$keep_slugs = array_column( $variants, 'slug' );

// غیرفعال‌کردن مدل‌های قدیمی (طبیعی / غلیظ و هر چیز غیرحجمی)
$old = $wpdb->get_col( $wpdb->prepare(
	"SELECT id FROM {$vt} WHERE family_id = %d",
	$fid
) ) ?: [];
foreach ( $old as $oid ) {
	$oid = (int) $oid;
	$slug = (string) $wpdb->get_var( $wpdb->prepare( "SELECT slug FROM {$vt} WHERE id = %d", $oid ) );
	if ( ! in_array( $slug, $keep_slugs, true ) ) {
		$wpdb->update( $vt, [ 'is_active' => 0 ], [ 'id' => $oid ] );
		$wpdb->query( $wpdb->prepare( "UPDATE {$pt} SET is_active = 0 WHERE variant_id = %d", $oid ) );
		$done[] = "deactivated:$slug";
	}
}

$created_v = 0;
$updated_v = 0;
$created_p = 0;
$updated_p = 0;

foreach ( $variants as $var ) {
	$vid = (int) $wpdb->get_var( $wpdb->prepare(
		"SELECT id FROM {$vt} WHERE family_id = %d AND slug = %s LIMIT 1",
		$fid, $var['slug']
	) );
	$payload = [
		'family_id'   => $fid,
		'name'        => $var['name'],
		'slug'        => $var['slug'],
		'description' => $var['desc'],
		'sort_order'  => $var['sort'],
		'is_active'   => 1,
	];
	if ( $vid ) {
		$wpdb->update( $vt, $payload, [ 'id' => $vid ] );
		$updated_v++;
	} else {
		$wpdb->insert( $vt, $payload );
		$vid = (int) $wpdb->insert_id;
		$created_v++;
	}

	$keep_labels = [];
	foreach ( $var['packages'] as $pidx => $pkg ) {
		$keep_labels[] = $pkg['label'];
		$pex = (int) $wpdb->get_var( $wpdb->prepare(
			"SELECT id FROM {$pt} WHERE variant_id = %d AND label = %s LIMIT 1",
			$vid, $pkg['label']
		) );
		$row = [
			'variant_id' => $vid,
			'label'      => $pkg['label'],
			'volume'     => $pkg['volume'],
			'price'      => (int) $pkg['price'],
			'sort_order' => $pidx,
			'is_active'  => 1,
		];
		if ( $pex ) {
			$wpdb->update( $pt, $row, [ 'id' => $pex ] );
			$updated_p++;
		} else {
			$wpdb->insert( $pt, $row );
			$created_p++;
		}
	}

	// بسته‌های قدیمی همین واریانت را خاموش کن
	if ( $keep_labels ) {
		$placeholders = implode( ',', array_fill( 0, count( $keep_labels ), '%s' ) );
		$wpdb->query( $wpdb->prepare(
			"UPDATE {$pt} SET is_active = 0 WHERE variant_id = %d AND label NOT IN ($placeholders)",
			array_merge( [ $vid ], $keep_labels )
		) );
	}
}

Arag_Shop::save_settings( [
	'brand_name'           => 'آبلیموی شیراز',
	'platform_tagline'     => 'فروشگاه آبلیموی شیراز',
	'hero_eyebrow'         => '',
	'hero_title'           => 'آبلیموی شیراز',
	'hero_subtitle'        => '',
	'hero_video_url'       => '',
	'hero_poster_url'      => '/acc-engine/assets/img/shop/hero-lemon.jpg',
	'brand_story'          => 'هر بطری آبلیمو از انتخاب لیموی تازه تا آب‌گیری و بسته‌بندی با دقت انجام می‌شود. آبلیموی شیراز یعنی تازگی در مبدأ و خلوص در طعم.',
	'announcements'        => [
		'🚚 ارسال رایگان برای خرید بالای ۵۰۰ هزار تومان',
		'🍋 آبلیموی شیراز از لیموی تازه',
		'⭐ تازگی، خلوص، بسته‌بندی و ارسال مطمئن',
	],
	'primary_color'        => '#1b4332',
	'accent_color'         => '#52b788',
	'auto_approve_reviews' => true,
] );

echo json_encode( [
	'success'          => true,
	'family_id'        => $fid,
	'slug'             => 'lemon',
	'variants_created' => $created_v,
	'variants_updated' => $updated_v,
	'packages_created' => $created_p,
	'packages_updated' => $updated_p,
	'done'             => $done,
	'shop_url'         => '/acc-engine/shop.php?p=lemon&step=models',
], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT ) . PHP_EOL;
