فهرست منبع

feat(student): trigger student status recalculation when contracts are saved or deleted

alvesantos 1 هفته پیش
والد
کامیت
1c2125a7c5
1فایلهای تغییر یافته به همراه14 افزوده شده و 0 حذف شده
  1. 14 0
      app/Models/StudentContract.php

+ 14 - 0
app/Models/StudentContract.php

@@ -136,6 +136,20 @@ public function scopeLatestVersion(Builder $query): Builder
         );
     }
 
+    protected static function booted(): void
+    {
+        $updateStudentStatus = function (StudentContract $contract): void {
+            if ($contract->student_id) {
+                // Use withoutGlobalScopes or just normal relation if no scopes affect it
+                $contract->student()->first()?->updateStatus();
+            }
+        };
+
+        static::saved($updateStudentStatus);
+        static::deleted($updateStudentStatus);
+        static::restored($updateStudentStatus);
+    }
+
     public function derivedFrom(): BelongsTo
     {
         return $this->belongsTo(self::class, 'derived_from_contract_id');