phase 5
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
namespace Modules\CRM\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
final class Activity extends Model { protected $table='crm_activities'; protected $fillable=['subject_type','subject_id','user_id','type','title','description','due_at','completed_at']; protected function casts(): array { return ['due_at'=>'datetime','completed_at'=>'datetime']; } public function subject(): MorphTo { return $this->morphTo(); } }
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
namespace Modules\CRM\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
final class Company extends Model { protected $table='crm_companies'; protected $fillable=['name','website','phone','email','industry','address','notes','is_active']; protected function casts(): array { return ['is_active'=>'boolean']; } public function contacts(): HasMany { return $this->hasMany(Contact::class); } }
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
namespace Modules\CRM\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
final class Contact extends Model { protected $table='crm_contacts'; protected $fillable=['company_id','first_name','last_name','email','phone','job_title','notes','is_active']; protected function casts(): array { return ['is_active'=>'boolean']; } public function company(): BelongsTo { return $this->belongsTo(Company::class); } public function getNameAttribute(): string { return trim($this->first_name.' '.$this->last_name); } }
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
namespace Modules\CRM\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
final class Lead extends Model { protected $table='crm_leads'; protected $fillable=['contact_id','title','source','status','estimated_value','notes','next_action_at']; protected function casts(): array { return ['estimated_value'=>'decimal:2','next_action_at'=>'datetime']; } public function contact(): BelongsTo { return $this->belongsTo(Contact::class); } }
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
namespace Modules\CRM\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
final class Opportunity extends Model { protected $table='crm_opportunities'; protected $fillable=['company_id','contact_id','name','stage','value','probability','expected_close_at','notes']; protected function casts(): array { return ['value'=>'decimal:2','expected_close_at'=>'date']; } public function company(): BelongsTo { return $this->belongsTo(Company::class); } public function contact(): BelongsTo { return $this->belongsTo(Contact::class); } }
|
||||
Reference in New Issue
Block a user