|
|
|
@ -8,6 +8,7 @@ use App\Helper\JSONResponse;
|
|
|
|
use App\Helper\Traits\Models\CanMultiOrderBy;
|
|
|
|
use App\Helper\Traits\Models\CanMultiOrderBy;
|
|
|
|
use App\Helper\Traits\Models\CanMultiSearch;
|
|
|
|
use App\Helper\Traits\Models\CanMultiSearch;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
|
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
|
|
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
@ -25,6 +26,16 @@ class ApkUpdate extends Model {
|
|
|
|
protected $hidden = ['file'];
|
|
|
|
protected $hidden = ['file'];
|
|
|
|
protected $appends = ['file_url'];
|
|
|
|
protected $appends = ['file_url'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -- RELATED TO SCOPE
|
|
|
|
|
|
|
|
public function scopeNewest(Builder $query){
|
|
|
|
|
|
|
|
return $query->orderByDesc('version_code');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// -- END RELATED TO SCOPE
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -- RELATED TO MODIFICATION DATA FROM REQUEST
|
|
|
|
public static function upsertFromRequest(Request $request) {
|
|
|
|
public static function upsertFromRequest(Request $request) {
|
|
|
|
$request->validate([
|
|
|
|
$request->validate([
|
|
|
|
'id' => 'nullable|integer|exists:App\Models\ApkUpdate,id',
|
|
|
|
'id' => 'nullable|integer|exists:App\Models\ApkUpdate,id',
|
|
|
|
@ -87,8 +98,11 @@ class ApkUpdate extends Model {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// -- END RELATED TO MODIFICATION DATA FROM REQUEST
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
// -- File UTILITIES
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// -- FILE UTILITIES
|
|
|
|
protected function fileUrl(): Attribute {
|
|
|
|
protected function fileUrl(): Attribute {
|
|
|
|
return Attribute::make(
|
|
|
|
return Attribute::make(
|
|
|
|
fn() => $this->file ? Storage::disk('s3')->url($this->file) : ''
|
|
|
|
fn() => $this->file ? Storage::disk('s3')->url($this->file) : ''
|
|
|
|
@ -114,5 +128,6 @@ class ApkUpdate extends Model {
|
|
|
|
return "$name.$extension";
|
|
|
|
return "$name.$extension";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public static function deleteFile($dbUrl) { Storage::disk('s3')->delete($dbUrl); }
|
|
|
|
public static function deleteFile($dbUrl) { Storage::disk('s3')->delete($dbUrl); }
|
|
|
|
// -- END File UTILITIES
|
|
|
|
// -- END FILE UTILITIES
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|