import { Controller, Get, Post, Put, Delete, Body, Param, UseGuards, Request } from '@nestjs/common';
import { NoteCategoryService } from './note-category.service';
import { CombinedAuthGuard } from '../auth/combined-auth.guard';

@Controller('v1/note-categories')
@UseGuards(CombinedAuthGuard)
export class NoteCategoryController {
    constructor(private readonly categoryService: NoteCategoryService) { }

    @Get()
    async findAll(@Request() req: any) {
        return this.categoryService.findAll(req.user.id, req.user.tenantId);
    }

    @Post()
    async create(@Request() req: any, @Body('name') name: string, @Body('parentId') parentId?: string) {
        return this.categoryService.create(req.user.id, req.user.tenantId, name, parentId);
    }

    @Put(':id')
    async update(
        @Request() req: any,
        @Param('id') id: string,
        @Body('name') name?: string,
        @Body('parentId') parentId?: string,
    ) {
        return this.categoryService.update(req.user.id, req.user.tenantId, id, name, parentId);
    }

    @Delete(':id')
    async remove(@Request() req: any, @Param('id') id: string) {
        return this.categoryService.remove(req.user.id, req.user.tenantId, id);
    }
}
