import { Controller, Get, Post, Body, UseGuards } from "@nestjs/common"
import { ApiTags, ApiOperation, ApiBearerAuth } from "@nestjs/swagger"
import { AuthGuardMiddleware } from "src/middleware/auth-guard.middleware"
import { StripeSettingsService } from "./stripe-settings.service"
import { CreateStripeSettingsDto } from "./dto/create-stripe-settings.dto"

@ApiTags("Stripe Settings")
@Controller("stripe-settings")
@UseGuards(AuthGuardMiddleware)
export class StripeSettingsController {
  constructor(private readonly stripeSettingsService: StripeSettingsService) {}

  @Post()
  @ApiBearerAuth("access-token")
  @ApiOperation({ summary: "Create or update Stripe settings" })
  createOrUpdate(@Body() dto: CreateStripeSettingsDto) {
    return this.stripeSettingsService.createOrUpdate(dto)
  }

  @Get()
  @ApiBearerAuth("access-token")
  @ApiOperation({ summary: "Get active Stripe settings" })
  findActive() {
    return this.stripeSettingsService.findActive()
  }
}
