using Suspectus.Gandalf.Palantir.Data.Entities.Base; using Suspectus.Gandalf.Palantir.Data.Entities.Subject; using Suspectus.Gandalf.Palantir.Data.Entities.Tenant; using Suspectus.Gandalf.Palantir.Data.Entities.Version; namespace Suspectus.Gandalf.Palantir.Data.Entities.App; public class AppEntity : AppData, IVersionableEntity { public TenantEntity? Tenant { get; set; } public HashSet Subjects { get; set; } = []; } public class AppVersionEntity : AppData, IVersionEntity { public SubjectEntity? Suspect { get; set; } public long SuspectId { get; set; } public VersionAction Action { get; set; } public DateTimeOffset At { get; set; } public AppEntity? Reference { get; set; } } public abstract class AppData : TenantRelationData { public required string Name { get; set; } public required string BaseAddress { get; set; } }