feat(attachments): add 'key' field to Attachment model and migration, generate UUID on creation

This commit is contained in:
2026-06-25 14:31:03 -03:00
parent 049484dee5
commit 9c5a29d933
3 changed files with 11 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Support\Str;
#[Fillable([
'attachable_type',
@@ -23,6 +24,13 @@ class Attachment extends Model
protected $table = 'attachments';
protected static function booted(): void
{
static::creating(function (self $attachment): void {
$attachment->key = (string) Str::uuid();
});
}
protected function casts(): array
{
return [

View File

@@ -37,6 +37,7 @@ class S3TestService
return [
'disk' => 's3',
'directory' => $directory,
'key' => $path,
'path' => $path,
'filename' => basename($path),
'original_name' => $file->getClientOriginalName(),
@@ -55,6 +56,7 @@ class S3TestService
{
return [
'disk' => 's3',
'key' => $path,
'path' => $path,
'temporary_url' => $this->temporaryUrlForPath($path, $expiresInMinutes),
'temporary_url_expires_at' => now()->addMinutes($expiresInMinutes)->toIso8601String(),

View File

@@ -15,6 +15,7 @@ return new class extends Migration
$table->id();
$table->string('attachable_type');
$table->unsignedBigInteger('attachable_id');
$table->uuid('key')->unique();
$table->string('path');
$table->string('filename');
$table->string('type')->nullable();