feat: Sprachnotizen-API (T7 L2 Task 7)

Upload (Audio nur per Magic Bytes, versiegelt, 2 MiB), Text-Weg,
Liste, Abruf, Wiederholen, Verwerfen, alle verwerfen, Konfiguration und
Zähler unter /voice-captures. Rechte voice-captures:use plus
inspections:create (eigener Guard, API-Schlüssel ausgeschlossen),
Zähler nur mit system:manage; jede Abfrage auf den Besitzer begrenzt.
Grenzen je Benutzer unter Advisory-Lock (10 offen, 30 je Tag, 10 je
60 s), Wiederholen ebenfalls begrenzt und gedrosselt, Audio für QUEUED
nur unter 24 h. Verwerfen löscht Inhalt und Claim sofort. Keine Inhalte
in Log oder Audit. Wächter gegen Sprachinhalte in Suche, Export und
Berichten erweitert.

Refs #27

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-10-16 10:10:54 +02:00
1 parent 19550d1394
commit 0b0bc3c6dc
21 files changed
+2843 -12

No files matched your search

+21
View File
@@ -0,0 +1,21 @@
import { Module } from '@nestjs/common';
import { InspectionCreateGuard } from './captures/inspection-create.guard';
import { VoiceCapturesController } from './captures/voice-captures.controller';
import { VoiceCapturesStatsService } from './captures/voice-captures-stats.service';
import { VoiceCapturesService } from './captures/voice-captures.service';
/**
* The voice note API (T7). Audit, the permission resolver and the Prisma
* client come from global modules. Later tasks add the confirmation service
* (task 8) and the handlers (task 9).
*/
@Module({
controllers: [VoiceCapturesController],
providers: [
VoiceCapturesService,
VoiceCapturesStatsService,
InspectionCreateGuard,
],
exports: [VoiceCapturesService],
})
export class VoiceModule {}