namespace IOL.GreatOffice.Api.Data.Database; public class TimeEntry : BaseWithOwner { public TimeEntry() { } public TimeEntry(Guid userId) : base(userId) { } public DateTime Start { get; set; } public DateTime Stop { get; set; } public string Description { get; set; } public ICollection Labels { get; set; } public TimeCategory Category { get; set; } public TimeEntryDto AsDto => new(this); public class TimeEntryDto { public TimeEntryDto() { } public TimeEntryDto(TimeEntry sourceEntry = default) { if (sourceEntry == default) { return; } Id = sourceEntry.Id; ModifiedAt = sourceEntry.ModifiedAt; Stop = sourceEntry.Stop; Start = sourceEntry.Start; Description = sourceEntry.Description; if (sourceEntry.Labels != default) { Labels = sourceEntry.Labels .Select(t => t.AsDto) .ToList(); } Category = sourceEntry.Category.AsDto; } public Guid? Id { get; set; } public DateTime? ModifiedAt { get; set; } public DateTime Start { get; set; } public DateTime Stop { get; set; } public string Description { get; set; } public List Labels { get; set; } public TimeCategory.TimeCategoryDto Category { get; set; } } }