Initial commit

This commit is contained in:
Developer
2025-04-21 16:03:20 +02:00
commit 2832896157
22874 changed files with 3092801 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Domain\Texts\Action;
use App\Domain\Texts\DataTransferObjects\TextData;
use App\Domain\Texts\Models\Text;
class CreateTextAction
{
public function __invoke(TextData $textData)
{
$textFeed = Text::create([
'title' => $textData->title,
'body' => $textData->body,
'user_id' => $textData->user->id,
]);
return $textFeed;
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Domain\Texts\DataTransferObjects;
use App\Http\Requests\TextFormRequest;
use Spatie\DataTransferObject\DataTransferObject;
class TextData extends DataTransferObject
{
public $title;
public $body;
public $user;
public static function fromRequest(TextFormRequest $request)
{
return new self([
'title' => $request->input('title'),
'body' => $request->input('body'),
'user' => auth()->user(),
]);
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Domain\Texts\Models;
use App\Domain\Complaints\Models\Complaint;
use App\Domain\Feeds\Models\Feed;
use App\Domain\Texts\Observers\TextObserver;
use App\Models\Model;
use App\Models\User;
class Text extends Model
{
protected $fillable = ['title', 'body', 'user_id'];
protected static function boot()
{
parent::boot();
self::observe(TextObserver::class);
}
public function feed()
{
return $this->morphOne(Feed::class, 'feedable');
}
public function complaints()
{
return $this->morphMany(Complaint::class, 'complaintable');
}
public function user()
{
return $this->belongsTo(User::class);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Domain\Texts\Observers;
use App\Domain\Feeds\Models\Feed;
use App\Domain\Texts\Models\Text;
class TextObserver
{
public function creating(Text $text)
{
$text->slug = 'text_' . uniqid();
}
public function created(Text $text)
{
$feed = new Feed;
$feed->time = time();
$feed->user()->associate(auth()->user());
$text->feed()->save($feed);
}
public function deleting(Text $text)
{
$text->feed()->delete();
}
}