| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- /**
- * @property int $id
- * @property string $origin_table
- * @property int $origin_id
- * @property int|null $unit_id
- * @property int|null $franchisee_id
- * @property string $notification_type
- * @property string $title
- * @property string $message
- * @property string|null $url
- * @property string|null $action_text
- * @property string $priority
- * @property string|null $expires_at
- * @property int $created_by_user_id
- * @property \Illuminate\Support\Carbon|null $created_at
- * @property \Illuminate\Support\Carbon|null $updated_at
- * @property string|null $deleted_at
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification newModelQuery()
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification newQuery()
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification query()
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereActionText($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereCreatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereCreatedByUserId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereDeletedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereExpiresAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereFranchiseeId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereMessage($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereNotificationType($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereOriginId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereOriginTable($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification wherePriority($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereTitle($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereUnitId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereUpdatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|Notification whereUrl($value)
- * @mixin \Eloquent
- */
- class Notification extends Model
- {
- use HasFactory;
- protected $table = 'notifications';
- protected $guarded = [
- 'id', // Add more fields that shouldn't be edited here
- ];
- protected $casts = [
- 'expires_at' => 'datetime',
- 'created_at' => 'datetime',
- 'updated_at' => 'datetime',
- ];
- // Relationships
- public function recipients(): \Illuminate\Database\Eloquent\Relations\HasMany
- {
- return $this->hasMany(NotificationRecipient::class, 'notification_id');
- }
- public function creator(): \Illuminate\Database\Eloquent\Relations\BelongsTo
- {
- return $this->belongsTo(User::class, 'created_by_user_id');
- }
- // Business Logic Methods
- // Custom Finders
- // Query Scopes
- }
|