import { Body, Controller, Delete, Get, Param, Patch, Post, Query, UseGuards, } from '@nestjs/common'; import { JwtAuthGuard } from '../auth/jwt-auth.guard'; import { CurrentUser } from '../auth/current-user.decorator'; import type { Actor } from '../common/record-scope'; import { CreateMemoryItemDto, ListMemoryQueryDto, UpdateMemoryItemDto, } from './dto'; import { MemoryService } from './memory.service'; @Controller('memory') @UseGuards(JwtAuthGuard) export class MemoryController { constructor(private readonly memory: MemoryService) {} @Get() list(@CurrentUser() user: Actor, @Query() query: ListMemoryQueryDto) { return this.memory.list( user.organizationId, user, query.personId, query.page ?? 1, query.limit ?? 50, ); } @Post() create(@CurrentUser() user: Actor, @Body() dto: CreateMemoryItemDto) { return this.memory.create(user.organizationId, user.userId, user, dto); } @Patch(':id') update( @CurrentUser() user: Actor, @Param('id') id: string, @Body() dto: UpdateMemoryItemDto, ) { return this.memory.update(user.organizationId, id, user, dto); } @Delete(':id') async remove(@CurrentUser() user: Actor, @Param('id') id: string) { await this.memory.remove(user.organizationId, id, user); return { ok: true }; } }