EmailRecipients.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. class EmailRecipients extends Model
  6. {
  7. use HasFactory;
  8. protected $fillable = [
  9. 'email_template_id',
  10. 'member_id',
  11. 'email_address',
  12. 'status',
  13. 'error_message',
  14. 'sent_at'
  15. ];
  16. protected $casts = [
  17. 'sent_at' => 'datetime',
  18. 'created_at' => 'datetime',
  19. 'updated_at' => 'datetime',
  20. ];
  21. public function templateEmail()
  22. {
  23. return $this->belongsTo(EmailTemplate::class, 'email_template_id');
  24. }
  25. public function member()
  26. {
  27. return $this->belongsTo(Member::class, 'member_id');
  28. }
  29. public function markAsSent()
  30. {
  31. $this->update([
  32. 'status' => 'sent',
  33. 'sent_at' => now()
  34. ]);
  35. }
  36. public function markAsFailed($errorMessage = null)
  37. {
  38. $this->update([
  39. 'status' => 'failed',
  40. 'error_message' => $errorMessage
  41. ]);
  42. }
  43. public function markAsBounced($errorMessage = null)
  44. {
  45. $this->update([
  46. 'status' => 'bounced',
  47. 'error_message' => $errorMessage
  48. ]);
  49. }
  50. }