partner_locations record (is_primary: true). The institution's own coordinates are only the search center,Setting.talent_finder_radius km by default, overridable with radius) resolve in order:latitude + longitude when both are sent (optional radius)institution_id when the institution belongs to the authenticated user (institution role only)users.current_institution_id)latitude/longitude is sent, institution_id is not in the user's institution list, or kind is invalid.institution_id.sub_service_id (or service_id), kind (contract work type), and sorting on the same request.kinds on each sub-service in the response; new competencies default toinstallation, maintenance, and repair.PartnerPolicy#index? is open). No institution geo filter unlesslatitude and longitude are sent. No default price sort (unlike institution). Use GET /api/v1/supervisor/partnerslatitude and longitude are provided; otherwise allsort=price_asc / sort=price_desc, or sort_by=price with sort_order=asc|desc.sub_service_id is set, ordering uses that sub-service's active base partner_dynamic_pricings row.sort_by=created_at (and optional sort_order) to sort by registration date instead.curl --location '/api/v1/partners?latitude=-6.2088&longitude=106.8456&radius=10&institution_id=1&service_id=1&sub_service_id=1&kind=repair&q=undefined&open_to_work=true&sort=price_asc&sort_by=price&sort_order=asc&page=undefined&per_page=undefined' \
--header 'Authorization: Bearer <token>'{
"success": true,
"data": [
{
"id": 1,
"full_name": "Ahmad Teknisi",
"picture": "https://example.com/rails/active_storage/blobs/redirect/picture.jpg",
"gender": "male",
"is_verified": true,
"open_to_work": true,
"status": "active",
"verification_status": "completed",
"verification_step": "verified",
"location": {
"province": "DKI Jakarta",
"city": "Jakarta Selatan",
"district": "Pancoran",
"subdistrict": "Pancoran",
"postcode": "12780",
"address": "Jl. Pancoran Timur No. 10",
"latitude": -6.2446,
"longitude": 106.8503
},
"ratings_summary": {
"overall_average": 4.5,
"total_reviews": 25
},
"metrics": [
{
"id": 1,
"name": "Performance",
"average": 87.5
}
],
"competencies": [
{
"id": 1,
"name": "Medical Equipment",
"sub_services": [
{
"id": 1,
"name": "X-Ray Machine",
"status": "active",
"kinds": [
"installation",
"maintenance",
"repair"
]
}
]
}
],
"pricings": [
{
"id": 1,
"code": "base",
"kind": "fixed",
"amount": {
"value": 150000,
"currency": "IDR"
},
"unit": "per visit",
"sub_service": {
"id": 1,
"name": "X-Ray Machine"
}
}
]
}
],
"meta": {
"page": 1,
"per_page": 20,
"total_count": 15,
"total_pages": 1,
"prev_page": null,
"next_page": null
}
}