<?php
/** CLI: the sole argument is the site root; idempotently adds clause closure storage. */
if(PHP_SAPI!=='cli')exit;
$root=$argv[1]??'D:/phpstudy_pro/WWW/cqoms.com';require rtrim($root,'/\\').'/vendor/autoload.php';
$app=new \think\App(rtrim($root,'/\\').'/');$app->initialize();
use think\facade\Db;
$c=Db::connect()->getConfig();$p=$c['prefix'];if(!preg_match('/^[a-zA-Z0-9_]*$/D',$p))throw new RuntimeException('Invalid prefix');
$fields=array_column(Db::query('SHOW COLUMNS FROM `'.$p.'me_check_list`'),'Field');
if(!in_array('freq',$fields,true))Db::execute('ALTER TABLE `'.$p.'me_check_list` ADD COLUMN freq TINYINT NOT NULL DEFAULT 1 AFTER num');
Db::execute("CREATE TABLE IF NOT EXISTS `{$p}me_check_close` (
 id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, m_id INT NOT NULL, check_id INT NOT NULL,
 check_date INT NOT NULL, shift INT NOT NULL, tid INT NOT NULL, mid INT NOT NULL, created_at INT NOT NULL,
 UNIQUE KEY idx_clause_period(m_id,check_date,shift,check_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
\app\mobile\service\CheckCatalog::invalidate();
echo json_encode(['database'=>$c['database'],'ready'=>true]),PHP_EOL;
