sodalive-ios/SodaLive/Sources/Live/Room/LiveRoomMember.swift

42 lines
959 B
Swift

//
// 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
}