|
1 | 1 | import Foundation
|
| 2 | +import Helpers |
2 | 3 |
|
3 | 4 | public struct SearchOptions: Encodable, Sendable {
|
4 | 5 | var prefix: String
|
@@ -118,3 +119,91 @@ public struct DestinationOptions: Sendable {
|
118 | 119 | self.destinationBucket = destinationBucket
|
119 | 120 | }
|
120 | 121 | }
|
| 122 | + |
| 123 | +public struct FileObject: Identifiable, Hashable, Codable, Sendable { |
| 124 | + public var name: String |
| 125 | + public var bucketId: String? |
| 126 | + public var owner: String? |
| 127 | + public var id: UUID? |
| 128 | + public var updatedAt: Date? |
| 129 | + public var createdAt: Date? |
| 130 | + public var lastAccessedAt: Date? |
| 131 | + public var metadata: [String: AnyJSON]? |
| 132 | + public var buckets: Bucket? |
| 133 | + |
| 134 | + public init( |
| 135 | + name: String, |
| 136 | + bucketId: String? = nil, |
| 137 | + owner: String? = nil, |
| 138 | + id: UUID? = nil, |
| 139 | + updatedAt: Date? = nil, |
| 140 | + createdAt: Date? = nil, |
| 141 | + lastAccessedAt: Date? = nil, |
| 142 | + metadata: [String: AnyJSON]? = nil, |
| 143 | + buckets: Bucket? = nil |
| 144 | + ) { |
| 145 | + self.name = name |
| 146 | + self.bucketId = bucketId |
| 147 | + self.owner = owner |
| 148 | + self.id = id |
| 149 | + self.updatedAt = updatedAt |
| 150 | + self.createdAt = createdAt |
| 151 | + self.lastAccessedAt = lastAccessedAt |
| 152 | + self.metadata = metadata |
| 153 | + self.buckets = buckets |
| 154 | + } |
| 155 | + |
| 156 | + enum CodingKeys: String, CodingKey { |
| 157 | + case name |
| 158 | + case bucketId = "bucket_id" |
| 159 | + case owner |
| 160 | + case id |
| 161 | + case updatedAt = "updated_at" |
| 162 | + case createdAt = "created_at" |
| 163 | + case lastAccessedAt = "last_accessed_at" |
| 164 | + case metadata |
| 165 | + case buckets |
| 166 | + } |
| 167 | +} |
| 168 | + |
| 169 | +public struct Bucket: Identifiable, Hashable, Codable, Sendable { |
| 170 | + public var id: String |
| 171 | + public var name: String |
| 172 | + public var owner: String |
| 173 | + public var isPublic: Bool |
| 174 | + public var createdAt: Date |
| 175 | + public var updatedAt: Date |
| 176 | + public var allowedMimeTypes: [String]? |
| 177 | + public var fileSizeLimit: Int64? |
| 178 | + |
| 179 | + public init( |
| 180 | + id: String, |
| 181 | + name: String, |
| 182 | + owner: String, |
| 183 | + isPublic: Bool, |
| 184 | + createdAt: Date, |
| 185 | + updatedAt: Date, |
| 186 | + allowedMimeTypes: [String]? = nil, |
| 187 | + fileSizeLimit: Int64? = nil |
| 188 | + ) { |
| 189 | + self.id = id |
| 190 | + self.name = name |
| 191 | + self.owner = owner |
| 192 | + self.isPublic = isPublic |
| 193 | + self.createdAt = createdAt |
| 194 | + self.updatedAt = updatedAt |
| 195 | + self.allowedMimeTypes = allowedMimeTypes |
| 196 | + self.fileSizeLimit = fileSizeLimit |
| 197 | + } |
| 198 | + |
| 199 | + enum CodingKeys: String, CodingKey { |
| 200 | + case id |
| 201 | + case name |
| 202 | + case owner |
| 203 | + case isPublic = "public" |
| 204 | + case createdAt = "created_at" |
| 205 | + case updatedAt = "updated_at" |
| 206 | + case allowedMimeTypes = "allowed_mime_types" |
| 207 | + case fileSizeLimit = "file_size_limit" |
| 208 | + } |
| 209 | +} |
0 commit comments