Implement Request for Quotation endpoint for AVA process#612
Implement Request for Quotation endpoint for AVA process#612
Conversation
Co-authored-by: astanik <7569599+astanik@users.noreply.github.com>
Co-authored-by: astanik <7569599+astanik@users.noreply.github.com>
Co-authored-by: astanik <7569599+astanik@users.noreply.github.com>
Co-authored-by: astanik <7569599+astanik@users.noreply.github.com>
|
@copilot Please create a separate endpoint and resource for the "Request for Quotation" functionality. Extend this endpoint with an HTTP GET request to retrieve all "Request for Quotation" requests, and a DELETE request with the request ID to invalidate the request. |
… methods Co-authored-by: astanik <7569599+astanik@users.noreply.github.com>
Co-authored-by: astanik <7569599+astanik@users.noreply.github.com>
I've created a separate endpoint for Request for Quotation functionality as requested: New endpoint: Added methods:
The quotation request functionality has been completely removed from Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|


Implements the quotation request step of the AVA (tendering, awarding, invoicing) process per GAEB specifications. Enables managers to request quotations from multiple contractors for an issue.
API Changes
New dedicated endpoint:
/ticketing/v1/quotation-requestsPOST /ticketing/v1/quotation-requests?issueId={id}
Request:
{ "contractorIds": ["uuid-1", "uuid-2"], "description": "Optional free text" }Response: 201 Created with list of created quotation requests, one per contractor, with status
VALIDGET /ticketing/v1/quotation-requests
Query parameters (all optional):
issueId- Filter by issue IDcontractorId- Filter by contractor IDprojectId- Filter by project IDResponse: 200 OK with list of quotation requests matching the filter criteria. Returns all accessible requests if no filter is provided.
DELETE /ticketing/v1/quotation-requests/{requestId}
Response: 204 No Content
Invalidates the quotation request by setting its status to
INVALID(does not delete the record).Authorization: Manager role required for all endpoints
Implementation
requests_for_quotationwith composite key(project_id, request_id), indexes onissue_idandcontractor_idQuotationRequestModelinterface withStatusenum (VALID/INVALID)QuotationRequestEntityandQuotationRequestKeyfollowing existing Cassandra entity patternsQuotationRequestRepositorywith find methods by issue, contractor, project, and request IDQuotationRequestControllerwith methods to create, retrieve, and invalidate quotation requestsQuotationRequestEndpointinterface andQuotationRequestResourceimplementationCreateQuotationRequestJson,QuotationRequestJson,QuotationRequestListJson)005-create-requests-for-quotation-table.xmlTechnical Notes
The implementation stores quotation requests with project, issue, contractor, trigger user, description, timestamp, and status fields. Each contractor receives a separate request record with unique
request_id. The quotation request functionality is implemented as a separate, dedicated endpoint following the microservices architecture pattern used throughout the project.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.