home
/
forge
/
roadtovirtuosity.com
/
app
/
Models
➕ New
📤 Upload
✎ Editing:
Piece.php
← Back
<?php namespace App\Models; use App\Models\Skill; use App\Models\Category; use App\Models\Purchase; use App\Models\PieceFile; use App\Models\Submission; use App\Models\Certificate; use App\Models\SubCategory; use App\Models\Transaction; use App\Models\SubCategoryPiece; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Factories\HasFactory; class Piece extends Model { use HasFactory; protected $guarded = []; protected static function booted() { static::updated(function ($piece) { if ($piece->isDirty('point')) { Submission::where('piece_id', $piece->id)->update([ 'point' => $piece->point ]); $submissionIds = Submission::where('piece_id', $piece->id)->pluck('id')->toArray(); UserPoint::whereIn('model_id', $submissionIds)->update([ 'point' => $piece->point ]); } }); } public function skill() { return $this->belongsTo(Skill::class, 'skill_id'); } public function category() { return $this->belongsTo(Category::class, 'category_id'); } public function purchases() { return $this->hasMany(Purchase::class); } public function pieceFiles() { return $this->hasMany(PieceFile::class); } public function certificates() { return $this->belongsToMany(Certificate::class, 'certificate_pieces') ->withTimestamps(); } public function submissions() { return $this->hasMany(Submission::class, 'piece_id'); } public function subCategories() { return $this->belongsToMany(SubCategory::class, 'sub_categories_pieces'); } public function subCategoryPieces() { return $this->hasMany(SubCategoryPiece::class, 'piece_id'); } public function transactions(): MorphMany { return $this->morphMany(Transaction::class, 'model'); } public function override() { return $this->belongsTo(Piece::class, 'override_id'); } public function overriddenBy() { return $this->hasMany(Piece::class, 'override_id'); } public function instruments() { return $this->belongsToMany(Instrument::class, 'instrument_piece') ->withPivot('point') ->withTimestamps(); } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel