import { registerAs } from "@nestjs/config";

export default registerAs("app", () => ({
  port: parseInt(process.env.PORT ?? "3003", 10),
  /**
   * Shared secret for service-to-service auth (apps -> /payments/*, payment -> mark-paid).
   * Required in production; in development an empty value disables the guard with a warning.
   * TODO: integrate @tria-plc IAM / mTLS as the long-term mechanism (docs/payment-service §14).
   */
  serviceAuthToken: process.env.SERVICE_AUTH_TOKEN ?? "",
  reconciliation: {
    /** How often the stale-intent sweep runs. */
    // TODO(demo): revert to the env-driven line below after the demo. Temporarily FORCED to 30s
    // here so the .env (RECONCILE_SWEEP_INTERVAL_MS) cannot override it.
    // sweepIntervalMs: parseInt(process.env.RECONCILE_SWEEP_INTERVAL_MS ?? "60000", 10),
    sweepIntervalMs: 30_000,
    /** An intent is "stale" when non-terminal and untouched for this long. */
    staleAfterMs: parseInt(process.env.RECONCILE_STALE_AFTER_MS ?? "60000", 10),
    batchSize: parseInt(process.env.RECONCILE_BATCH_SIZE ?? "20", 10),
  },
}));
