1 package host.exp.exponent.notifications
2 
3 import com.raizlabs.android.dbflow.annotation.Column
4 import com.raizlabs.android.dbflow.annotation.PrimaryKey
5 import com.raizlabs.android.dbflow.annotation.Table
6 import com.raizlabs.android.dbflow.structure.BaseModel
7 
8 @Table(database = ActionDatabase::class)
9 class ActionObject : BaseModel {
10   @Column var categoryId: String? = null
11   @PrimaryKey @Column var actionId: String? = null
12   @Column var buttonTitle: String? = null
13   @Column var isDestructive: Boolean? = null
14   @Column var isAuthenticationRequired: Boolean? = null
15   @Column var submitButtonTitle: String? = null
16   @Column var placeholder: String? = null
17   @Column var isShouldShowTextInput: Boolean = false
18   @Column var position: Int
19 
20   constructor() {
21     position = 0
22   }
23 
24   constructor(map: Map<String?, Any?>, position: Int) {
25     categoryId = map["categoryId"] as String?
26     actionId = map["actionId"] as String?
27     buttonTitle = map["buttonTitle"] as String?
28     isDestructive = map["isDestructive"] as Boolean?
29     isAuthenticationRequired = map["isAuthenticationRequired"] as Boolean?
30     isShouldShowTextInput = map["textInput"] != null
31     if (isShouldShowTextInput && map["textInput"] is Map<*, *>) {
32       val subMap = map["textInput"] as Map<String, Any>?
33       placeholder = subMap!!["placeholder"] as String?
34       submitButtonTitle = subMap["submitButtonTitle"] as String?
35     }
36     this.position = position
37   }
38 }
39