<?php
declare(strict_types=1);
date_default_timezone_set('UTC');
require dirname(__DIR__).'/vendor/autoload.php';
use Aen\SpreadsheetWorkshop\Workshop;
$root=dirname(__DIR__);$action=$argv[1]??'help';
if($action==='build'){
 $dir=$root.'/public/generated';if(!is_dir($dir))mkdir($dir,0775,true);$cases=[];
 foreach(array_keys(Workshop::CASES)as$id){$book=Workshop::make($id);$file=$dir.'/'.$id.'.xlsx';Workshop::save($book,$file);$book->disconnectWorksheets();$cases[]=Workshop::inspect($file,$id);}
 $json=json_encode(['version'=>Workshop::VERSION,'generatedBy'=>'PHP + PhpSpreadsheet; every workbook was saved and read again','cases'=>$cases],JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_THROW_ON_ERROR);
 file_put_contents($dir.'/manifest.json',$json."\n");
 $csv=fopen($dir.'/safe-text.csv','wb');fwrite($csv,"\xEF\xBB\xBF");fputcsv($csv,['Источник','Значение'], ';','"','',"\r\n");
 foreach(['=2+2','+SUM(1,2)','-1+2','@SUM(A1:A2)','Обычное название']as$v){if(preg_match('/^[=+\-@\t\r\n]/u',$v))$v="'".$v;fputcsv($csv,['Внешний текст',$v],';','"','',"\r\n");}fclose($csv);
 copy($root.'/src/Workshop.php',$root.'/public/source/Workshop.php.txt');copy(__FILE__,$root.'/public/source/workshop.php.txt');
 echo 'Built '.count($cases).' workbooks and inspected manifest'.PHP_EOL;exit(0);
}
if($action==='inspect'){
 $id=$argv[2]??'report';if(!isset(Workshop::CASES[$id])){fwrite(STDERR,"Unknown example\n");exit(2);}
 echo json_encode(Workshop::inspect($root.'/public/generated/'.$id.'.xlsx',$id),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_THROW_ON_ERROR).PHP_EOL;exit(0);
}
echo "PhpSpreadsheet workshop\nphp bin/workshop.php build\nphp bin/workshop.php inspect formulas\n";
exit($action==='help'?0:2);
