-*- mode: outline; outline-regexp: "\\s *\\*+" -*-
Jifty::Action::Record::Search should take arguments and return a
FooCollection as the q{search} field of its q{content}.
It will generate arguments for each field, according to the SQL type
of the field:
* text
* I<field>, I<field>_not
* Do substring searching on the given field
* This is case sensitive.
* I<field_is>
* ? Does exact matching ?
* time, date, or datetime
* T<field>_after, I<field>_before
* T<field> for exact matching?
* int
* I<field>
* Exact matching
* I<field_gt>
* I<field_lt>
* Less than/greater than
* I<field_gte>
* I<field_lte>
* These are perhaps superfluous, but could be convenient.
* (I want auto-loaded arguments ...)
* boolean
* I<field>
* Can be true, false, or undefined
* refers_to an object
* I<field>
* I<field_not>
* Accept ids
* ? Generate valid_values for this ?
* refers_to a collection
* Do nothing?
* I<field>_contains ?
* I<field>_lacks ?
*******
* Validators and canonicalizers
* Never use validators
* Use canonicalizers on any "exact match" fields
* What's the right behaviour on substring/comparison match?
* valid_values
* valid_values should remain valid_values for any exact match fields,
* become available_values otherwise