package protobuf.message

import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
import kotlinx.serialization.protobuf.ProtoNumber
import protobuf.message.element.*

@OptIn(ExperimentalSerializationApi::class)
@Serializable
data class Elem(
    @ProtoNumber(1) val text: TextMsg? = null,
    @ProtoNumber(2) val face: FaceMsg? = null,
//    @ProtoNumber(3) val onlineImage: OnlineImage? = null,
    @ProtoNumber(4) val notOnlineImage: NotOnlineImage? = null,
//    @ProtoNumber(5) var transElemInfo: TransElem? = null,
    @ProtoNumber(6) val marketFace: MarketFace? = null,
//    @ProtoNumber(7) var elemFlags: ElemFlags? = null,
    @ProtoNumber(8) val customFace: CustomFace? = null,
    @ProtoNumber(9) var elemFlags2: ElemFlags2? = null,
//    @ProtoNumber(10) var funFace: FunFace? = null,
//    @ProtoNumber(11) var secretFile: SecretFileMsg? = null,
//    @ProtoNumber(12) var richMsg: RichMsg? = null,
//    @ProtoNumber(13) var groupFile: GroupFile? = null,
//    @ProtoNumber(14) var pubGroup: PubGroup? = null,
//    @ProtoNumber(15) var marketTrans: MarketTrans? = null,
//    @ProtoNumber(16) var extraInfo: ExtraInfo? = null,
//    @ProtoNumber(17) var shakeWindow: ShakeWindow? = null,
//    @ProtoNumber(18) var pubAccount: PubAccount? = null,
//    @ProtoNumber(19) var videoFile: VideoFile? = null,
//    @ProtoNumber(20) var tipsInfo: TipsInfo? = null,
//    @ProtoNumber(21) var anonGroupMsg: AnonymousGroupMsg? = null,
//    @ProtoNumber(22) var qqLiveOld: QQLiveOld? = null,
//    @ProtoNumber(23) var lifeOnline: LifeOnlineAccount? = null,
//    @ProtoNumber(24) var qqwalletMsg: QQWalletMsg? = null,
//    @ProtoNumber(25) var crmElem: CrmElem? = null,
//    @ProtoNumber(26) var conferenceTipsInfo: ConferenceTipsInfo? = null,
//    @ProtoNumber(27) var redbagInfo: RedBagInfo? = null,
//    @ProtoNumber(28) var lowVersionTips: LowVersionTips? = null,
//    @ProtoNumber(29) var bankcodeCtrlInfo: ByteArray? = null,
//    @ProtoNumber(30) var nearByMsg: NearByMessageType? = null,
//    @ProtoNumber(31) var customElem: CustomElem? = null,
//    @ProtoNumber(32) var locationInfo: LocationInfo? = null,
//    @ProtoNumber(33) var pubAccInfo: PubAccInfo? = null,
//    @ProtoNumber(34) var smallEmoji: SmallEmoji? = null,
//    @ProtoNumber(35) var fsjMsgElem: FSJMessageElem? = null,
//    @ProtoNumber(36) var arkApp: ArkAppElem? = null,
    @ProtoNumber(37) val generalFlags: GeneralFlags? = null,
//    @ProtoNumber(38) var hcFlashPic: CustomFace? = null,
//    @ProtoNumber(39) var deliverGiftMsg: DeliverGiftMsg? = null,
//    @ProtoNumber(40) var bitapp_msg: BitAppMsg? = null,
//    @ProtoNumber(41) var openQqData: OpenQQData? = null,
//    @ProtoNumber(42) var apolloMsg: ApolloActMsg? = null,
//    @ProtoNumber(43) var groupPubAccInfo: GroupPubAccountInfo? = null,
//    @ProtoNumber(44) var blessMsg: BlessingMessage? = null,
    @ProtoNumber(45) var srcMsg: SourceMsg? = null,
//    @ProtoNumber(46) var lolaMsg: LolaMsg? = null,
//    @ProtoNumber(47) var groupBusinessMsg: GroupBusinessMsg? = null,
//    @ProtoNumber(48) var msgWorkflowNotify: WorkflowNotifyMsg? = null,
//    @ProtoNumber(49) var patElem: PatsElem? = null,
//    @ProtoNumber(50) var groupPostElem: GroupPostElem? = null,
    @ProtoNumber(51) val lightApp: LightAppElem? = null,
//    @ProtoNumber(52) var eimInfo: EIMInfo? = null,
    @ProtoNumber(53) val commonElem: CommonElem? = null,
)