/**
 * ============================================================
 * 개체(Cow) 컨트롤러
 * ============================================================
 *
 * 사용 페이지: 개체 목록 페이지 (/cow), 개체 상세 페이지 (/cow/:cowNo)
 *
 * 엔드포인트:
 * - GET /cow/:cowId - 개체 상세 조회
 * - POST /cow/ranking - 랭킹 적용 개체 목록 조회
 * ============================================================
 */

import { Controller, Get, Post, Body, Param } from '@nestjs/common';
import { CowService } from './cow.service';
import { RankingRequestDto } from './dto/ranking-request.dto';

@Controller('cow')
export class CowController {
  constructor(private readonly cowService: CowService) {}

  /**
   * POST /cow/ranking
   * 랭킹이 적용된 개체 목록 조회
   *
   * 사용 페이지: 개체 목록 페이지
   */
  @Post('ranking')
  findAllWithRanking(@Body() rankingRequest: RankingRequestDto) {
    return this.cowService.findAllWithRanking(rankingRequest);
  }

  /**
   * GET /cow/:cowId
   * 개체 상세 조회 (cowId: 개체식별번호 KOR로 시작)
   */
  @Get(':cowId')
  findOne(@Param('cowId') cowId: string) {
    return this.cowService.findByCowId(cowId);
  }
}
