import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'; import { Permissions } from '../common/permissions.js'; import { AuditLog, RequirePermissions } from '../auth/decorators.js'; import { CreateOrgDto, UpdateOrgDto } from './dto.js'; import { BatchDeleteDto } from '../common/page.dto.js'; import { OrgsService } from './orgs.service.js'; @Controller('orgs') export class OrgsController { constructor(private readonly service: OrgsService) {} @Get() @RequirePermissions(Permissions.org.list) list() { return this.service.listOrgs(); } @Get(':id') @RequirePermissions(Permissions.org.list) get(@Param('id') id: string) { return this.service.findById(id); } @Post() @RequirePermissions(Permissions.org.create) @AuditLog('org', 'create') create(@Body() dto: CreateOrgDto) { return this.service.createOrg(dto); } @Patch(':id') @RequirePermissions(Permissions.org.update) @AuditLog('org', 'update') update(@Param('id') id: string, @Body() dto: UpdateOrgDto) { return this.service.updateOrg(id, dto); } @Delete(':id') @RequirePermissions(Permissions.org.delete) @AuditLog('org', 'delete') remove(@Param('id') id: string) { return this.service.softRemove(id); } @Post('batch-delete') @RequirePermissions(Permissions.org.delete) @AuditLog('org', 'batch-delete') batchDelete(@Body() dto: BatchDeleteDto) { return this.service.batchDelete(dto.ids); } }