// // LNRoomResponse.swift // Gami // // Created by OneeChan on 2026/3/11. // import Foundation import AutoCodable enum LNRoomApplySeatType: Int, Decodable { case all = 0 case guest = 1 case playmate = 2 } struct LNRoomType: OptionSet, Decodable { let rawValue: Int static let unknown = LNRoomType([]) static let playmate = LNRoomType(rawValue: 1<<0) static var availableType: [LNRoomType] { [.playmate] } } @AutoCodable class LNRoomAbilityVO: Decodable { var homeowner: Bool = false var roomTitle: String = "" var roomCover: String = "" var forbidAudio: Bool = false var roomTypes: [LNRoomType] = [] } @AutoCodable class LNRoomCreateResponse: Decodable { var roomId: String = "" } @AutoCodable class LNRoomUserVO: Decodable { var id: String = "" var userNo: String = "" var avatar: String = "" var nickname: String = "" var birthday: Int = 0 var age: Int = 0 var gender: LNUserGender = .unknow var intro: String = "" var playmate: Bool = false var interests: [LNUserInterestVO] = [] var photos: [String] = [] init() { } } @AutoCodable class LNRoomMicApplyPageVO: Decodable { var applyId: String = "" var applyTime: Int64 = 0 var user: LNRoomUserVO = LNRoomUserVO() var hasAccept = false } @AutoCodable class LNRoomMicApplyListResponse: Decodable { var list: [LNRoomMicApplyPageVO] = [] var total: Int? = nil var next: String = "" } @AutoCodable class LNRoomGameCategoryResponse: Decodable { var list: [LNGameCategoryItemVO] = [] } @AutoCodable class LNRoomUserListItemVO: Decodable { var user: LNRoomUserVO = LNRoomUserVO() var hasInvited = false } @AutoCodable class LNRoomUserListResponse: Decodable { var list: [LNRoomUserListItemVO] = [] var total: Int? = nil var next: String = "" } @AutoCodable class LNRoomEntranceResponse: Decodable { var result: Bool = false } @AutoCodable class LNRandomRoomResponse: Decodable { var room: LNRoomItemVO? = nil } @AutoCodable class LNUserCurRoomResponse: Decodable { var room: LNRoomItemVO? = nil }