/**
 * Throwaway integration test: confirms SubscriptionsService.swapPackage
 * clamps subscription_family_members to the new package's capacity.
 *
 * Run from backend/: `node ./dist/scripts/test-swap-reconcile.js`.
 */
import { NestFactory } from '@nestjs/core';
import { AppModule } from '../src/app.module';
import { SubscriptionsService } from '../src/modules/packages/subscriptions.service';

const USER_ID = process.argv[2];
const TARGET_PKG_ID = process.argv[3];
if (!USER_ID || !TARGET_PKG_ID) {
  console.error('usage: node test-swap-reconcile.js <userId> <newPackageId>');
  process.exit(1);
}

void (async () => {
  const app = await NestFactory.createApplicationContext(AppModule, {
    logger: ['error'],
  });
  try {
    const svc = app.get(SubscriptionsService);
    const result = await svc.swapPackage(USER_ID, TARGET_PKG_ID, 'e2e reconciliation test');
    console.log(JSON.stringify({ ok: true, subId: result.id, newPackageId: result.packageId }));
  } catch (e) {
    console.log(JSON.stringify({ ok: false, error: (e as Error).message }));
    process.exitCode = 1;
  } finally {
    await app.close();
  }
})();
