> allOffsets,
64 | ) {
65 | final object = DetailDTO(
66 | html: reader.readString(offsets[0]),
67 | id: id,
68 | );
69 | return object;
70 | }
71 |
72 | P _detailDTODeserializeProp(
73 | IsarReader reader,
74 | int propertyId,
75 | int offset,
76 | Map> allOffsets,
77 | ) {
78 | switch (propertyId) {
79 | case 0:
80 | return (reader.readString(offset)) as P;
81 | default:
82 | throw IsarError('Unknown property with id $propertyId');
83 | }
84 | }
85 |
86 | Id _detailDTOGetId(DetailDTO object) {
87 | return object.id;
88 | }
89 |
90 | List> _detailDTOGetLinks(DetailDTO object) {
91 | return [];
92 | }
93 |
94 | void _detailDTOAttach(IsarCollection col, Id id, DetailDTO object) {}
95 |
96 | extension DetailDTOQueryWhereSort
97 | on QueryBuilder {
98 | QueryBuilder anyId() {
99 | return QueryBuilder.apply(this, (query) {
100 | return query.addWhereClause(const IdWhereClause.any());
101 | });
102 | }
103 | }
104 |
105 | extension DetailDTOQueryWhere
106 | on QueryBuilder {
107 | QueryBuilder idEqualTo(Id id) {
108 | return QueryBuilder.apply(this, (query) {
109 | return query.addWhereClause(IdWhereClause.between(
110 | lower: id,
111 | upper: id,
112 | ));
113 | });
114 | }
115 |
116 | QueryBuilder idNotEqualTo(Id id) {
117 | return QueryBuilder.apply(this, (query) {
118 | if (query.whereSort == Sort.asc) {
119 | return query
120 | .addWhereClause(
121 | IdWhereClause.lessThan(upper: id, includeUpper: false),
122 | )
123 | .addWhereClause(
124 | IdWhereClause.greaterThan(lower: id, includeLower: false),
125 | );
126 | } else {
127 | return query
128 | .addWhereClause(
129 | IdWhereClause.greaterThan(lower: id, includeLower: false),
130 | )
131 | .addWhereClause(
132 | IdWhereClause.lessThan(upper: id, includeUpper: false),
133 | );
134 | }
135 | });
136 | }
137 |
138 | QueryBuilder idGreaterThan(Id id,
139 | {bool include = false}) {
140 | return QueryBuilder.apply(this, (query) {
141 | return query.addWhereClause(
142 | IdWhereClause.greaterThan(lower: id, includeLower: include),
143 | );
144 | });
145 | }
146 |
147 | QueryBuilder idLessThan(Id id,
148 | {bool include = false}) {
149 | return QueryBuilder.apply(this, (query) {
150 | return query.addWhereClause(
151 | IdWhereClause.lessThan(upper: id, includeUpper: include),
152 | );
153 | });
154 | }
155 |
156 | QueryBuilder idBetween(
157 | Id lowerId,
158 | Id upperId, {
159 | bool includeLower = true,
160 | bool includeUpper = true,
161 | }) {
162 | return QueryBuilder.apply(this, (query) {
163 | return query.addWhereClause(IdWhereClause.between(
164 | lower: lowerId,
165 | includeLower: includeLower,
166 | upper: upperId,
167 | includeUpper: includeUpper,
168 | ));
169 | });
170 | }
171 | }
172 |
173 | extension DetailDTOQueryFilter
174 | on QueryBuilder {
175 | QueryBuilder htmlEqualTo(
176 | String value, {
177 | bool caseSensitive = true,
178 | }) {
179 | return QueryBuilder.apply(this, (query) {
180 | return query.addFilterCondition(FilterCondition.equalTo(
181 | property: r'html',
182 | value: value,
183 | caseSensitive: caseSensitive,
184 | ));
185 | });
186 | }
187 |
188 | QueryBuilder htmlGreaterThan(
189 | String value, {
190 | bool include = false,
191 | bool caseSensitive = true,
192 | }) {
193 | return QueryBuilder.apply(this, (query) {
194 | return query.addFilterCondition(FilterCondition.greaterThan(
195 | include: include,
196 | property: r'html',
197 | value: value,
198 | caseSensitive: caseSensitive,
199 | ));
200 | });
201 | }
202 |
203 | QueryBuilder htmlLessThan(
204 | String value, {
205 | bool include = false,
206 | bool caseSensitive = true,
207 | }) {
208 | return QueryBuilder.apply(this, (query) {
209 | return query.addFilterCondition(FilterCondition.lessThan(
210 | include: include,
211 | property: r'html',
212 | value: value,
213 | caseSensitive: caseSensitive,
214 | ));
215 | });
216 | }
217 |
218 | QueryBuilder htmlBetween(
219 | String lower,
220 | String upper, {
221 | bool includeLower = true,
222 | bool includeUpper = true,
223 | bool caseSensitive = true,
224 | }) {
225 | return QueryBuilder.apply(this, (query) {
226 | return query.addFilterCondition(FilterCondition.between(
227 | property: r'html',
228 | lower: lower,
229 | includeLower: includeLower,
230 | upper: upper,
231 | includeUpper: includeUpper,
232 | caseSensitive: caseSensitive,
233 | ));
234 | });
235 | }
236 |
237 | QueryBuilder htmlStartsWith(
238 | String value, {
239 | bool caseSensitive = true,
240 | }) {
241 | return QueryBuilder.apply(this, (query) {
242 | return query.addFilterCondition(FilterCondition.startsWith(
243 | property: r'html',
244 | value: value,
245 | caseSensitive: caseSensitive,
246 | ));
247 | });
248 | }
249 |
250 | QueryBuilder htmlEndsWith(
251 | String value, {
252 | bool caseSensitive = true,
253 | }) {
254 | return QueryBuilder.apply(this, (query) {
255 | return query.addFilterCondition(FilterCondition.endsWith(
256 | property: r'html',
257 | value: value,
258 | caseSensitive: caseSensitive,
259 | ));
260 | });
261 | }
262 |
263 | QueryBuilder htmlContains(
264 | String value,
265 | {bool caseSensitive = true}) {
266 | return QueryBuilder.apply(this, (query) {
267 | return query.addFilterCondition(FilterCondition.contains(
268 | property: r'html',
269 | value: value,
270 | caseSensitive: caseSensitive,
271 | ));
272 | });
273 | }
274 |
275 | QueryBuilder htmlMatches(
276 | String pattern,
277 | {bool caseSensitive = true}) {
278 | return QueryBuilder.apply(this, (query) {
279 | return query.addFilterCondition(FilterCondition.matches(
280 | property: r'html',
281 | wildcard: pattern,
282 | caseSensitive: caseSensitive,
283 | ));
284 | });
285 | }
286 |
287 | QueryBuilder htmlIsEmpty() {
288 | return QueryBuilder.apply(this, (query) {
289 | return query.addFilterCondition(FilterCondition.equalTo(
290 | property: r'html',
291 | value: '',
292 | ));
293 | });
294 | }
295 |
296 | QueryBuilder htmlIsNotEmpty() {
297 | return QueryBuilder.apply(this, (query) {
298 | return query.addFilterCondition(FilterCondition.greaterThan(
299 | property: r'html',
300 | value: '',
301 | ));
302 | });
303 | }
304 |
305 | QueryBuilder idEqualTo(
306 | Id value) {
307 | return QueryBuilder.apply(this, (query) {
308 | return query.addFilterCondition(FilterCondition.equalTo(
309 | property: r'id',
310 | value: value,
311 | ));
312 | });
313 | }
314 |
315 | QueryBuilder idGreaterThan(
316 | Id value, {
317 | bool include = false,
318 | }) {
319 | return QueryBuilder.apply(this, (query) {
320 | return query.addFilterCondition(FilterCondition.greaterThan(
321 | include: include,
322 | property: r'id',
323 | value: value,
324 | ));
325 | });
326 | }
327 |
328 | QueryBuilder idLessThan(
329 | Id value, {
330 | bool include = false,
331 | }) {
332 | return QueryBuilder.apply(this, (query) {
333 | return query.addFilterCondition(FilterCondition.lessThan(
334 | include: include,
335 | property: r'id',
336 | value: value,
337 | ));
338 | });
339 | }
340 |
341 | QueryBuilder idBetween(
342 | Id lower,
343 | Id upper, {
344 | bool includeLower = true,
345 | bool includeUpper = true,
346 | }) {
347 | return QueryBuilder.apply(this, (query) {
348 | return query.addFilterCondition(FilterCondition.between(
349 | property: r'id',
350 | lower: lower,
351 | includeLower: includeLower,
352 | upper: upper,
353 | includeUpper: includeUpper,
354 | ));
355 | });
356 | }
357 | }
358 |
359 | extension DetailDTOQueryObject
360 | on QueryBuilder {}
361 |
362 | extension DetailDTOQueryLinks
363 | on QueryBuilder {}
364 |
365 | extension DetailDTOQuerySortBy on QueryBuilder {
366 | QueryBuilder sortByHtml() {
367 | return QueryBuilder.apply(this, (query) {
368 | return query.addSortBy(r'html', Sort.asc);
369 | });
370 | }
371 |
372 | QueryBuilder sortByHtmlDesc() {
373 | return QueryBuilder.apply(this, (query) {
374 | return query.addSortBy(r'html', Sort.desc);
375 | });
376 | }
377 | }
378 |
379 | extension DetailDTOQuerySortThenBy
380 | on QueryBuilder {
381 | QueryBuilder thenByHtml() {
382 | return QueryBuilder.apply(this, (query) {
383 | return query.addSortBy(r'html', Sort.asc);
384 | });
385 | }
386 |
387 | QueryBuilder thenByHtmlDesc() {
388 | return QueryBuilder.apply(this, (query) {
389 | return query.addSortBy(r'html', Sort.desc);
390 | });
391 | }
392 |
393 | QueryBuilder thenById() {
394 | return QueryBuilder.apply(this, (query) {
395 | return query.addSortBy(r'id', Sort.asc);
396 | });
397 | }
398 |
399 | QueryBuilder thenByIdDesc() {
400 | return QueryBuilder.apply(this, (query) {
401 | return query.addSortBy(r'id', Sort.desc);
402 | });
403 | }
404 | }
405 |
406 | extension DetailDTOQueryWhereDistinct
407 | on QueryBuilder {
408 | QueryBuilder distinctByHtml(
409 | {bool caseSensitive = true}) {
410 | return QueryBuilder.apply(this, (query) {
411 | return query.addDistinctBy(r'html', caseSensitive: caseSensitive);
412 | });
413 | }
414 | }
415 |
416 | extension DetailDTOQueryProperty
417 | on QueryBuilder {
418 | QueryBuilder idProperty() {
419 | return QueryBuilder.apply(this, (query) {
420 | return query.addPropertyName(r'id');
421 | });
422 | }
423 |
424 | QueryBuilder htmlProperty() {
425 | return QueryBuilder.apply(this, (query) {
426 | return query.addPropertyName(r'html');
427 | });
428 | }
429 | }
430 |
--------------------------------------------------------------------------------