Files
genome2025/backend/src/dashboard/dashboard.controller.ts
2025-12-09 17:02:27 +09:00

151 lines
4.1 KiB
TypeScript

import { Controller, Get, Param, Query } from '@nestjs/common';
import { DashboardService } from './dashboard.service';
import { DashboardFilterDto } from './dto/dashboard-filter.dto';
@Controller('dashboard')
export class DashboardController {
constructor(private readonly dashboardService: DashboardService) {}
/**
* GET /dashboard/summary/:farmNo - 농장 현황 요약
*/
@Get('summary/:farmNo')
getFarmSummary(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getFarmSummary(+farmNo, filter);
}
/**
* GET /dashboard/analysis-completion/:farmNo - 분석 완료 현황
*/
@Get('analysis-completion/:farmNo')
getAnalysisCompletion(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getAnalysisCompletion(+farmNo, filter);
}
/**
* GET /dashboard/evaluation/:farmNo - 농장 종합 평가
*/
@Get('evaluation/:farmNo')
getFarmEvaluation(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getFarmEvaluation(+farmNo, filter);
}
/**
* GET /dashboard/region-comparison/:farmNo - 보은군 비교 분석
*/
@Get('region-comparison/:farmNo')
getRegionComparison(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getRegionComparison(+farmNo, filter);
}
/**
* GET /dashboard/cow-distribution/:farmNo - 개체 분포 분석
*/
@Get('cow-distribution/:farmNo')
getCowDistribution(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getCowDistribution(+farmNo, filter);
}
/**
* GET /dashboard/kpn-aggregation/:farmNo - KPN 추천 집계
*/
@Get('kpn-aggregation/:farmNo')
getKpnRecommendationAggregation(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getKpnRecommendationAggregation(+farmNo, filter);
}
/**
* GET /dashboard/farm-kpn-inventory/:farmNo - 농장 보유 KPN 목록
*/
@Get('farm-kpn-inventory/:farmNo')
getFarmKpnInventory(@Param('farmNo') farmNo: string) {
return this.dashboardService.getFarmKpnInventory(+farmNo);
}
/**
* GET /dashboard/analysis-years/:farmNo - 농장 분석 이력 연도 목록
*/
@Get('analysis-years/:farmNo')
getAnalysisYears(@Param('farmNo') farmNo: string) {
return this.dashboardService.getAnalysisYears(+farmNo);
}
/**
* GET /dashboard/analysis-years/:farmNo/latest - 최신 분석 연도
*/
@Get('analysis-years/:farmNo/latest')
getLatestAnalysisYear(@Param('farmNo') farmNo: string) {
return this.dashboardService.getLatestAnalysisYear(+farmNo);
}
/**
* GET /dashboard/year-comparison/:farmNo - 3개년 비교 분석
*/
@Get('year-comparison/:farmNo')
getYearComparison(@Param('farmNo') farmNo: string) {
return this.dashboardService.getYearComparison(+farmNo);
}
/**
* GET /dashboard/repro-efficiency/:farmNo - 번식 효율성 분석
*/
@Get('repro-efficiency/:farmNo')
getReproEfficiency(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getReproEfficiency(+farmNo, filter);
}
/**
* GET /dashboard/excellent-cows/:farmNo - 우수개체 추천
*/
@Get('excellent-cows/:farmNo')
getExcellentCows(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getExcellentCows(+farmNo, filter);
}
/**
* GET /dashboard/cull-cows/:farmNo - 도태개체 추천
*/
@Get('cull-cows/:farmNo')
getCullCows(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getCullCows(+farmNo, filter);
}
/**
* GET /dashboard/cattle-ranking/:farmNo - 보은군 내 소 개별 순위
*/
@Get('cattle-ranking/:farmNo')
getCattleRankingInRegion(
@Param('farmNo') farmNo: string,
@Query() filter: DashboardFilterDto,
) {
return this.dashboardService.getCattleRankingInRegion(+farmNo, filter);
}
}