diff --git a/app/Actions/Article/CreateArticleAction.php b/app/Actions/Article/CreateArticleAction.php index e2457168..3c442ef5 100644 --- a/app/Actions/Article/CreateArticleAction.php +++ b/app/Actions/Article/CreateArticleAction.php @@ -27,6 +27,25 @@ public function execute(ArticleData $articleData): Article ); } + $user = Auth::user(); + + if ($user->isAdmin() || $user->isModerator()) { + $articleData->published_at = new Carbon( + time: today(), + timezone: config('app.timezone') + ); + + $articleData->submitted_at = new Carbon( + time: $articleData->submitted_at, + timezone: config('app.timezone') + ); + + $articleData->approved_at = new Carbon( + time: today(), + timezone: config('app.timezone') + ); + } + // @phpstan-ignore-next-line return Article::query()->create([ 'title' => $articleData->title, @@ -34,8 +53,9 @@ public function execute(ArticleData $articleData): Article 'body' => $articleData->body, 'published_at' => $articleData->published_at, 'submitted_at' => $articleData->submitted_at, + 'approved_at' => $articleData->approved_at, 'canonical_url' => $articleData->canonical_url, - 'user_id' => Auth::id(), + 'user_id' => $user->id, ]); } } diff --git a/app/Data/ArticleData.php b/app/Data/ArticleData.php index 5ea7bfcb..9620e2ba 100644 --- a/app/Data/ArticleData.php +++ b/app/Data/ArticleData.php @@ -18,5 +18,6 @@ public function __construct( public ?Carbon $published_at = null, public ?Carbon $submitted_at = null, public ?Carbon $declined_at = null, + public ?Carbon $approved_at = null, ) {} } diff --git a/app/Filament/Resources/ArticleResource.php b/app/Filament/Resources/ArticleResource.php index c58511d2..83e9e2a0 100644 --- a/app/Filament/Resources/ArticleResource.php +++ b/app/Filament/Resources/ArticleResource.php @@ -102,7 +102,6 @@ public static function table(Table $table): Table return ''; }) - ->searchable() ->sortable(), ]) ->actions([