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