init backend

This commit is contained in:
2026-02-04 21:11:51 +01:00
parent 537d49e797
commit b73fd8eb05
31 changed files with 673 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using AipsCore.Domain.Common.Validation.Rules;
using AipsCore.Utility.Text;
namespace AipsCore.Domain.Models.Whiteboard.Validation;
public class WhitebordCodeCharsetRule : CharsetRule
{
public WhitebordCodeCharsetRule(string stringValue)
: base(stringValue, GetWhiteboardCodeCharset())
{
}
private static char[] GetWhiteboardCodeCharset()
{
return Charset.GetNumericCharset();
}
protected override string ErrorCode => "whiteboard_code_charset";
protected override string ErrorMessage => "Whiteboard code must contain only numbers";
}

View File

@@ -0,0 +1,31 @@
using AipsCore.Domain.Abstract;
using AipsCore.Domain.Abstract.Rule;
using AipsCore.Domain.Abstract.ValueObject;
using AipsCore.Domain.Common.Validation;
using AipsCore.Domain.Common.Validation.Rules;
using AipsCore.Domain.Common.ValueObjects;
using AipsCore.Domain.Models.Whiteboard.Validation;
namespace AipsCore.Domain.Models.Whiteboard.ValueObjects;
public record WhiteboardCode : AbstractValueObject
{
public string CodeValue { get; init; }
public WhiteboardCode(string CodeValue)
{
this.CodeValue = CodeValue;
Validate();
}
private const int CodeLength = 8;
protected override ICollection<IRule> GetValidationRules()
{
return
[
new ExactLength(CodeValue, CodeLength),
new WhitebordCodeCharsetRule(CodeValue)
];
}
}

View File

@@ -0,0 +1,5 @@
using AipsCore.Domain.Common.ValueObjects;
namespace AipsCore.Domain.Models.Whiteboard.ValueObjects;
public record WhiteboardId(string IdValue) : DomainId(IdValue);

View File

@@ -0,0 +1,18 @@
using AipsCore.Domain.Models.User.ValueObjects;
using AipsCore.Domain.Models.Whiteboard.ValueObjects;
namespace AipsCore.Domain.Models.Whiteboard;
public class Whiteboard
{
public WhiteboardId Id { get; private set; }
public UserId WhiteboardOwnerId { get; private set; }
public WhiteboardCode Code { get; private set; }
public Whiteboard(WhiteboardId id, User.User whiteboardOwner, WhiteboardCode code)
{
Id = id;
WhiteboardOwnerId = whiteboardOwner.Id;
Code = code;
}
}