use crate::types::Bytes;
use chrono::{DateTime, Local, NaiveDate, NaiveDateTime, NaiveTime, Utc};
use sqlx::types::{BigDecimal, Decimal};
use super::{Filter, Operator};
use crate::helper_macros::{is_none, is_none_range};
impl_as_graphql_id_filter!(
bool,
i8,
i16,
i32,
isize,
i64,
u8,
u16,
u32,
usize,
u64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes
);
impl_as_graphql_filter! {base(
bool,
i8,
i16,
i32,
isize,
i64,
u8,
u16,
u32,
usize,
u64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes
)}
impl_as_graphql_filter! {option(
bool,
i8,
i16,
i32,
isize,
i64,
u8,
u16,
u32,
usize,
u64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes
)}
impl_as_db_filter! {base(
bool,
i8,
i16,
i32,
isize,
i64,
u8,
u16,
u32,
usize,
u64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes,
)}
impl_as_graphql_filter! {array(
bool,
i8,
i16,
i32,
i64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes
)}
impl_as_graphql_filter! {optional_array(
bool,
i8,
i16,
i32,
i64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes
)}
impl_as_db_filter! {option(
bool,
i8,
i16,
i32,
isize,
i64,
u8,
u16,
u32,
usize,
u64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes
)}
impl_as_db_filter! {array(
bool,
i8,
i16,
i32,
i64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes,
)}
impl_as_db_filter! {optional_array(
bool,
i8,
i16,
i32,
i64,
f32,
f64,
Decimal,
BigDecimal,
crate::types::BigDecimal,
crate::types::BigInt,
DateTime<Utc>,
DateTime<Local>,
NaiveDate,
NaiveTime,
NaiveDateTime,
Vec<u8>,
Bytes,
)}
filter!(BaseFilter: [BaseOperator; 8],
extra_bounds: {},
extra_binds: {},
null { },
primitive {
0: Eq:eq:"",
1: Not:not:"not",
2: Gt:gt:"gt",
3: Gte:gte:"gte",
4: Lt:lt:"lt",
5: Lte:lte:"lte"
},
primitives {
6: In:in_:"in",
7: NotIn:not_in:"not_in"
}
);
filter!(OptionalBaseFilter: [OptionalBaseOperator; 9],
extra_bounds: {},
extra_binds: {},
null { 8: Null:null:"null" },
primitive {
0: Eq:eq:"",
1: Not:not:"not",
2: Gt:gt:"gt",
3: Gte:gte:"gte",
4: Lt:lt:"lt",
5: Lte:lte:"lte"
},
primitives {
6: In:in_:"in",
7: NotIn:not_in:"not_in"
}
);