Estimates

Changes to Save how the estimate's lines are grouped and ordered (EstimateLineGroups) — the whole layout in one write, so a drag can never leave half an order behind. Creates, renames, reorders and deletes groups, and re-sequences every line's `DisplayOrder` to match EstimateLineLayout. Presentational only: no price, quantity or execution state changes, so it records no consent event and never trips the consent gate. Lines the request doesn't mention (e.g. added by someone else meanwhile) keep their relative order at the end of the ungrouped lines.

put/Estimates/{id}/layout
    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      added the optional property // to the response with the status (media type: text/plain)

    • info

      added the optional property // to the response with the status (media type: application/json)

    • info

      added the optional property // to the response with the status (media type: text/json)

    • info

      endpoint added