import { Body, Controller, Delete, Get, Param, Patch, Post } from "@nestjs/common";
import { Permissions } from "../../common/decorators/permissions.decorator";
import { Public } from "../../common/decorators/public.decorator";
import { CategoriesService } from "./categories.service";

@Controller("categories")
export class CategoriesController {
  constructor(private readonly categories: CategoriesService) {}

  @Public()
  @Get()
  list() {
    return this.categories.list();
  }

  @Post()
  @Permissions("settings.write")
  create(@Body() body: { nameAr: string; slug: string; nameEn?: string; icon?: string; parentId?: string }) {
    return this.categories.create(body);
  }

  @Patch(":id")
  @Permissions("settings.write")
  update(@Param("id") id: string, @Body() body: { isActive?: boolean }) {
    return this.categories.update(id, body);
  }

  @Delete(":id")
  @Permissions("settings.write")
  remove(@Param("id") id: string) {
    return this.categories.remove(id);
  }
}
