refactor: replace custom CRM with Monica fork
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s
This commit is contained in:
71
app/Models/Instance/Emotion/Emotion.php
Normal file
71
app/Models/Instance/Emotion/Emotion.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Instance\Emotion;
|
||||
|
||||
use App\Models\Contact\Call;
|
||||
use App\Models\Account\Activity;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
|
||||
/**
|
||||
* An emotion (ex: Adoration) is defined into 3 categories:
|
||||
* - Primary: Love
|
||||
* - Secondary: Affection
|
||||
* - Tertiary: Adoration.
|
||||
*/
|
||||
class Emotion extends Model
|
||||
{
|
||||
protected $table = 'emotions';
|
||||
|
||||
/**
|
||||
* The attributes that aren't mass assignable.
|
||||
*
|
||||
* @var array<string>|bool
|
||||
*/
|
||||
protected $guarded = ['id'];
|
||||
|
||||
/**
|
||||
* Get the primary emotion record associated with the emotion.
|
||||
*
|
||||
* @return BelongsTo
|
||||
*/
|
||||
public function primary()
|
||||
{
|
||||
return $this->belongsTo(PrimaryEmotion::class, 'emotion_primary_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the secondary emotion record associated with the emotion.
|
||||
*
|
||||
* @return BelongsTo
|
||||
*/
|
||||
public function secondary()
|
||||
{
|
||||
return $this->belongsTo(SecondaryEmotion::class, 'emotion_secondary_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the call records associated with the emotion.
|
||||
*
|
||||
* @return BelongsToMany
|
||||
*/
|
||||
public function calls()
|
||||
{
|
||||
return $this->belongsToMany(Call::class, 'emotion_call', 'emotion_id', 'call_id')
|
||||
->withPivot('account_id', 'contact_id')
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the activity records associated with the emotion.
|
||||
*
|
||||
* @return BelongsToMany
|
||||
*/
|
||||
public function activities()
|
||||
{
|
||||
return $this->belongsToMany(Activity::class, 'emotion_activity', 'emotion_id', 'activity_id')
|
||||
->withPivot('account_id')
|
||||
->withTimestamps();
|
||||
}
|
||||
}
|
||||
44
app/Models/Instance/Emotion/PrimaryEmotion.php
Normal file
44
app/Models/Instance/Emotion/PrimaryEmotion.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Instance\Emotion;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
/**
|
||||
* An emotion (ex: Adoration) is defined into 3 categories:
|
||||
* - Primary: Love
|
||||
* - Secondary: Affection
|
||||
* - Tertiary: Adoration.
|
||||
*/
|
||||
class PrimaryEmotion extends Model
|
||||
{
|
||||
protected $table = 'emotions_primary';
|
||||
|
||||
/**
|
||||
* The attributes that aren't mass assignable.
|
||||
*
|
||||
* @var array<string>|bool
|
||||
*/
|
||||
protected $guarded = ['id'];
|
||||
|
||||
/**
|
||||
* Get the emotion records associated with the primary emotion.
|
||||
*
|
||||
* @return HasMany
|
||||
*/
|
||||
public function emotions()
|
||||
{
|
||||
return $this->hasMany(Emotion::class, 'emotion_primary_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the secondary records associated with the primary emotion.
|
||||
*
|
||||
* @return HasMany
|
||||
*/
|
||||
public function secondaries()
|
||||
{
|
||||
return $this->hasMany(SecondaryEmotion::class, 'emotion_primary_id');
|
||||
}
|
||||
}
|
||||
45
app/Models/Instance/Emotion/SecondaryEmotion.php
Normal file
45
app/Models/Instance/Emotion/SecondaryEmotion.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Instance\Emotion;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
/**
|
||||
* An emotion (ex: Adoration) is defined into 3 categories:
|
||||
* - Primary: Love
|
||||
* - Secondary: Affection
|
||||
* - Tertiary: Adoration.
|
||||
*/
|
||||
class SecondaryEmotion extends Model
|
||||
{
|
||||
protected $table = 'emotions_secondary';
|
||||
|
||||
/**
|
||||
* The attributes that aren't mass assignable.
|
||||
*
|
||||
* @var array<string>|bool
|
||||
*/
|
||||
protected $guarded = ['id'];
|
||||
|
||||
/**
|
||||
* Get the primary emotion record associated with the secondary emotion.
|
||||
*
|
||||
* @return BelongsTo
|
||||
*/
|
||||
public function primary()
|
||||
{
|
||||
return $this->belongsTo(PrimaryEmotion::class, 'emotion_primary_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the emotion records associated with the secondary emotion.
|
||||
*
|
||||
* @return HasMany
|
||||
*/
|
||||
public function emotions()
|
||||
{
|
||||
return $this->hasMany(Emotion::class);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user