package de.ypchat.android.data.model

import com.google.gson.annotations.SerializedName

data class UserDto(
    val sessionId: String? = null,
    val userName: String = "",
    val gender: String = "",
    val age: Int = 0,
    val country: String = "",
    val isoCountryCode: String = ""
)

data class ChatMessageDto(
    val from: String = "",
    val to: String? = null,
    val message: String = "",
    val messageId: String? = null,
    val timestamp: String = "",
    val read: Boolean = false,
    val isImage: Boolean = false,
    val imageType: String? = null,
    val imageUrl: String? = null,
    val imageCode: String? = null
)

data class HistoryItemDto(
    val userName: String = "",
    val lastMessage: ChatMessageDto? = null
)

data class InboxItemDto(
    val userName: String = "",
    val unreadCount: Int = 0
)

data class CountryOption(
    val englishName: String,
    val displayName: String,
    val isoCode: String
)

data class SessionResponse(
    val loggedIn: Boolean = false,
    val sessionId: String? = null,
    val user: UserDto? = null
)

data class LogoutResponse(
    val success: Boolean = false
)

data class ImageUploadResponse(
    val success: Boolean = false,
    val code: String? = null,
    val url: String? = null,
    val error: String? = null
)

data class FeedbackItemDto(
    val id: String = "",
    val name: String? = null,
    val age: Int? = null,
    val country: String? = null,
    val gender: String? = null,
    val comment: String = "",
    val createdAt: String = ""
)

data class FeedbackResponse(
    val items: List<FeedbackItemDto> = emptyList(),
    val admin: Boolean = false
)

data class FeedbackAdminStatusResponse(
    val authenticated: Boolean = false,
    val username: String? = null
)

data class FeedbackRequest(
    val name: String = "",
    val age: Int? = null,
    val country: String = "",
    val gender: String = "",
    val comment: String = ""
)

data class FeedbackAdminLoginRequest(
    val username: String = "",
    val password: String = ""
)

data class PartnerLinkDto(
    @SerializedName("Page Name")
    val pageName: String = "",
    val url: String = ""
)

class CountriesResponse : LinkedHashMap<String, String>()
