summaryrefslogtreecommitdiff
path: root/JuickNext/Models.swift
diff options
context:
space:
mode:
Diffstat (limited to 'JuickNext/Models.swift')
-rw-r--r--JuickNext/Models.swift47
1 files changed, 47 insertions, 0 deletions
diff --git a/JuickNext/Models.swift b/JuickNext/Models.swift
new file mode 100644
index 0000000..77a12f5
--- /dev/null
+++ b/JuickNext/Models.swift
@@ -0,0 +1,47 @@
+//
+// Models.swift
+// tst
+//
+// Created by Vitaly Takmazov on 10.12.2019.
+// Copyright © 2019 com.juick. All rights reserved.
+//
+
+import Foundation
+
+
+typealias Model = Decodable & Identifiable
+
+typealias Root = Array<Message>
+
+struct Attachment: Decodable {
+ var url: String
+}
+
+struct Entity: Decodable {
+ var type: String
+ var text: String
+ var link: String?
+ var start: Int?
+ var end: Int?
+}
+
+struct User: Model {
+ var id: Int
+ var name: String
+ var avatar: String?
+ private enum CodingKeys : String, CodingKey {
+ case id = "uid", name = "uname", avatar
+ }
+}
+
+struct Message : Model {
+ var id: Int
+ var user: User
+ var text : String?
+ var attachment: Attachment?
+ var entities: [Entity]?
+ var tags: [String]?
+ private enum CodingKeys : String, CodingKey {
+ case id = "mid", user, text = "body", attachment, entities, tags
+ }
+}