1use crate::scalars::DateTimeOrDuration;
2use linear_schema::linear as schema;
3
4#[derive(cynic::InputObject, Clone, Debug, Default)]
5#[cynic(schema = "linear")]
6pub struct StringComparator {
7 #[cynic(skip_serializing_if = "Option::is_none")]
8 pub eq: Option<String>,
9 #[cynic(skip_serializing_if = "Option::is_none")]
10 pub contains: Option<String>,
11 #[cynic(rename = "containsIgnoreCase", skip_serializing_if = "Option::is_none")]
12 pub contains_ignore_case: Option<String>,
13}
14
15#[derive(cynic::InputObject, Clone, Debug, Default)]
16#[cynic(schema = "linear")]
17pub struct NullableStringComparator {
18 #[cynic(skip_serializing_if = "Option::is_none")]
19 pub eq: Option<String>,
20 #[cynic(skip_serializing_if = "Option::is_none")]
21 pub contains: Option<String>,
22 #[cynic(rename = "containsIgnoreCase", skip_serializing_if = "Option::is_none")]
23 pub contains_ignore_case: Option<String>,
24}
25
26#[derive(cynic::InputObject, Clone, Debug, Default)]
27#[cynic(schema = "linear")]
28pub struct NullableNumberComparator {
29 #[cynic(skip_serializing_if = "Option::is_none")]
30 pub eq: Option<f64>,
31 #[cynic(skip_serializing_if = "Option::is_none")]
32 pub gte: Option<f64>,
33 #[cynic(skip_serializing_if = "Option::is_none")]
34 pub lte: Option<f64>,
35}
36
37#[derive(cynic::InputObject, Clone, Debug, Default)]
38#[cynic(schema = "linear")]
39pub struct NumberComparator {
40 #[cynic(skip_serializing_if = "Option::is_none")]
41 pub eq: Option<f64>,
42 #[cynic(skip_serializing_if = "Option::is_none")]
43 pub gte: Option<f64>,
44 #[cynic(skip_serializing_if = "Option::is_none")]
45 pub lte: Option<f64>,
46}
47
48#[derive(cynic::InputObject, Clone, Debug, Default)]
50#[cynic(schema = "linear", graphql_type = "IDComparator")]
51pub struct IdComparator {
52 #[cynic(skip_serializing_if = "Option::is_none")]
53 pub eq: Option<cynic::Id>,
54}
55
56#[derive(cynic::InputObject, Clone, Debug, Default)]
58#[cynic(schema = "linear")]
59pub struct DateComparator {
60 #[cynic(skip_serializing_if = "Option::is_none")]
61 pub eq: Option<DateTimeOrDuration>,
62 #[cynic(skip_serializing_if = "Option::is_none")]
63 pub gte: Option<DateTimeOrDuration>,
64 #[cynic(skip_serializing_if = "Option::is_none")]
65 pub lte: Option<DateTimeOrDuration>,
66}
67
68#[derive(cynic::InputObject, Clone, Debug, Default)]
70#[cynic(schema = "linear")]
71pub struct WorkflowStateFilter {
72 #[cynic(skip_serializing_if = "Option::is_none")]
73 pub id: Option<IdComparator>,
74 #[cynic(skip_serializing_if = "Option::is_none")]
75 pub name: Option<StringComparator>,
76 #[cynic(skip_serializing_if = "Option::is_none")]
77 pub team: Option<TeamFilter>,
78}
79
80#[derive(cynic::InputObject, Clone, Debug, Default)]
82#[cynic(schema = "linear")]
83pub struct NullableUserFilter {
84 #[cynic(skip_serializing_if = "Option::is_none")]
85 pub id: Option<IdComparator>,
86}
87
88#[derive(cynic::InputObject, Clone, Debug, Default)]
90#[cynic(schema = "linear")]
91pub struct TeamFilter {
92 #[cynic(skip_serializing_if = "Option::is_none")]
93 pub id: Option<IdComparator>,
94 #[cynic(skip_serializing_if = "Option::is_none")]
95 pub key: Option<StringComparator>,
96}
97
98#[derive(cynic::InputObject, Clone, Debug, Default)]
100#[cynic(schema = "linear")]
101pub struct NullableProjectFilter {
102 #[cynic(skip_serializing_if = "Option::is_none")]
103 pub id: Option<IdComparator>,
104}
105
106#[derive(cynic::InputObject, Clone, Debug, Default)]
112#[cynic(schema = "linear")]
113pub struct UserFilter {
114 #[cynic(rename = "displayName", skip_serializing_if = "Option::is_none")]
115 pub display_name: Option<StringComparator>,
116}
117
118#[derive(cynic::InputObject, Clone, Debug, Default)]
120#[cynic(schema = "linear")]
121pub struct ProjectFilter {
122 #[cynic(skip_serializing_if = "Option::is_none")]
123 pub name: Option<StringComparator>,
124}
125
126#[derive(cynic::InputObject, Clone, Debug, Default)]
128#[cynic(schema = "linear")]
129pub struct NullableTeamFilter {
130 #[cynic(skip_serializing_if = "Option::is_none")]
131 pub id: Option<IdComparator>,
132 #[cynic(skip_serializing_if = "Option::is_none")]
133 pub key: Option<StringComparator>,
134}
135
136#[derive(cynic::InputObject, Clone, Debug, Default)]
138#[cynic(schema = "linear")]
139pub struct IssueLabelFilter {
140 #[cynic(skip_serializing_if = "Option::is_none")]
141 pub name: Option<StringComparator>,
142 #[cynic(skip_serializing_if = "Option::is_none")]
143 pub team: Option<NullableTeamFilter>,
144}
145
146#[derive(cynic::InputObject, Clone, Debug, Default)]
151#[cynic(schema = "linear")]
152pub struct IssueFilter {
153 #[cynic(skip_serializing_if = "Option::is_none")]
154 pub title: Option<StringComparator>,
155 #[cynic(skip_serializing_if = "Option::is_none")]
156 pub description: Option<NullableStringComparator>,
157 #[cynic(skip_serializing_if = "Option::is_none")]
158 pub priority: Option<NullableNumberComparator>,
159 #[cynic(skip_serializing_if = "Option::is_none")]
160 pub state: Option<WorkflowStateFilter>,
161 #[cynic(skip_serializing_if = "Option::is_none")]
162 pub assignee: Option<NullableUserFilter>,
163 #[cynic(skip_serializing_if = "Option::is_none")]
164 pub team: Option<TeamFilter>,
165 #[cynic(skip_serializing_if = "Option::is_none")]
166 pub project: Option<NullableProjectFilter>,
167 #[cynic(rename = "createdAt", skip_serializing_if = "Option::is_none")]
168 pub created_at: Option<DateComparator>,
169 #[cynic(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
170 pub updated_at: Option<DateComparator>,
171 #[cynic(skip_serializing_if = "Option::is_none")]
172 pub number: Option<NumberComparator>,
173}