Advanced search

This commit is contained in:
Mazyar
2026-05-11 11:25:41 +03:30
parent eb6706e061
commit 8ba667e4f4
4 changed files with 304 additions and 67 deletions
+48 -21
View File
@@ -131,19 +131,28 @@ func (h *TenderHandler) Delete(c echo.Context) error {
// @Tags Admin-Tenders
// @Produce json
// @Param company_id query string false "Company ID for match percentage calculation and sorting"
// @Param q query string false "Search query for title and description"
// @Param notice_type query string false "Filter by notice type code"
// @Param q query string false "Keyword search across title, description, per-document AI summaries (document_summaries), and optional stored overall summary (ai_overall_summary)"
// @Param notice_type query string false "Filter by TED notice type code (BT-02, notice_type_code)"
// @Param notice_types query []string false "Filter by multiple notice type codes (notice_type_code)"
// @Param form_types query []string false "Filter by TED form type / listName (e.g. competition, result, planning, contract-award, prior-information)"
// @Param procurement_type query string false "Filter by procurement type code"
// @Param country_codes query []string false "Filter by country codes (comma-separated)"
// @Param country query string false "Filter by a single ISO country code"
// @Param country_codes query []string false "Filter by country codes (repeat param or comma-separated)"
// @Param status query []string false "Filter by status (comma-separated)"
// @Param source query []string false "Filter by source (comma-separated)"
// @Param classifications query []string false "Filter by CPV / classification codes (main, additional, or procurement lot CPVs)"
// @Param cpv_codes query []string false "Alias for classifications: one or more CPV codes"
// @Param min_estimated_value query number false "Minimum estimated value"
// @Param max_estimated_value query number false "Maximum estimated value"
// @Param currency query string false "Filter by currency"
// @Param deadline_from query number false "Deadline from"
// @Param deadline_to query number false "Deadline to"
// @Param publication_date_from query number false "Publication date from"
// @Param publication_date_to query number false "Publication date to"
// @Param created_at_from query number false "Created at lower bound (Unix timestamp, seconds)"
// @Param created_at_to query number false "Created at upper bound (Unix timestamp, seconds)"
// @Param deadline_from query number false "Tender deadline from (Unix timestamp, seconds)"
// @Param deadline_to query number false "Tender deadline to (Unix timestamp, seconds)"
// @Param publication_date_from query number false "Publication date from (Unix timestamp, seconds)"
// @Param publication_date_to query number false "Publication date to (Unix timestamp, seconds)"
// @Param submission_date_from query number false "Submission deadline from (Unix timestamp, seconds)"
// @Param submission_date_to query number false "Submission deadline to (Unix timestamp, seconds)"
// @Param languages query []string false "Filter by languages (comma-separated)"
// @Param buyer_organization_id query string false "Filter by buyer organization ID"
// @Param limit query int false "Number of items per page (default: 20, max: 100)"
@@ -184,19 +193,28 @@ func (h *TenderHandler) Search(c echo.Context) error {
// @Description Retrieve active tenders for mobile application users with automatic company-based matching from customer profile
// @Tags Tenders
// @Produce json
// @Param q query string false "Search query for title and description"
// @Param notice_type query string false "Filter by notice type code"
// @Param q query string false "Keyword search across title, description, AI document summaries, optional stored overall summary"
// @Param notice_type query string false "Filter by TED notice type code (notice_type_code)"
// @Param notice_types query []string false "Multiple notice type codes"
// @Param form_types query []string false "TED form types: competition, result, planning, contract-award, prior-information, etc."
// @Param procurement_type query string false "Filter by procurement type code"
// @Param country_codes query []string false "Filter by country codes (comma-separated)"
// @Param country query string false "Single ISO country code"
// @Param country_codes query []string false "Filter by country codes"
// @Param status query []string false "Filter by status (comma-separated)"
// @Param source query []string false "Filter by source (comma-separated)"
// @Param classifications query []string false "CPV / classification codes"
// @Param cpv_codes query []string false "One or more CPV codes (same as classifications)"
// @Param min_estimated_value query number false "Minimum estimated value"
// @Param max_estimated_value query number false "Maximum estimated value"
// @Param currency query string false "Filter by currency"
// @Param deadline_from query number false "Deadline from"
// @Param deadline_to query number false "Deadline to"
// @Param publication_date_from query number false "Publication date from"
// @Param publication_date_to query number false "Publication date to"
// @Param created_at_from query number false "Created at from (Unix seconds)"
// @Param created_at_to query number false "Created at to (Unix seconds)"
// @Param deadline_from query number false "Tender deadline from (Unix seconds)"
// @Param deadline_to query number false "Tender deadline to (Unix seconds)"
// @Param publication_date_from query number false "Publication date from (Unix seconds)"
// @Param publication_date_to query number false "Publication date to (Unix seconds)"
// @Param submission_date_from query number false "Submission deadline from (Unix seconds)"
// @Param submission_date_to query number false "Submission deadline to (Unix seconds)"
// @Param languages query []string false "Filter by languages (comma-separated)"
// @Param buyer_organization_id query string false "Filter by buyer organization ID"
// @Param limit query int false "Number of items per page (default: 20, max: 100)"
@@ -248,19 +266,28 @@ func (h *TenderHandler) GetPublicTenders(c echo.Context) error {
// @Description Retrieve active tenders for mobile application users with automatic company-based matching from customer profile
// @Tags Tenders
// @Produce json
// @Param q query string false "Search query for title and description"
// @Param notice_type query string false "Filter by notice type code"
// @Param q query string false "Keyword search across title, description, AI document summaries, optional stored overall summary"
// @Param notice_type query string false "Filter by TED notice type code (notice_type_code)"
// @Param notice_types query []string false "Multiple notice type codes"
// @Param form_types query []string false "TED form types: competition, result, planning, contract-award, prior-information, etc."
// @Param procurement_type query string false "Filter by procurement type code"
// @Param country_codes query []string false "Filter by country codes (comma-separated)"
// @Param country query string false "Single ISO country code"
// @Param country_codes query []string false "Filter by country codes"
// @Param status query []string false "Filter by status (comma-separated)"
// @Param source query []string false "Filter by source (comma-separated)"
// @Param classifications query []string false "CPV / classification codes"
// @Param cpv_codes query []string false "One or more CPV codes"
// @Param min_estimated_value query number false "Minimum estimated value"
// @Param max_estimated_value query number false "Maximum estimated value"
// @Param currency query string false "Filter by currency"
// @Param deadline_from query number false "Deadline from"
// @Param deadline_to query number false "Deadline to"
// @Param publication_date_from query number false "Publication date from"
// @Param publication_date_to query number false "Publication date to"
// @Param created_at_from query number false "Created at from (Unix seconds)"
// @Param created_at_to query number false "Created at to (Unix seconds)"
// @Param deadline_from query number false "Tender deadline from (Unix seconds)"
// @Param deadline_to query number false "Tender deadline to (Unix seconds)"
// @Param publication_date_from query number false "Publication date from (Unix seconds)"
// @Param publication_date_to query number false "Publication date to (Unix seconds)"
// @Param submission_date_from query number false "Submission deadline from (Unix seconds)"
// @Param submission_date_to query number false "Submission deadline to (Unix seconds)"
// @Param languages query []string false "Filter by languages (comma-separated)"
// @Param buyer_organization_id query string false "Filter by buyer organization ID"
// @Param limit query int false "Number of items per page (default: 20, max: 100)"