package me.eternal.purrfect.core.wrapper.impl import me.eternal.purrfect.common.data.PlayableSnapState import me.eternal.purrfect.core.wrapper.AbstractWrapper import org.mozilla.javascript.annotations.JSGetter import org.mozilla.javascript.annotations.JSSetter class MessageMetadata(obj: Any?) : AbstractWrapper(obj){ @get:JSGetter @set:JSSetter var createdAt by field("mCreatedAt") @get:JSGetter @set:JSSetter var readAt by field("mReadAt") @get:JSGetter @set:JSSetter var playableSnapState by enum("mPlayableSnapState", PlayableSnapState.PLAYABLE) @get:JSGetter @set:JSSetter var savedBy by field("mSavedBy", uuidArrayListMapper) @get:JSGetter @set:JSSetter var openedBy by field("mOpenedBy", uuidArrayListMapper) @get:JSGetter @set:JSSetter var seenBy by field("mSeenBy", uuidArrayListMapper) @get:JSGetter @set:JSSetter var screenRecordedBy by field("mScreenRecordedBy", uuidArrayListMapper) @get:JSGetter @set:JSSetter var screenShottedBy by field("mScreenShottedBy", uuidArrayListMapper) @get:JSGetter @set:JSSetter var reactions by field("mReactions") { (it as ArrayList<*>).map { i -> UserIdToReaction(i) }.toMutableList() } @get:JSGetter @set:JSSetter var isSaveable by field("mIsSaveable") @get:JSGetter @set:JSSetter var isEditable by field("mIsEditable") @get:JSGetter @set:JSSetter var isEdited by field("mIsEdited") @get:JSGetter @set:JSSetter var isErasable by field("mIsErasable") @get:JSGetter @set:JSSetter var isFriendLinkPending by field("mIsFriendLinkPending") @get:JSGetter @set:JSSetter var isReactable by field("mIsReactable") }