chore(kitchen-domain): checkpoint pending development updates
This commit is contained in:
parent
6d52360add
commit
5d1122b59f
@ -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>
|
||||
|
||||
18
docs/roadmap/feature-epics.md
Normal file
18
docs/roadmap/feature-epics.md
Normal 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.
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
9
src/Kitchen.Domain/Models/KitchenOrderTicket.cs
Normal file
9
src/Kitchen.Domain/Models/KitchenOrderTicket.cs
Normal 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);
|
||||
Loading…
Reference in New Issue
Block a user