using Butter.Dtos.Jobs; using Lactose.Jobs; namespace Lactose.Mapper; /// /// Provides mapping methods for converting Job objects to DTOs. /// public static class JobMapper { /// /// Maps a Job to a JobStatusDto. /// /// The job to map. /// A JobStatusDto representing the job. public static JobStatusDto ToJobStatusDto(this Job job) => new JobStatusDto() { Id = job.Id, ParentJobId = job.ParentJobId, Name = job.Name, Status = job.JobStatus.Status, Progress = job.JobStatus.Progress, Message = job.JobStatus.Message, Created = job.JobStatus.Created, Started = job.JobStatus.Started, Finished = job.JobStatus.Finished, JobType = job switch { FileSystemCrawlJob => EJobType.FileSystemScan, ThumbnailJob => EJobType.ThumbnailGeneration, PreviewJob => EJobType.PreviewGeneration, IntegrityCheckJob => EJobType.IntegrityCheck, PHashJob => EJobType.PHashGeneration, MetadataJob => EJobType.MetadataExtraction, CreatePersonsJob => EJobType.CreatePersons, CreateAlbumsJob => EJobType.CreateAlbums, _ => throw new ArgumentOutOfRangeException(nameof(job)) } }; }