reconstruction of the project

This commit is contained in:
root
2026-03-08 16:33:24 -04:00
parent 23b7db1107
commit c8de5f7edc
9157 changed files with 77877 additions and 1073823 deletions
+50 -21
View File
@@ -3,11 +3,15 @@
namespace App\Models;
use App\Models\BaseModel;
use Illuminate\Support\Facades\DB;
class EventCharges extends BaseModel
{
protected $table = 'event_charges';
protected $primaryKey = 'id';
// ✅ CI: useTimestamps = true (created_at/updated_at)
public $timestamps = true;
protected $fillable = [
'event_id',
'parent_id',
@@ -20,29 +24,54 @@ class EventCharges extends BaseModel
'created_at',
'updated_at',
];
public $timestamps = true;
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
public function getChargesWithEventInfo($parentId = null, $schoolYear = null, $semester = null)
protected $casts = [
'event_id' => 'integer',
'parent_id' => 'integer',
'student_id' => 'integer',
'participation' => 'boolean', // change if stored as string/enum
'charged' => 'boolean', // change if stored as string/enum
'updated_by' => 'integer',
];
/* Optional relationships */
public function event()
{
$builder = $this->select('event_charges.*, events.event_name, events.amount')
->join('events', 'events.id = event_charges.event_id', 'left');
if ($parentId) {
$builder->where('event_charges.parent_id', $parentId);
}
if ($schoolYear) {
$builder->where('event_charges.school_year', $schoolYear);
}
if ($semester) {
$builder->where('event_charges.semester', $semester);
}
return $builder->findAll();
return $this->belongsTo(Event::class, 'event_id');
}
public function parent()
{
return $this->belongsTo(User::class, 'parent_id');
}
public function student()
{
return $this->belongsTo(Student::class, 'student_id');
}
/**
* Equivalent of CI getChargesWithEventInfo()
* Returns rows with: event_charges.*, events.event_name, events.amount
*/
public static function getChargesWithEventInfo(?int $parentId = null, ?string $schoolYear = null, ?string $semester = null): array
{
$q = DB::table('event_charges')
->leftJoin('events', 'events.id', '=', 'event_charges.event_id')
->select('event_charges.*', 'events.event_name', 'events.amount');
if (!empty($parentId)) {
$q->where('event_charges.parent_id', $parentId);
}
if (!empty($schoolYear)) {
$q->where('event_charges.school_year', $schoolYear);
}
if (!empty($semester)) {
$q->where('event_charges.semester', $semester);
}
return $q->get()->map(fn ($r) => (array) $r)->all();
}
}