| 123456789101112131415161718192021222324252627282930313233343536 |
- <?php
- namespace App\Models;
- /*
- * Lead — заявка, поступившая с веб-формы.
- * Таблица: leads
- * Поле data — JSON-объект: {field_name: value, ...}
- * read_at — null = новая (непросмотренная) заявка
- */
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- class Lead extends Model
- {
- protected $fillable = ['form_id', 'data', 'ip'];
- protected $casts = [
- 'data' => 'array',
- 'read_at' => 'datetime',
- ];
- public function form(): BelongsTo
- {
- return $this->belongsTo(WebForm::class, 'form_id');
- }
- // Пометить заявку как просмотренную
- public function markAsRead(): void
- {
- if (! $this->read_at) {
- $this->update(['read_at' => now()]);
- }
- }
- }
|