chore(kitchen-domain): checkpoint pending development updates

This commit is contained in:
José René White Enciso 2026-03-09 11:57:46 -06:00
parent 6d52360add
commit 5d1122b59f
5 changed files with 61 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/kitchen-domain</RepositoryUrl>
<PackageProjectUrl>http://192.168.10.100:3000/AgileWebs/kitchen-domain</PackageProjectUrl>
<RepositoryUrl>https://gitea.dream-views.com/AgileWebs/kitchen-domain</RepositoryUrl>
<PackageProjectUrl>https://gitea.dream-views.com/AgileWebs/kitchen-domain</PackageProjectUrl>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,18 @@
# Feature Epics
## Repository
kitchen-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,10 @@
using Kitchen.Domain.Models;
namespace Kitchen.Domain.Decisions;
public interface IKitchenOrderLifecycleDecisionService
{
bool CanStartPreparation(KitchenOrderTicket ticket, DateTime nowUtc);
bool CanMarkReadyForPickup(KitchenOrderTicket ticket);
bool CanCancel(KitchenOrderTicket ticket);
}

View File

@ -0,0 +1,22 @@
using Kitchen.Domain.Models;
namespace Kitchen.Domain.Decisions;
public sealed class KitchenOrderLifecycleDecisionService : IKitchenOrderLifecycleDecisionService
{
public bool CanStartPreparation(KitchenOrderTicket ticket, DateTime nowUtc)
{
return ticket.State == KitchenWorkflowState.Queued
&& ticket.CreatedAtUtc <= nowUtc;
}
public bool CanMarkReadyForPickup(KitchenOrderTicket ticket)
{
return ticket.State == KitchenWorkflowState.Preparing;
}
public bool CanCancel(KitchenOrderTicket ticket)
{
return ticket.State is KitchenWorkflowState.Queued or KitchenWorkflowState.Preparing;
}
}

View File

@ -0,0 +1,9 @@
namespace Kitchen.Domain.Models;
public sealed record KitchenOrderTicket(
string OrderId,
string TicketId,
KitchenWorkflowState State,
int Priority,
DateTime CreatedAtUtc,
string Station);