import { AuthMethod, MultiTenancyInterceptor, UseAuth } from '@backend/auth'
import { Controller, Get, UseInterceptors } from '@nestjs/common'
import { ApiInternalServerErrorResponse, ApiOkResponse, ApiTags } from '@nestjs/swagger'
import { StatisticsService } from '../services'
import { StatisticsResponse } from '../types'

@UseAuth(AuthMethod.JWT)
@UseInterceptors(MultiTenancyInterceptor)
@Controller('stats')
@ApiTags('default')
export class StatisticsController {
	constructor(private readonly _statsService: StatisticsService) {}

	@Get()
	@ApiOkResponse({ type: StatisticsResponse })
	@ApiInternalServerErrorResponse()
	async find(): Promise<StatisticsResponse> {
		return this._statsService.getStatisticsData()
	}
}
