-
-
Notifications
You must be signed in to change notification settings - Fork 112
Expand file tree
/
Copy pathAddress.php
More file actions
78 lines (66 loc) · 1.51 KB
/
Address.php
File metadata and controls
78 lines (66 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
namespace GetCandy\Api\Core\Addresses\Models;
use GetCandy\Api\Core\Auth\Models\User;
use GetCandy\Api\Core\Countries\Models\Country;
use GetCandy\Api\Core\Scaffold\BaseModel;
use GetCandy\Api\Core\Traits\HasAddresses;
class Address extends BaseModel
{
use HasAddresses;
/**
* The Hashid connection name for encoding the id.
*
* @var string
*/
protected $hashids = 'user';
protected $dates = [
'last_used_at',
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $guarded = [];
public function getFieldsAttribute()
{
return $this->only([
'salutation',
'firstname',
'lastname',
'address',
'address_two',
'address_three',
'city',
'state',
'phone',
'email',
'country_id',
'postal_code',
]);
}
public function setMetaAttribute($value)
{
$this->attributes['meta'] = json_encode($value);
}
public function getMetaAttribute($value)
{
return json_decode($value, true);
}
public function user()
{
return $this->belongsTo(User::class);
}
public function type()
{
return $this->billing ? 'billing' : 'shipping';
}
public function country()
{
return $this->belongsTo(Country::class);
}
public function addresses()
{
return $this->morphTo();
}
}