Files
hpt_inventory/app/Models/Patient.php
2026-06-10 16:42:20 +07:00

75 lines
1.8 KiB
PHP

<?php
namespace App\Models;
use App\Enums\RecordStatusEnum;
use DateTime;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;
use App\Traits\AuditLogTrait;
class Patient extends BaseModel
{
public $timestamps = false;
use HasFactory;
use AuditLogTrait;
/**
* The table associated with the model.
*
* @var string
*/
protected $fillable =
[
'name_en',
'dob',
'patient_uuid',
'gender',
'marital_status',
'phone_number',
'khid_number',
'house_number',
'street_number',
'province_id',
'district_id',
'commune_id',
'village_id',
'lab_id',
self::CREATED_AT_FIELD,
self::CREATED_BY_FIELD,
self::UPDATED_BY_FIELD,
BaseModel::RECORD_STATUS_FIELD
];
public static function boot()
{
parent::boot();
}
public function province(){
return $this->belongsTo(Province::class,'province_id','id');
}
public function district(){
return $this->belongsTo(District::class,'district_id','id');
}
public function commune(){
return $this->belongsTo(Commune::class,'commune_id','id');
}
public function village(){
return $this->belongsTo(Village::class,'village_id','id');
}
public function samples(){
return $this->hasMany(Sample::class,'patient_id','id')
->where([BaseModel::RECORD_STATUS_FIELD => RecordStatusEnum::ACTIVE, 'lab_id' => Session::get('base_lab_id')]);
}
public function telegramChatId(){
return $this->belongsTo(PatientTelegram::class,'id', 'patient_id');
}
}