Files
sodalive-ios/SodaLive/Sources/Chat/Character/Detail/CharacterDetailResponse.swift

67 lines
1.5 KiB
Swift

//
// CharacterDetailResponse.swift
// SodaLive
//
// Created by klaus on 9/1/25.
//
struct CharacterDetailResponse: Decodable {
let characterId: Int
let name: String
let description: String
let mbti: String?
let gender: String?
let age: Int?
let imageUrl: String
let personalities: CharacterPersonalityResponse?
let backgrounds: CharacterBackgroundResponse?
let tags: String
let originalTitle: String?
let originalLink: String?
let characterType: CharacterType
let others: [OtherCharacter]
let latestComment: CharacterCommentResponse?
let totalComments: Int
let translated: TranslatedAiCharacterDetail?
}
enum CharacterType: String, Decodable {
case Clone, Character
}
struct OtherCharacter: Decodable {
let characterId: Int
let name: String
let imageUrl: String
let tags: String
}
struct CharacterPersonalityResponse: Decodable {
let trait: String
let description: String
}
struct CharacterBackgroundResponse: Decodable {
let topic: String
let description: String
}
struct TranslatedAiCharacterDetail: Decodable {
let name: String?
let description: String?
let gender: String?
let personality: TranslatedAiCharacterPersonality?
let background: TranslatedAiCharacterBackground?
let tags: String?
}
struct TranslatedAiCharacterPersonality: Decodable {
let trait: String?
let description: String?
}
struct TranslatedAiCharacterBackground: Decodable {
let topic: String?
let description: String?
}