FulfillmentAssignment.java
package com.fulfilment.application.monolith.fulfillment.domain.models;
/**
* Domain model representing a fulfillment assignment:
* "Warehouse W fulfills Product P for Store S."
*
* <p>Constraints (enforced by AssignFulfillmentUseCase):
* <ul>
* <li>Each Product can be fulfilled by a maximum of 2 different Warehouses per Store</li>
* <li>Each Store can be fulfilled by a maximum of 3 different Warehouses</li>
* <li>Each Warehouse can store a maximum of 5 types of Products</li>
* </ul>
*/
public class FulfillmentAssignment {
public Long id;
public Long storeId;
public Long productId;
public String warehouseCode;
}