gandalf-reborn/Data/Entities/Tenant/TenantSubjectRelationEntity.cs
2025-03-02 12:51:02 +01:00

28 lines
1.0 KiB
C#

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<long>, IMappingEntity, IVersionableEntity
{
public TenantEntity? Tenant { get; set; }
public SubjectEntity? Subject { get; set; }
public HashSet<AuthorityEntity> InternalAuthorities { get; set; } = [];
}
public class TenantSubjectRelationVersionEntity : TenantSubjectRelationData<long>, IVersionEntity<TenantSubjectRelationEntity>
{
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<T> where T : IConvertible
{
public T TenantId { get; set; }
public T SubjectId { get; set; }
}