feature/FA-misc_ReportingService #64
18
FictionArchive.Service.ReportingService/Models/Job.cs
Normal file
18
FictionArchive.Service.ReportingService/Models/Job.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using FictionArchive.Common.Enums;
|
||||||
|
using FictionArchive.Service.Shared.Models;
|
||||||
|
|
||||||
|
namespace FictionArchive.Service.ReportingService.Models;
|
||||||
|
|
||||||
|
public class Job : BaseEntity<Guid>
|
||||||
|
{
|
||||||
|
public Guid? ParentJobId { get; set; }
|
||||||
|
public string JobType { get; set; } = null!;
|
||||||
|
public string DisplayName { get; set; } = null!;
|
||||||
|
public JobStatus Status { get; set; }
|
||||||
|
public string? ErrorMessage { get; set; }
|
||||||
|
public Dictionary<string, string>? Metadata { get; set; }
|
||||||
|
|
||||||
|
// Navigation
|
||||||
|
public Job? ParentJob { get; set; }
|
||||||
|
public List<Job> ChildJobs { get; set; } = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using FictionArchive.Service.ReportingService.Models;
|
||||||
|
using FictionArchive.Service.Shared.Services.Database;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace FictionArchive.Service.ReportingService.Services;
|
||||||
|
|
||||||
|
public class ReportingDbContext : FictionArchiveDbContext
|
||||||
|
{
|
||||||
|
public DbSet<Job> Jobs { get; set; }
|
||||||
|
|
||||||
|
public ReportingDbContext(DbContextOptions options, ILogger<ReportingDbContext> logger) : base(options, logger)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
base.OnModelCreating(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity<Job>(entity =>
|
||||||
|
{
|
||||||
|
entity.HasIndex(j => j.ParentJobId);
|
||||||
|
|
||||||
|
entity.Property(j => j.Metadata)
|
||||||
|
.HasColumnType("jsonb");
|
||||||
|
|
||||||
|
entity.HasOne(j => j.ParentJob)
|
||||||
|
.WithMany(j => j.ChildJobs)
|
||||||
|
.HasForeignKey(j => j.ParentJobId)
|
||||||
|
.OnDelete(DeleteBehavior.SetNull);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user