using System.ComponentModel.DataAnnotations; using API.Schema.MangaConnectors; namespace API.Schema.Jobs; public class UpdateMetadataJob(ulong recurrenceMs, string mangaId, string? parentJobId = null, ICollection? dependsOnJobsIds = null) : Job(TokenGen.CreateToken(typeof(UpdateMetadataJob)), JobType.UpdateMetaDataJob, recurrenceMs, parentJobId, dependsOnJobsIds) { [MaxLength(64)] public string MangaId { get; init; } = mangaId; public virtual Manga? Manga { get; init; } /// /// Updates all data related to Manga. /// Retrieves data from Mangaconnector /// Updates Chapter-info /// /// protected override IEnumerable RunInternal(PgsqlContext context) { //Manga manga = Manga ?? context.Manga.Find(MangaId)!; IQueryable chapters = context.Chapters.Where(c => c.ParentMangaId == MangaId); foreach (Chapter chapter in chapters) chapter.Downloaded = chapter.IsDownloaded(); context.SaveChanges(); return []; //TODO implement Metadata-Update from MangaConnector } }