⚙️  Backend Feature Request — Enhance Sample Search API
🗣️  User Feedback / Suggested Improvements
- Add Person as a filter option.
 - Add Sample Type as a filter option.
 - Update search box placeholder text: change “Name” → “Sample Name”.
 - Review Date Types filter: remove inappropriate types (also on sample creation).
 
🎯  Goal
Enhance the Sample Search API to support:
- 
Person filter (
SampleUser) - 
Sample Type filter (
SampleType.name) - Valid Date Types
 - Advanced search with multiple combined criteria
 
All while keeping existing filters intact:
- 
search(query string) keywordproposal_id- 
date_from/date_to date_type- 
sort_column/sort_order only_user
Endpoints remain:
- 
POST /sample/initiate→ create query, returncursor_id - 
GET /sample→ fetch paginated results usingcursor_id 
🧩  Implementation
Payload Example
{
  "search": "query",
  "keyword": "...",
  "proposal_id": "...",
  "date_from": "YYYY-MM-DD",
  "date_to": "YYYY-MM-DD",
  "date_type": "...",
  "sort_column": "name",
  "sort_order": "asc",
  "only_user": true,
  "person_ids": 1, 2, 3],        // New filter
  "sample_type_ids": [5, 6]       // New filter
}
Backend Tasks
- 
Extend initiate_samples_queryfunction to includeperson_idsandsample_type_idsin cursor generation point. - 
Update the query procedure in GET /sampleto filter samples by: - 
* Sample.sample_users→person_ids - 
* Sample.sample_type→sample_type_ids - 
Ensure cursor-based pagination and GET /samplebehavior remain compatible. - 
Maintain existing filters and logic.  
🧪  Testing
- 
Person filter returns only relevant samples  - 
Sample Type filter returns correct samples  - 
Existing filters still work as expected  - 
Advanced search combining multiple filters works correctly  - 
Cursor-based pagination functions properly  - 
with_relations=truereturns related objects 
🏷️  Labels
backend feature search sample enhancement priority::medium