import { Controller, Get } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { ConfigService } from '@nestjs/config';
import { Public } from '../common/decorators/public.decorator';
import { isLiveTrackingWsEnabled } from '../config/runtime-config';

@ApiTags('config')
@Controller('config')
export class ClientConfigController {
  constructor(private readonly config: ConfigService) {}

  /** Public client flags for Flutter apps (no auth). */
  @Public()
  @Get('client')
  clientFlags() {
    const liveTrackingWsEnabled = isLiveTrackingWsEnabled(this.config);
    return {
      liveTrackingWsEnabled,
      /** When false, Flutter should prefer HTTP polling + batch route-points sync. */
      liveTrackingUseWebSocket: liveTrackingWsEnabled,
      socketNamespace: '/tracking',
      restRoutePointsFallback: true,
    };
  }
}
