chore(operations-domain): checkpoint pending development updates

This commit is contained in:
José René White Enciso 2026-03-09 11:57:46 -06:00
parent cb641fbe33
commit d5547f46ee
6 changed files with 74 additions and 2 deletions

View File

@ -3,8 +3,8 @@
<Authors>AgileWebs</Authors>
<Company>AgileWebs</Company>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>http://192.168.10.100:3000/AgileWebs/operations-domain</RepositoryUrl>
<PackageProjectUrl>http://192.168.10.100:3000/AgileWebs/operations-domain</PackageProjectUrl>
<RepositoryUrl>https://gitea.dream-views.com/AgileWebs/operations-domain</RepositoryUrl>
<PackageProjectUrl>https://gitea.dream-views.com/AgileWebs/operations-domain</PackageProjectUrl>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,13 @@
# Operations Domain Responsibilities
Operations is the restaurant control plane.
## Owns
- Policy resolution and precedence decisions.
- Feature flag and rollout decisions.
- Service-window and operational override decisions.
## Does Not Own
- Kitchen order execution state transitions.
- POS transaction finalization workflows.
- BFF edge adaptation logic.

View File

@ -0,0 +1,18 @@
# Feature Epics
## Repository
operations-domain
## Core Epics
- Epic 1: Expand domain-aligned capabilities for restaurant operations.
- Epic 2: Stabilize service contracts for containerized runtime integration.
- Epic 3: Improve observability and operational readiness for demo compose environments.
## Domain-Specific Candidate Features
- Order lifecycle consistency and state transitions.
- Kitchen queue and dispatch optimization hooks.
- Operations control-plane policies (flags, service windows, overrides).
- POS closeout and settlement summary alignment.
## Documentation Contract
Any code change in this repository must include docs updates in the same branch.

View File

@ -0,0 +1,12 @@
using Operations.Domain.Models;
namespace Operations.Domain.Decisions;
public interface IOperationsControlPlaneService
{
OperationalControlPlaneDecision Evaluate(
string locationId,
DateTime nowUtc,
IReadOnlyDictionary<string, bool> featureFlags,
IReadOnlyCollection<string> overrides);
}

View File

@ -0,0 +1,22 @@
using Operations.Domain.Models;
namespace Operations.Domain.Decisions;
public sealed class OperationsControlPlaneService : IOperationsControlPlaneService
{
public OperationalControlPlaneDecision Evaluate(
string locationId,
DateTime nowUtc,
IReadOnlyDictionary<string, bool> featureFlags,
IReadOnlyCollection<string> overrides)
{
var open = featureFlags.TryGetValue($"location:{locationId}:open", out var isOpen) ? isOpen : true;
var enabled = featureFlags.TryGetValue($"location:{locationId}:enabled", out var isEnabled) ? isEnabled : true;
var explanation = open && enabled
? "Control-plane allows operations for the location."
: "Control-plane disabled operations for the location.";
return new OperationalControlPlaneDecision(open, enabled, overrides, explanation);
}
}

View File

@ -0,0 +1,7 @@
namespace Operations.Domain.Models;
public sealed record OperationalControlPlaneDecision(
bool IsServiceWindowOpen,
bool IsFeatureEnabled,
IReadOnlyCollection<string> AppliedOverrides,
string Explanation);