* Manual automations * Scheduled automations * Incoming webhook triggers * Domain-event trigger foundation * Ordered automation steps * Queued execution * Run status and execution history * Per-step execution logs * Continue-or-stop-on-failure control * Email actions * Outgoing webhook actions * Application log actions * Delay actions * Secure incoming webhook secrets * Automation trigger and action registries * Extensible action and trigger contracts * Scheduled automation Artisan command * Administration navigation * Automation permissions * Module registration and boot test
13 lines
736 B
PHP
13 lines
736 B
PHP
<?php
|
|
namespace Modules\Automation\Models;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
final class Automation extends Model
|
|
{
|
|
protected $fillable=['name','description','trigger_type','trigger_config','status','stop_on_failure','run_count','last_ran_at','next_run_at','created_by'];
|
|
protected $casts=['trigger_config'=>'array','stop_on_failure'=>'boolean','last_ran_at'=>'datetime','next_run_at'=>'datetime'];
|
|
public function steps(): HasMany { return $this->hasMany(AutomationStep::class)->orderBy('position'); }
|
|
public function runs(): HasMany { return $this->hasMany(AutomationRun::class); }
|
|
public function isActive(): bool { return $this->status === 'active'; }
|
|
}
|