<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class SiteSyncOutbox extends Model
{
    public const STATUS_PENDING = 'pending';
    public const STATUS_PROCESSING = 'processing';
    public const STATUS_FAILED = 'failed';
    public const STATUS_SUCCEEDED = 'succeeded';

    protected $fillable = [
        'company_id',
        'building_id',
        'operation',
        'delivery_token',
        'payload',
        'status',
        'retry_count',
        'last_error',
        'next_retry_at',
        'processing_started_at',
        'synced_at',
    ];

    protected $casts = [
        'company_id' => 'integer',
        'building_id' => 'integer',
        'retry_count' => 'integer',
        'payload' => 'array',
        'next_retry_at' => 'datetime',
        'processing_started_at' => 'datetime',
        'synced_at' => 'datetime',
    ];
}
