import { Body, Controller, Get, Param, Post, Put, Request } from '@nestjs/common';
import { ApplicationFilesService } from './application-files.service';
import { RequirePermissions } from '../../common/decorators/permissions.decorator';

@Controller('applications/:applicationId/files')
export class ApplicationFilesController {
  constructor(private svc: ApplicationFilesService) {}

  @Get()
  @RequirePermissions('applications.view')
  get(@Request() req: any, @Param('applicationId') appId: string) {
    return this.svc.getByApplication(req.tenant, appId);
  }

  @Post()
  @RequirePermissions('applications.update')
  upsert(@Request() req: any, @Param('applicationId') appId: string, @Body() body: any) {
    return this.svc.upsert(req.tenant, appId, body);
  }

  @Put(':field')
  @RequirePermissions('applications.update')
  updateField(@Request() req: any, @Param('applicationId') appId: string, @Param('field') field: string, @Body() body: { filePath: string }) {
    return this.svc.updateField(req.tenant, appId, field, body.filePath);
  }
}
