import { Controller, Get, Post, Body, UseGuards, Request, HttpCode, HttpStatus } from '@nestjs/common';
import { AuthGuard } from '../auth/auth.guard';
import { PetsService } from './pets.service';
import { GenerateFlyerDto, ApplySubscriptionAccessDto } from './pets.dto';

@Controller('pet')
export class PetsController {
  constructor(private readonly petsService: PetsService) {}

  // Express: no auth middleware on this route — it always returns the same
  // static stub regardless of caller identity.
  @Get('get')
  @HttpCode(HttpStatus.OK)
  async get() {
    return this.petsService.get();
  }

  @Post('subscription-access/apply')
  @UseGuards(AuthGuard)
  @HttpCode(HttpStatus.OK)
  async applySubscriptionAccessSelection(@Request() req, @Body() body: ApplySubscriptionAccessDto) {
    return this.petsService.applySubscriptionAccessSelection(req.user.id, body);
  }

  @Post('generate-flyer')
  @UseGuards(AuthGuard)
  @HttpCode(HttpStatus.OK)
  async generateFlyer(@Body() body: GenerateFlyerDto) {
    return this.petsService.generateFlyer(body);
  }
}
