Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
peripherad
/
app
/
Models
:
User.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Models; use \DateTimeInterface; use Carbon\Carbon; use Hash; use Illuminate\Auth\Notifications\ResetPassword; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable implements HasMedia, MustVerifyEmail { use Notifiable; use InteractsWithMedia; use HasFactory; use HasApiTokens; public const STATUS_RADIO = [ '1' => 'Enable', '0' => 'Disable', ]; public const REMINDER_DURATION = [ '10', '30', ]; public const USER_TYPE_RADIO = [ '1' => 'Admin', '2' => 'Employee', '3' => 'Customer', ]; public $table = 'users'; protected $appends = [ 'profile_image', ]; protected $hidden = [ 'remember_token', 'password', ]; protected $dates = [ 'email_verified_at', 'birth_date', 'created_at', 'updated_at', 'deleted_at', ]; protected $casts = [ 'email_verified_at' => 'date:m-d-Y', 'birth_date' => 'date:m-d-Y', 'created_at' => 'date:m-d-Y', 'updated_at' => 'date:m-d-Y', 'deleted_at' => 'date:m-d-Y', ]; protected $fillable = [ 'name', 'email', 'pj_customer_id', 'email_verified_at', 'password', 'phone_number', 'company', 'fax_number', 'remember_token', 'password_reset_code', 'password_last_changed', 'user_type', 'birth_date', 'secondary_name', 'secondary_email', 'secondary_phone', 'email_token', 'reminder_duration', 'status', 'sms_notification', 'created_at', 'updated_at', 'deleted_at', ]; public function getIsAdminAttribute() { return $this->roles()->where('id', 1)->exists(); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('thumb')->fit('crop', 50, 50); $this->addMediaConversion('preview')->fit('crop', 120, 120); } public function userAddressBooks() { return $this->hasMany(AddressBook::class, 'user_id', 'id'); } public function userOrders() { return $this->hasMany(Order::class, 'user_id', 'id'); } public function assignedToOrders() { return $this->hasMany(Order::class, 'assigned_to_id', 'id'); } public function getEmailVerifiedAtAttribute($value) { return $value ? Carbon::createFromFormat('Y-m-d H:i:s', $value)->format(config('panel.date_format') . ' ' . config('panel.time_format')) : null; } public function setEmailVerifiedAtAttribute($value) { $this->attributes['email_verified_at'] = $value ? Carbon::createFromFormat(config('panel.date_format') . ' ' . config('panel.time_format'), $value)->format('Y-m-d H:i:s') : null; } public function setPasswordAttribute($input) { if ($input) { $this->attributes['password'] = app('hash')->needsRehash($input) ? Hash::make($input) : $input; } } public function sendPasswordResetNotification($token) { $this->notify(new ResetPassword($token)); } public function getProfileImageAttribute() { $file = $this->getMedia('profile_image')->last(); if ($file) { $file->url = $file->getUrl(); $file->thumbnail = $file->getUrl('thumb'); $file->preview = $file->getUrl('preview'); } return $file; } public function roles() { return $this->belongsToMany(Role::class); } protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } protected function getStatusNameAttribute() { return self::STATUS_RADIO[$this->status]; } protected function getUserTypeNameAttribute() { return self::USER_TYPE_RADIO[$this->user_type]; } public function getPJIdAttribute() { return $this->pj_customer_id; } public function routeNotificationForSms() { return $this->phone_number; //return "+18328476000"; } }