import { Controller, Get, Post, Patch, Body, Param, Query, UseGuards } from '@nestjs/common';
import { OrdersService } from './orders.service';
import { AuthGuard } from '../auth/auth.guard';
import { CurrentUser } from '../auth/auth.decorator';
import { CreateOrderDto } from './dto/create-order.dto';
import { UpdateOrderStatusDto } from './dto/update-order-status.dto';
import { OrderFilterDto } from './dto/order-filter.dto';
@Controller('orders')
@UseGuards(AuthGuard)
export class OrdersController {
constructor(private readonly ordersService: OrdersService) {}
@Get() async findAll(@CurrentUser('userId') userId: string, @Query() filters: OrderFilterDto) {
return this.ordersService.findAll(userId, filters);
}
@Get(':id') async findOne(@CurrentUser('userId') userId: string, @Param('id') id: string) {
return this.ordersService.findById(userId, id);
}
@Post() async create(@CurrentUser('userId') userId: string, @Body() dto: CreateOrderDto) {
return this.ordersService.create(userId, dto);
}
@Patch(':id/status') async updateStatus(@Param('id') id: string, @Body() dto: UpdateOrderStatusDto) {
return this.ordersService.updateStatus(id, dto);
}
}