mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-23 14:46:43 +02:00
- Add shared-feedback-types package with TypeScript types - Add shared-feedback-service package with factory function - Add shared-feedback-ui package with Svelte 5 components - Add feedback module to mana-core-auth backend - Add AI service using Gemini 2.0 Flash for title/category generation - Add database schema and migration for feedback tables - Integrate feedback page into Chat web app - Add CORS support for X-App-Id header - Add COMMANDS.md documentation for all dev commands 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
738 B
TypeScript
33 lines
738 B
TypeScript
import { IsString, IsOptional, IsEnum, IsInt, Min, Max } from 'class-validator';
|
|
import { Transform } from 'class-transformer';
|
|
|
|
export class FeedbackQueryDto {
|
|
@IsString()
|
|
@IsOptional()
|
|
appId?: string;
|
|
|
|
@IsEnum(['submitted', 'under_review', 'planned', 'in_progress', 'completed', 'declined'])
|
|
@IsOptional()
|
|
status?: string;
|
|
|
|
@IsEnum(['bug', 'feature', 'improvement', 'question', 'other'])
|
|
@IsOptional()
|
|
category?: string;
|
|
|
|
@IsEnum(['votes', 'recent'])
|
|
@IsOptional()
|
|
sort?: 'votes' | 'recent' = 'votes';
|
|
|
|
@Transform(({ value }) => parseInt(value, 10))
|
|
@IsInt()
|
|
@Min(1)
|
|
@Max(50)
|
|
@IsOptional()
|
|
limit?: number = 20;
|
|
|
|
@Transform(({ value }) => parseInt(value, 10))
|
|
@IsInt()
|
|
@Min(0)
|
|
@IsOptional()
|
|
offset?: number = 0;
|
|
}
|