feat: moderation

This commit is contained in:
2026-05-22 11:56:17 +02:00
parent f5b460c650
commit 1c472e46db
43 changed files with 1836 additions and 3 deletions
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace App\Enums;
use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasLabel;
enum ModerationCaseStatus: string implements HasColor, HasLabel
{
case OPEN = 'open';
case REVIEWING = 'reviewing';
case RESOLVED = 'resolved';
case REJECTED = 'rejected';
public function getLabel(): string
{
return match ($this) {
self::OPEN => __('enums.moderation_case_status.open'),
self::REVIEWING => __('enums.moderation_case_status.reviewing'),
self::RESOLVED => __('enums.moderation_case_status.resolved'),
self::REJECTED => __('enums.moderation_case_status.rejected'),
};
}
public function getColor(): string
{
return match ($this) {
self::OPEN => 'danger',
self::REVIEWING => 'warning',
self::RESOLVED => 'success',
self::REJECTED => 'gray',
};
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Enums;
use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasLabel;
enum ReportReason: string implements HasColor, HasLabel
{
case SPAM = 'spam';
case HARASSMENT = 'harassment';
case HATE_SPEECH = 'hate_speech';
case INAPPROPRIATE = 'inappropriate';
case DANGEROUS_CONTENT = 'dangerous_content';
case MISLEADING = 'misleading';
case OTHER = 'other';
public function getLabel(): string
{
return match ($this) {
self::SPAM => __('enums.report_reason.spam'),
self::HARASSMENT => __('enums.report_reason.harassment'),
self::HATE_SPEECH => __('enums.report_reason.hate_speech'),
self::INAPPROPRIATE => __('enums.report_reason.inappropriate'),
self::DANGEROUS_CONTENT => __('enums.report_reason.dangerous_content'),
self::MISLEADING => __('enums.report_reason.misleading'),
self::OTHER => __('enums.report_reason.other'),
};
}
public function getColor(): string
{
return match ($this) {
self::HATE_SPEECH, self::DANGEROUS_CONTENT => 'danger',
self::HARASSMENT, self::INAPPROPRIATE => 'warning',
self::SPAM, self::MISLEADING => 'info',
self::OTHER => 'gray',
};
}
}
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace App\Enums;
use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasLabel;
enum ReportStatus: string implements HasColor, HasLabel
{
case OPEN = 'open';
case REVIEWING = 'reviewing';
case RESOLVED = 'resolved';
case REJECTED = 'rejected';
public function getLabel(): string
{
return match ($this) {
self::OPEN => __('enums.report_status.open'),
self::REVIEWING => __('enums.report_status.reviewing'),
self::RESOLVED => __('enums.report_status.resolved'),
self::REJECTED => __('enums.report_status.rejected'),
};
}
public function getColor(): string
{
return match ($this) {
self::OPEN => 'danger',
self::REVIEWING => 'warning',
self::RESOLVED => 'success',
self::REJECTED => 'gray',
};
}
}