<?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) * @mixin \Eloquent * @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) */ 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); } }