Availability and Allocation
Availability is explicit status, not a stock calculation. New inventory starts Available; return enters Returned and requires a separate mark-available action to enter the pool. Assignment eligibility also permits Approved and Returned, so eligibility is broader than the Available metric.
Assignment changes status to Issued; this status guard prevents issuing an already issued aggregate. Marking available clears holder, assigned date, and due date and is allowed only from Returned, Approved, or Available. Tenant query filters and tenant-scoped command lookups prevent ordinary cross-tenant selection.
There is no reservation or quantity model, no category stock balance, no location/department restriction, no employee eligibility lookup, no allocation priority, and no explicit active-assignment database constraint because assignment state lives on the asset itself. Requests are demand records, not reservations against a specific inventory item.
Requires confirmation
Pool ownership, Returned-to-Available review, concurrency expectations, reservation policy, location rules, and whether approved requests should count as available require confirmation.
Source References
microservices/src/asset-service/Domain/Asset/Asset.csmicroservices/src/asset-service/Application/Queries/AssetQueries.csmicroservices/src/asset-service/Infrastructure/AssetDbContext.cs