Sort of working beta

This commit is contained in:
2025-02-06 17:30:45 +01:00
parent 5f42c707eb
commit 2ef114e154
97 changed files with 3093 additions and 106 deletions

View File

@ -7,6 +7,22 @@ use Illuminate\Database\Eloquent\Model;
class Job extends Model
{
/** @use HasFactory<\Database\Factories\JobFactory> */
use HasFactory;
protected $fillable = [
"is_active",
];
protected $casts = [
"is_active" => "boolean",
];
public function jobInfos()
{
return $this->hasMany(JobInfo::class)->with("jobInfoType")->orderBy("created_at");
}
public function jobRuns()
{
return $this->hasMany(JobRun::class)->orderBy("created_at");
}
}

View File

@ -4,9 +4,17 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class JobArtifact extends Model
{
/** @use HasFactory<\Database\Factories\JobArtifactFactory> */
use HasFactory;
protected $fillable = [
"name",
"content",
];
public function jobRun(): BelongsTo
{
return $this->belongsTo(JobRun::class);
}
}

View File

@ -7,6 +7,19 @@ use Illuminate\Database\Eloquent\Model;
class JobInfo extends Model
{
/** @use HasFactory<\Database\Factories\JobInfoFactory> */
use HasFactory;
protected $fillable = [
"value",
];
public function job()
{
return $this->belongsTo(Job::class);
}
public function jobInfoType()
{
return $this->belongsTo(JobInfoType::class)->select("id", "name");
}
}

View File

@ -7,6 +7,12 @@ use Illuminate\Database\Eloquent\Model;
class JobInfoType extends Model
{
/** @use HasFactory<\Database\Factories\JobInfoTypeFactory> */
use HasFactory;
protected $fillable = [
"name",
];
public function jobInfos()
{
return $this->hasMany(JobInfo::class);
}
}

View File

@ -4,9 +4,34 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class JobRun extends Model
{
/** @use HasFactory<\Database\Factories\JobRunFactory> */
use HasFactory;
protected $fillable = [
"job_id",
"success",
];
protected $casts = [
"success" => "boolean",
];
protected $with = ['artifacts'];
public function job(): BelongsTo
{
return $this->belongsTo(Job::class);
}
public function artifacts(): HasMany
{
return $this->hasMany(JobArtifact::class);
}
public function addArtifact(JobArtifact $artifact): void
{
$this->artifacts()->save($artifact);
}
}