Файловый менеджер - Редактировать - /home/clickysoft/public_html/somni.clickysoft.net/app/Models/User.php
Назад
<?php namespace App\Models; use Carbon\Carbon; use DateTimeInterface; 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 App\Models\UserInfo; use App\Models\Setting; use Illuminate\Database\Eloquent\Casts\Attribute; use Laravel\Cashier\Billable; use Laravel\Cashier\Cashier; class User extends Authenticatable implements HasMedia, MustVerifyEmail { use Notifiable, InteractsWithMedia, HasFactory, Billable; public $table = 'users'; protected $appends = [ 'profile_image', ]; protected $hidden = [ 'remember_token', 'password', ]; protected $dates = [ 'email_verified_at', 'created_at', 'updated_at', 'deleted_at', ]; protected $fillable = [ 'name', 'email', 'phone', 'password', 'email_verified_at', 'remember_token', 'created_at', 'updated_at', 'deleted_at', 'is_active', 'has_completed_tour', 'device_token', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } 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 userUserAlerts() { return $this->belongsToMany(UserAlert::class); } 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 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 getIsActiveAttribute($value) { return ($value) ? "Active" : "Inactive"; } 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 roles() { return $this->belongsToMany(Role::class); } public function properties() { return $this->hasMany(Property::class); } public function hasRole($role) { return (bool) $this->roles()->where('name', $role)->first(); } public function userInfos() { return $this->hasOne(UserInfo::class); } public function isAdmin(): Attribute { return Attribute::make( get: fn () => $this->roles()->where('title', Role::ADMIN)->exists() ); } public function isTenant(): Attribute { return Attribute::make( get: fn () => $this->roles()->where('title', Role::TENANT)->exists() ); } public function isLandlord(): Attribute { return Attribute::make( get: fn () => $this->roles()->where('title', Role::LANDLORD)->exists() ); } public function propertyTenant() { return $this->hasMany(PropertyUnitTenant::class, 'property_id', 'id'); } public function tenantUnits(){ return $this->belongsToMany(Unit::class , 'property_unit_tenant', 'tenant_user_id', 'unit_id'); } public function propertyUnitTenant() { return $this->hasMany(PropertyUnitTenant::class, 'tenant_user_id', 'id'); } // Payers (transactions where the user is the payer) public function payerTransactions() { return $this->hasMany(Transaction::class, 'payer_id'); } // Payees (transactions where the user is the payee) public function payeeTransactions() { return $this->hasMany(Transaction::class, 'payee_id'); } public function eventTenant() { return $this->hasMany(Event::class,'tenant_id'); } public function eventLandlord() { return $this->hasMany(Event::class,'landlord_id'); } public function eventProperty() { return $this->hasMany(Event::class,'property_id'); } public function settings() { return $this->hasMany(Setting::class); } public function isNotificationEnabled($key) { $setting = $this->settings->where('setting_key', $key)->where('setting_value', 1)->first(); return $setting !== null; } public function isEmailNotificationEnabled() { return $this->isNotificationEnabled(config('constants.notification.email_notification_key_name')); } public function isDesktopNotificationEnabled() { return $this->isNotificationEnabled(config('constants.notification.desktop_notification_key_name')); } public function getTenantNamesAndIds() { $this->load('properties.propertyTenant.tenant'); return $this->properties ->flatMap(function ($property) { return $property->propertyTenant->pluck('tenant'); }) ->map(function ($tenant) { return [ 'sender_id' => $tenant->id, 'name' => $tenant->name, ]; }); } // Define the relationship with Leases as a landlord public function landlordLeases() { return $this->hasMany(Lease::class, 'landlord_id'); } // Define the relationship with Leases as a tenant public function tenantLeases() { return $this->hasMany(Lease::class, 'tenant_id'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0.01 |
proxy
|
phpinfo
|
Настройка