You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
5.2 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Notifications\Notifiable;
/**
* App\Models\Customer
*
* @property int $id
* @property string $name
* @property string $email
* @property \Illuminate\Support\Carbon|null $email_verified_at
* @property string $password
* @property int|null $state
* @property int|null $city
* @property string|null $mobile
* @property string|null $address
* @property string|null $postal_code
* @property string|null $remember_token
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
* @property-read int|null $notifications_count
* @method static \Database\Factories\CustomerFactory factory(...$parameters)
* @method static \Illuminate\Database\Eloquent\Builder|Customer newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Customer newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Customer query()
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereAddress($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereCity($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereEmailVerifiedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereMobile($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer wherePassword($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer wherePostalCode($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereRememberToken($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereState($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereUpdatedAt($value)
* @property string|null $code
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereCode($value)
* @property string|null $address_alt
* @property string|null $sms
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Invoice[] $invoices
* @property-read int|null $invoices_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Ticket[] $main_tickets
* @property-read int|null $main_tickets_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Ticket[] $tickets
* @property-read int|null $tickets_count
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereAddressAlt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereSms($value)
* @property int $colleague
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereColleague($value)
* @property string|null $description
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereDescription($value)
* @property int $credit
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Product[] $products
* @property-read int|null $products_count
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereCredit($value)
* @property int $cerdit
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Address[] $addresses
* @property-read int|null $addresses_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Credit[] $credits
* @property-read int|null $credits_count
* @method static \Illuminate\Database\Eloquent\Builder|Customer whereCerdit($value)
* @mixin \Eloquent
*/
class Customer extends Authenticatable
{
use HasFactory,Notifiable;
//
protected $guard = 'customer';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password','mobile','address','state','city','postal_code'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function invoices(){
return $this->hasMany(Invoice::class);
}
public function tickets(){
return $this->hasMany(Ticket::class);
}
public function main_tickets(){
return $this->hasMany(Ticket::class)->whereNull('parent_id');
}
public function products(){
return $this->belongsToMany(Product::class,'customer_product');
}
public function credits(){
return $this->hasMany(Credit::class);
}
public function addresses(){
return $this->hasMany(Address::class);
}
}