Files
sodalive-ios/SodaLive/Sources/V2/CreatorChannel/FanTalk/Models/CreatorChannelFanTalkTabResponse.swift

48 lines
1.3 KiB
Swift

import Foundation
struct CreatorChannelFanTalkTabResponse: Decodable {
let fanTalkCount: Int
let fanTalks: [CreatorChannelFanTalkItemResponse]
let page: Int
let size: Int
let hasNext: Bool
}
struct CreatorChannelFanTalkItemResponse: Decodable, Identifiable {
let fanTalkId: Int
let writerId: Int
let writerNickname: String
let writerProfileImageUrl: String
let content: String
let createdAtUtc: String
let creatorReplies: [CreatorChannelFanTalkReplyResponse]
var id: Int { fanTalkId }
var latestCreatorReply: CreatorChannelFanTalkReplyResponse? {
creatorReplies.max { lhs, rhs in
switch (DateParser.parse(lhs.createdAtUtc), DateParser.parse(rhs.createdAtUtc)) {
case let (lhsDate?, rhsDate?):
return lhsDate < rhsDate
case (nil, _?):
return true
case (_?, nil):
return false
case (nil, nil):
return lhs.createdAtUtc < rhs.createdAtUtc
}
}
}
}
struct CreatorChannelFanTalkReplyResponse: Decodable, Identifiable {
let fanTalkId: Int
let writerId: Int
let writerNickname: String
let writerProfileImageUrl: String
let content: String
let createdAtUtc: String
var id: Int { fanTalkId }
}