using W542.GandalfReborn.Data.Entities.Base; using W542.GandalfReborn.Data.Entities.Security; using W542.GandalfReborn.Data.Entities.Subject; using W542.GandalfReborn.Data.Entities.Version; namespace W542.GandalfReborn.Data.Entities.Tenant; public class TenantSubjectRelationEntity : TenantSubjectRelationData, IMappingEntity, IVersionableEntity { public TenantEntity? Tenant { get; set; } public SubjectEntity? Subject { get; set; } public HashSet InternalAuthorities { get; set; } = []; } public class TenantSubjectRelationVersionEntity : TenantSubjectRelationData, IVersionEntity { public SubjectEntity? Suspect { get; set; } public long SuspectId { get; set; } public VersionAction Action { get; set; } public DateTimeOffset At { get; set; } public TenantSubjectRelationEntity? Reference { get; set; } } public abstract class TenantSubjectRelationData where T : IConvertible { public T TenantId { get; set; } public T SubjectId { get; set; } }