-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTodoQuery.swift
More file actions
76 lines (69 loc) · 2 KB
/
Copy pathTodoQuery.swift
File metadata and controls
76 lines (69 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//
// TodoQuery.swift
// DevLogCore
//
// Created by opfic on 2/21/26.
//
import Foundation
public struct TodoQuery: Equatable {
public enum SortTarget: Equatable, Hashable {
case createdAt
case completedAt
case deletedAt
case updatedAt
case dueDate
}
public enum SortOrder: Equatable, Hashable {
case latest
case oldest
}
public enum CompletionFilter: Equatable, Hashable {
case all
case incomplete
case completed
}
public enum DueDateFilter: Equatable, Hashable {
case all
case withDueDate
case withoutDueDate
}
public var categoryId: String?
public var keyword: String?
public var isPinned: Bool?
public var completionFilter: CompletionFilter
public var dueDateFilter: DueDateFilter
public var sortDateFrom: Date?
public var sortDateTo: Date?
public var includesDeleted: Bool
public var sortTarget: SortTarget
public var sortOrder: SortOrder
public var pageSize: Int
public var fetchAllPages: Bool
public init(
categoryId: String? = nil,
keyword: String? = nil,
isPinned: Bool? = nil,
completionFilter: CompletionFilter = .all,
dueDateFilter: DueDateFilter = .all,
sortDateFrom: Date? = nil,
sortDateTo: Date? = nil,
includesDeleted: Bool = false,
sortTarget: SortTarget = .createdAt,
sortOrder: SortOrder = .latest,
pageSize: Int = 20,
fetchAllPages: Bool = false
) {
self.categoryId = categoryId
self.keyword = keyword
self.isPinned = isPinned
self.completionFilter = completionFilter
self.dueDateFilter = dueDateFilter
self.sortDateFrom = sortDateFrom
self.sortDateTo = sortDateTo
self.includesDeleted = includesDeleted
self.sortTarget = sortTarget
self.sortOrder = sortOrder
self.pageSize = pageSize
self.fetchAllPages = fetchAllPages
}
}