feat(backend): add communication, tester, admin and middleman modules
Implement step 17 modules: threads/messages, notifications with automation (submission.created, idea.created, grant_call.opened), innovation test feedback, admin panel (submissions, verify, metrics, grant call status), Middleman adaptation and partnerships. Split multi-type files into one type per file and replace object-valued dictionaries with string-valued maps in data contracts (migrations 0006/0007).
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
using TarninaHub.Domain.Enums;
|
||||
|
||||
namespace TarninaHub.Domain.Rules;
|
||||
|
||||
public static class PartnershipWorkflow
|
||||
{
|
||||
private static readonly IReadOnlyDictionary<PartnershipStatus, PartnershipStatus[]> Transitions =
|
||||
new Dictionary<PartnershipStatus, PartnershipStatus[]>
|
||||
{
|
||||
[PartnershipStatus.Proposed] = [PartnershipStatus.Active, PartnershipStatus.Closed],
|
||||
[PartnershipStatus.Active] = [PartnershipStatus.Closed],
|
||||
[PartnershipStatus.Closed] = [],
|
||||
};
|
||||
|
||||
public static bool CanTransition(PartnershipStatus from, PartnershipStatus to) =>
|
||||
from == to || Transitions[from].Contains(to);
|
||||
|
||||
public static bool IsTerminal(PartnershipStatus status) =>
|
||||
Transitions[status].Length == 0;
|
||||
}
|
||||
Reference in New Issue
Block a user