Quellcode durchsuchen

feat(class): relacionamentos e casts em SchoolClass e ClassAttendance

SchoolClass passa a ter packageUnit/attendances/unit e SoftDeletes;
ClassAttendance ganha student/schoolClass e casts booleanos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee vor 1 Monat
Ursprung
Commit
1a8d40f1a8
2 geänderte Dateien mit 33 neuen und 15 gelöschten Zeilen
  1. 13 7
      app/Models/ClassAttendance.php
  2. 20 8
      app/Models/SchoolClass.php

+ 13 - 7
app/Models/ClassAttendance.php

@@ -4,6 +4,8 @@
 
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\SoftDeletes;
 
 /**
  * @property int $id
@@ -29,7 +31,7 @@
  */
 class ClassAttendance extends Model
 {
-    use HasFactory;
+    use HasFactory, SoftDeletes;
 
     protected $table = 'class_attendances';
 
@@ -38,17 +40,21 @@ class ClassAttendance extends Model
     ];
 
     protected $casts = [
+        'in_class'   => 'boolean',
+        'justified'  => 'boolean',
         'created_at' => 'datetime',
         'updated_at' => 'datetime',
-        // Add your casts here (e.g., 'is_active' => 'boolean')
     ];
 
     // Relationships
 
-    // Business Logic Methods
-
-    // Custom Finders
-
-    // Query Scopes
+    public function schoolClass(): BelongsTo
+    {
+        return $this->belongsTo(SchoolClass::class, 'class_id');
+    }
 
+    public function student(): BelongsTo
+    {
+        return $this->belongsTo(Student::class);
+    }
 }

+ 20 - 8
app/Models/SchoolClass.php

@@ -4,6 +4,9 @@
 
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasMany;
+use Illuminate\Database\Eloquent\SoftDeletes;
 
 /**
  * @property int $id
@@ -31,7 +34,7 @@
  */
 class SchoolClass extends Model
 {
-    use HasFactory;
+    use HasFactory, SoftDeletes;
 
     protected $table = 'classes';
 
@@ -40,17 +43,26 @@ class SchoolClass extends Model
     ];
 
     protected $casts = [
-        'created_at' => 'datetime',
-        'updated_at' => 'datetime',
-        // Add your casts here (e.g., 'is_active' => 'boolean')
+        'date_time_start' => 'datetime',
+        'date_time_end'   => 'datetime',
+        'created_at'      => 'datetime',
+        'updated_at'      => 'datetime',
     ];
 
     // Relationships
 
-    // Business Logic Methods
+    public function unit(): BelongsTo
+    {
+        return $this->belongsTo(Unit::class);
+    }
 
-    // Custom Finders
-
-    // Query Scopes
+    public function packageUnit(): BelongsTo
+    {
+        return $this->belongsTo(ClassPackageUnit::class, 'class_package_unit_id');
+    }
 
+    public function attendances(): HasMany
+    {
+        return $this->hasMany(ClassAttendance::class, 'class_id');
+    }
 }