CREATE OR REPLACE VIEW Stock_Available_View AS
SELECT
    sb.productId,
    sb.inventoryId,
    sb.quantity AS physicalQuantity,
    COALESCE(SUM(sr.quantity), 0) AS reservedQuantity,
    (
        sb.quantity - COALESCE(SUM(sr.quantity), 0)
    ) AS availableQuantity
FROM
    Stock_Balance sb
    LEFT JOIN Stock_Reservations sr ON sr.productId = sb.productId
    AND sr.inventoryId = sb.inventoryId
GROUP BY
    sb.productId,
    sb.inventoryId,
    sb.quantity;
