// // LiveRoomMember.swift // SodaLive // // Created by klaus on 2023/08/14. // struct LiveRoomMember: Decodable, Hashable { let id: Int let nickname: String let profileImage: String let role: LiveRoomMemberRole } enum LiveRoomMemberRole: String, Decodable { case LISTENER, SPEAKER, MANAGER } enum LiveRoomProfileItemType: String { case MASTER, SPEAKER_TITLE, LISTENER_TITLE, USER } protocol LiveRoomProfileItem: Hashable { var type: LiveRoomProfileItemType { get set } } struct LiveRoomProfileItemSpeakerTitle: LiveRoomProfileItem { var type: LiveRoomProfileItemType = .SPEAKER_TITLE } struct LiveRoomProfileItemListenerTitle: LiveRoomProfileItem { var type: LiveRoomProfileItemType = .LISTENER_TITLE } struct LiveRoomProfileItemMaster: LiveRoomProfileItem { var type: LiveRoomProfileItemType = .MASTER } struct LiveRoomProfileItemUser: LiveRoomProfileItem { var type: LiveRoomProfileItemType = .USER }