Initial commit: Add project files
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
namespace KArtSell.Modules.SignalEngine.Domain;
|
||||
|
||||
public enum PolicyDisposition
|
||||
{
|
||||
NotApplicable = 0,
|
||||
Blocked = 1,
|
||||
Applied = 2
|
||||
}
|
||||
|
||||
public sealed record PolicyTraceEntry(
|
||||
string PolicyId,
|
||||
int Priority,
|
||||
PolicyDisposition Disposition,
|
||||
string ReasonCode,
|
||||
decimal RequestedSellRatioOfLot,
|
||||
decimal AppliedSellRatioOfLot,
|
||||
bool StrategicCoreClampApplied);
|
||||
|
||||
public sealed record SellPolicyResult(
|
||||
PolicyTraceEntry Trace,
|
||||
SellDecision? Decision)
|
||||
{
|
||||
public static SellPolicyResult NotApplicable(string policyId, int priority, string reasonCode)
|
||||
=> new(new PolicyTraceEntry(policyId, priority, PolicyDisposition.NotApplicable, reasonCode, 0m, 0m, false), null);
|
||||
|
||||
public static SellPolicyResult Blocked(
|
||||
string policyId,
|
||||
int priority,
|
||||
string reasonCode,
|
||||
decimal requestedSellRatioOfLot = 0m)
|
||||
=> new(new PolicyTraceEntry(
|
||||
policyId,
|
||||
priority,
|
||||
PolicyDisposition.Blocked,
|
||||
reasonCode,
|
||||
requestedSellRatioOfLot,
|
||||
0m,
|
||||
false), null);
|
||||
|
||||
public static SellPolicyResult Applied(
|
||||
SellDecision decision,
|
||||
decimal requestedSellRatioOfLot,
|
||||
bool strategicCoreClampApplied)
|
||||
=> new(new PolicyTraceEntry(
|
||||
decision.PolicyId,
|
||||
decision.Priority,
|
||||
PolicyDisposition.Applied,
|
||||
decision.ReasonCode,
|
||||
requestedSellRatioOfLot,
|
||||
decision.SellRatioOfLot,
|
||||
strategicCoreClampApplied), decision);
|
||||
}
|
||||
Reference in New Issue
Block a user