store-manage/app/Models/AppVersion.php

54 lines
1.1 KiB
PHP

<?php
namespace App\Models;
use App\Enums\AppOs;
use App\Enums\AppUpdateStrategy;
use App\Traits\HasDateTimeFormatter;
use EloquentFilter\Filterable;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AppVersion extends Model
{
use Filterable, HasFactory, HasDateTimeFormatter;
protected $appends = [
'is_release',
];
protected $attributes = [
'is_force' => false,
];
protected $casts = [
'os' => AppOs::class,
'update_strategy' => AppUpdateStrategy::class,
'is_force' => 'bool',
'release_at' => 'datetime',
];
protected $fillable = [
'os',
'name',
'version',
'title',
'description',
'update_strategy',
'is_force',
'apk_url',
'wgt_url',
'release_at',
];
protected function isRelease(): Attribute
{
return Attribute::make(
get: function (mixed $value, $attributes) {
return (bool) $attributes['release_at'];
},
);
}
}