HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/matriculas_api_dev/app/Models/Student.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;


class Student extends Model
{
    protected $table = 'students';
    protected $primaryKey = 'id';
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'external_id',
        'enrollment_source',
        'document_type',
        'rut',
        'first_name',
        'second_name',
        'last_name',
        'second_last_name',
        'birth_date',
        'email',
        'mobile',
        'financial_parent_id',
        'academic_parent_id',
        'course_id',
        'course_letter_id',
        'date_entry',
        'status',
        'gender_id',
        'country_id',
        'region_id',
        'commune_id',
        'address',
        'image',
        'last_registration_year',
        'blocked_student',
        'subscribe_pac',
        'family',
        'user_created',
        'created_at',
        'user_updated',
        'updated_at',
        'deleted',
        'user_deleted',
        'deleted_at',
        'request_id',
        'request_at',
        'user_request',
    ];

    public function financialParent()
    {
        return $this->belongsTo(Parents::class, 'financial_parent_id');
    }
    public function academicParent()
    {
        return $this->belongsTo(Parents::class, 'academic_parent_id');
    }

    public function gender()
    {
        return $this->belongsTo(Gender::class, 'gender_id');
    }

    public function course()
    {
        return $this->belongsTo(Course::class, 'course_id');
    }

    public function courseLetter()
    {
        return $this->belongsTo(CourseLetter::class, 'course_letter_id');
    }

    public function country()
    {
        return $this->belongsTo(Country::class, 'country_id');
    }

    public function region()
    {
        return $this->belongsTo(Region::class, 'region_id');
    }

    public function commune()
    {
        return $this->belongsTo(Commune::class, 'commune_id');
    }



    // Relaciones con el modelo Users
    public function createdBy()
    {
        return $this->belongsTo(User::class, 'user_created');
    }

    public function updatedBy()
    {
        return $this->belongsTo(User::class, 'user_updated');
    }

    public function deletedBy()
    {
        return $this->belongsTo(User::class, 'user_deleted');
    }

    public function requestdBy()
    {
        return $this->belongsTo(User::class, 'user_request');
    }

    public function periods()
    {
        return $this->belongsToMany(Period::class, 'student_period')->withPivot('sibling_order_override');
    }
}