42 lines
959 B
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
|
|
}
|