import { Controller, Get, Param } from '@nestjs/common'; import { ApiTags, ApiOperation, ApiResponse, ApiParam } from '@nestjs/swagger'; import { ReligionsService } from './religions.service'; @Controller('religions') @ApiTags('religions') export class ReligionsController { constructor(private readonly religionsService: ReligionsService) {} @Get() @ApiOperation({ summary: 'Get all religions overview' }) @ApiResponse({ status: 200, description: 'Returns overview of all 6 religions', }) getAllReligions() { return this.religionsService.getAllReligions(); } @Get(':name') @ApiOperation({ summary: 'Get detailed information about a specific religion' }) @ApiParam({ name: 'name', description: 'Religion name', enum: [ 'vodou', 'santeria', 'candomble', 'palo-mayombe', 'santa-muerte', 'obeah', ], }) @ApiResponse({ status: 200, description: 'Returns detailed religion information with myth debunking', }) @ApiResponse({ status: 404, description: 'Religion not found' }) getReligion(@Param('name') name: string) { return this.religionsService.getReligion(name); } @Get(':name/myths') @ApiOperation({ summary: 'Get myths vs reality for a specific religion' }) @ApiParam({ name: 'name', description: 'Religion name', enum: [ 'vodou', 'santeria', 'candomble', 'palo-mayombe', 'santa-muerte', 'obeah', ], }) @ApiResponse({ status: 200, description: 'Returns myth debunking information' }) getReligionMyths(@Param('name') name: string) { return this.religionsService.getReligionMyths(name); } @Get(':name/legal') @ApiOperation({ summary: 'Get legal victories for a specific religion' }) @ApiParam({ name: 'name', description: 'Religion name', enum: [ 'vodou', 'santeria', 'candomble', 'palo-mayombe', 'santa-muerte', 'obeah', ], }) @ApiResponse({ status: 200, description: 'Returns legal victories and status' }) getReligionLegal(@Param('name') name: string) { return this.religionsService.getReligionLegal(name); } }