import Foundation /// Which backend the app talks to. All three point at the *same* Next.js API /// described in `app/ios/README.md` — there is no separate mobile backend. enum APIEnvironment { case production case local var baseURL: URL { switch self { case .production: // TODO: swap for the real production domain before release. return URL(string: "https://scan-receipts.app")! case .local: // Matches `dev-verify` in the web repo's .claude/launch.json (port // 3901) so the app can be pointed at a live local backend without // colliding with the docker-compose stack on 3000. Only reachable // from an iOS Simulator on the same machine, not a physical device. return URL(string: "http://localhost:3901")! } } static var current: APIEnvironment { #if DEBUG return .local #else return .production #endif } }