move into sonardesk
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
<?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,23 @@
|
||||
<?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,28 @@
|
||||
<?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,23 @@
|
||||
<?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,28 @@
|
||||
<?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