<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Storage;
use Spatie\Translatable\HasTranslations;

class EsgParagraph extends Model
{
    use HasFactory, HasTranslations;
    //
    protected $fillable = [
        'esg_id',
        'type',
        'order',
        'content',
    ];

    protected $casts = [
        'content' => 'array', // 自動轉換 JSON
        'type' => 'integer',
        'order' => 'integer'
    ];

    public function esg(): BelongsTo
    {
        return $this->belongsTo(Esg::class);
    }

    // ✅ 取得段落類型名稱
    public function getTypeNameAttribute(): string
    {
        return match($this->type) {
            1 => '純文字',
            2 => '區塊文字',
            3 => '表格',
            4 => '圖片',
            default => '未知',
        };
    }

    // 如果你想要更細緻的控制，可以使用 accessor 和 mutator
    public function getContentAttribute($value)
    {
        return $value ? json_decode($value, true) : [];
    }
}
