Domain for whiteboard membership

This commit is contained in:
Veljko Tosic
2026-02-09 19:48:02 +01:00
parent 57dc12d703
commit afeea15d7b
8 changed files with 206 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using AipsCore.Domain.Abstract.Rule;
using AipsCore.Domain.Abstract.ValueObject;
namespace AipsCore.Domain.Models.WhiteboardMembership.ValueObjects;
public record WhiteboardMembershipCanJoin : AbstractValueObject
{
public bool CanJoinValue { get; init; }
public WhiteboardMembershipCanJoin(bool CanJoinValue)
{
this.CanJoinValue = CanJoinValue;
Validate();
}
protected override ICollection<IRule> GetValidationRules()
{
return [];
}
}

View File

@@ -0,0 +1,20 @@
using AipsCore.Domain.Abstract.Rule;
using AipsCore.Domain.Abstract.ValueObject;
namespace AipsCore.Domain.Models.WhiteboardMembership.ValueObjects;
public record WhiteboardMembershipEditingEnabled : AbstractValueObject
{
public bool EditingEnabledValue { get; init; }
public WhiteboardMembershipEditingEnabled(bool EditingEnabledValue)
{
this.EditingEnabledValue = EditingEnabledValue;
Validate();
}
protected override ICollection<IRule> GetValidationRules()
{
return [];
}
}

View File

@@ -0,0 +1,8 @@
using AipsCore.Domain.Common.ValueObjects;
namespace AipsCore.Domain.Models.WhiteboardMembership.ValueObjects;
public record WhiteboardMembershipId(string IdValue) : DomainId(IdValue)
{
public static WhiteboardMembershipId Any() => new(Guid.NewGuid().ToString());
}

View File

@@ -0,0 +1,20 @@
using AipsCore.Domain.Abstract.Rule;
using AipsCore.Domain.Abstract.ValueObject;
namespace AipsCore.Domain.Models.WhiteboardMembership.ValueObjects;
public record WhiteboardMembershipIsBanned : AbstractValueObject
{
public bool IsBannedValue { get; init; }
public WhiteboardMembershipIsBanned(bool IsBannedValue)
{
this.IsBannedValue = IsBannedValue;
Validate();
}
protected override ICollection<IRule> GetValidationRules()
{
return [];
}
}

View File

@@ -0,0 +1,23 @@
using AipsCore.Domain.Abstract.Rule;
using AipsCore.Domain.Abstract.ValueObject;
using AipsCore.Domain.Common.Validation.Rules;
namespace AipsCore.Domain.Models.WhiteboardMembership.ValueObjects;
public record WhiteboardMembershipLastInteractedAt : AbstractValueObject
{
public DateTime LastInteractedAtValue { get; init; }
public WhiteboardMembershipLastInteractedAt(DateTime LastInteractedAtValue)
{
this.LastInteractedAtValue = LastInteractedAtValue;
Validate();
}
protected override ICollection<IRule> GetValidationRules()
{
return [
new DateInPastRule(LastInteractedAtValue)
];
}
}