import Foundation struct CreatorChannelHomeResponse: Decodable { var creator: CreatorChannelCreatorResponse let currentLive: CreatorChannelLiveResponse? let latestAudioContent: CreatorChannelAudioContentResponse? let channelDonations: [CreatorChannelDonationResponse] let notices: [CreatorChannelCommunityPostResponse] let schedules: [CreatorChannelScheduleResponse] let audioContents: [CreatorChannelAudioContentResponse] let series: [CreatorChannelHomeSeriesResponse] let communities: [CreatorChannelCommunityPostResponse] let fanTalk: CreatorChannelFanTalkSummaryResponse let introduce: String let activity: CreatorChannelActivityResponse let sns: CreatorChannelSnsResponse } struct CreatorChannelCreatorResponse: Decodable, Identifiable { let creatorId: Int let characterId: Int? let nickname: String let profileImageUrl: String let followerCount: Int let isAiChatAvailable: Bool let isDmAvailable: Bool var isFollow: Bool var isNotify: Bool var id: Int { creatorId } } struct CreatorChannelLiveResponse: Decodable, Identifiable { let liveId: Int let title: String let coverImageUrl: String? let beginDateTimeUtc: String let price: Int let isAdult: Bool var id: Int { liveId } } struct CreatorChannelAudioContentResponse: Decodable, Identifiable { let audioContentId: Int let title: String let duration: String? let imageUrl: String? let price: Int let isAdult: Bool let isPointAvailable: Bool let isFirstContent: Bool let seriesName: String? let isOriginalSeries: Bool? let isOwned: Bool let isRented: Bool var id: Int { audioContentId } } struct CreatorChannelDonationResponse: Decodable { let nickname: String let profileImageUrl: String let can: Int let message: String let createdAtUtc: String } struct CreatorChannelScheduleResponse: Decodable { let scheduledAtUtc: String let title: String let type: CreatorActivityType let targetId: Int } struct CreatorChannelHomeSeriesResponse: Decodable, Identifiable { let seriesId: Int let title: String let coverImageUrl: String let numberOfContent: Int let isNew: Bool let isOriginal: Bool var id: Int { seriesId } } struct CreatorChannelCommunityPostResponse: Decodable, Identifiable { let postId: Int let creatorId: Int let creatorNickname: String let creatorProfileUrl: String let imageUrl: String? let audioUrl: String? let content: String let price: Int let dateUtc: String let existOrdered: Bool let likeCount: Int let commentCount: Int let isLiked: Bool var id: Int { postId } } struct CreatorChannelFanTalkSummaryResponse: Decodable { let totalCount: Int let latestFanTalk: CreatorChannelFanTalkResponse? } struct CreatorChannelFanTalkResponse: Decodable, Identifiable { let fanTalkId: Int let memberId: Int let nickname: String let profileImageUrl: String let content: String let languageCode: String? let createdAtUtc: String var id: Int { fanTalkId } } struct CreatorChannelActivityResponse: Decodable { let debutDateUtc: String? let dday: String let liveCount: Int let liveDurationHours: Int let liveContributorCount: Int let audioContentCount: Int let seriesCount: Int } struct CreatorChannelSnsResponse: Decodable { let instagramUrl: String let fancimmUrl: String let xurl: String let youtubeUrl: String let kakaoOpenChatUrl: String }