2026-10-20 06:45:30 -04:00
<? php
if ( PHP_SAPI !== 'cli' ) exit ;
require __DIR__ . '/../classes/Base.php' ;
$settings = ( new Base ()) -> getSettings (); $name = $argv [ 2 ] ?? '' ;
if ( ! preg_match ( '/\Ahcr_http_test_[a-f0-9]{12}\z/' , $name ) || ( string ) $settings -> DatabaseName !== $name ||! in_array (( string ) $settings -> DatabaseServer ,[ '127.0.0.1' , 'localhost' , '::1' ], true )) throw new RuntimeException ( 'Concurrency workers require an isolated local test database.' );
2026-10-21 06:53:45 -04:00
$_SESSION = [ Base :: USER_AUTHENTICATED => true , Base :: USER_ROLE => TenantAccess :: SUPER , Base :: USER_SERIAL => 1 , Base :: USER_NAME => 'Test worker' ];
2026-10-20 06:45:30 -04:00
echo "READY \n " ; flush (); fgets ( STDIN );
try {
$service = new MaintenanceService ();
2026-10-21 06:53:45 -04:00
if (( $argv [ 1 ] ?? '' ) === 'accept' ){ $_SESSION [ Base :: USER_SERIAL ] = ( int ) $argv [ 4 ];( new ClubInvitations ()) -> accept (( int ) $argv [ 3 ]);}
elseif (( $argv [ 1 ] ?? '' ) === 'membership' )( new RosterService ()) -> saveMember (( int ) $argv [ 4 ],( int ) $argv [ 3 ], '' , 'inactive' , '2026-01-01' );
elseif (( $argv [ 1 ] ?? '' ) === 'disable' ) $service -> setUserActive (( int ) $argv [ 3 ], false );
2026-10-20 06:45:30 -04:00
elseif (( $argv [ 1 ] ?? '' ) === 'default' ) $service -> setDropdownDefault (( int ) $argv [ 3 ],( int ) $argv [ 4 ], true );
elseif (( $argv [ 1 ] ?? '' ) === 'payment' )( new LedgerService ()) -> payment (( int ) $argv [ 4 ],( int ) $argv [ 3 ], $argv [ 5 ], '2026-01-01' , bin2hex ( random_bytes ( 32 )));
elseif (( $argv [ 1 ] ?? '' ) === 'reverse' )( new LedgerService ()) -> reverse (( int ) $argv [ 4 ],( int ) $argv [ 3 ], 'Concurrent reversal' , $argv [ 5 ]);
elseif (( $argv [ 1 ] ?? '' ) === 'adjust' )( new LedgerService ()) -> adjust (( int ) $argv [ 4 ],( int ) $argv [ 3 ], '90.00' , 'Concurrent correction' , $argv [ 5 ]);
else throw new RuntimeException ( 'Unknown test operation.' );
echo json_encode ([ 'ok' => true ]), " \n " ;
} catch ( AppException $e ){ echo json_encode ([ 'ok' => false , 'status' => $e -> status ]), " \n " ;}