//
//  LiveRoomChat.swift
//  SodaLive
//
//  Created by klaus on 2023/08/14.
//

import Foundation

enum LiveRoomChatType: String {
    case CHAT, DONATION, JOIN, ROULETTE_DONATION, HEART
}

protocol LiveRoomChat {
    var type: LiveRoomChatType { get set }
}

struct LiveRoomNormalChat: LiveRoomChat {
    let userId: Int
    let profileUrl: String
    let nickname: String
    let rank: Int
    let chat: String
    
    var type: LiveRoomChatType = .CHAT
}

struct LiveRoomDonationChat: LiveRoomChat {
    let profileUrl: String
    let nickname: String
    let chat: String
    let can: Int
    let donationMessage: String
    
    var type: LiveRoomChatType = .DONATION
}

struct LiveRoomRouletteDonationChat: LiveRoomChat {
    let profileUrl: String
    let nickname: String
    let rouletteResult: String
    
    var type: LiveRoomChatType = .ROULETTE_DONATION
}

struct LiveRoomJoinChat: LiveRoomChat {
    let nickname: String
    
    var type: LiveRoomChatType = .JOIN
}

struct LiveRoomHeartDonationChat: LiveRoomChat {
    let nickname: String
    
    var type: LiveRoomChatType = .HEART
}
