. */ declare(strict_types=1); namespace FireflyIII\Models; use FireflyIII\Support\Models\ReturnsIntegerIdTrait; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use function Safe\json_decode; use function Safe\json_encode; class AccountMeta extends Model { use ReturnsIntegerIdTrait; protected $fillable = ['account_id', 'name', 'data']; protected $table = 'account_meta'; public function account(): BelongsTo { return $this->belongsTo(Account::class); } protected function casts(): array { return [ 'created_at' => 'datetime', 'updated_at' => 'datetime', ]; } protected function data(): Attribute { return Attribute::make(get: fn (mixed $value) => (string)json_decode((string)$value, true), set: fn (mixed $value) => ['data' => json_encode($value)]); } }