package com.adealink.weparty.module.playmate.data

import android.os.Parcelable
import com.adealink.weparty.module.widget.form.data.StepField
import com.google.gson.annotations.GsonNullable
import com.google.gson.annotations.SerializedName
import kotlinx.parcelize.Parcelize

@Parcelize
data class PlaymateDetailData(
    @SerializedName("id") val playmateId: String, //技能/商品ID

    @SerializedName("userNo") val uid: String, //用户ID
    @SerializedName("avatar") val avatar: String, //头像
    @SerializedName("nickname") val nickname: String, //昵称
    @SerializedName("age") val age: Int = 0, //年龄
    @SerializedName("gender") val gender: Int = 0, //性别
    @SerializedName("star") val star: Float = 0.0f, //评分
    @SerializedName("area") val area: String = "", //所在地区
    @SerializedName("summary") val summary: String = "", //摘要
    @SerializedName("images") val images: List<String> = emptyList(), //图片列表
    @SerializedName("voiceBar") val voice: String = "", //语音条
    @SerializedName("price") val price: Float, //价格
    @SerializedName("unit") val unit: String, //价格单位
    @SerializedName("labels") val labels: List<String> = emptyList(), //标签
    @SerializedName("categoryName") val categoryName: String, //品类名称
    @SerializedName("categoryIcon") val categoryIcon: String, //品类图标
    @SerializedName("languageNames") val languageNames: List<String> = emptyList(), //语言列表

    @SerializedName("categoryCode") val categoryCode: String = "",
    @SerializedName("orderCount") val orderCount: Int = 0, //订单量
    @SerializedName("online") val online: Boolean = false, //是否在线
    @SerializedName("follow") val follow: Boolean = false, //是否关注
    @SerializedName("distance") val distance: Float, //距离(单位:km)
    @GsonNullable
    @SerializedName("extendFields") val extendFields: List<StepField<*>>? = null //扩展字段
) : Parcelable

@Parcelize
data class PlaymateBusinessData(
    @SerializedName("weekBeanIncome") val weekIncome: Float, //本周金豆收入
    @SerializedName("exposureCountDay") val todayExposure: Long, //今日曝光
    @SerializedName("visitorCount") val visitor: Long, //访客数
    @SerializedName("playmateOpen") val businessOpen: Boolean, //陪玩师是否营业
) : Parcelable


data class PlaymateExposureReq(
    @SerializedName("list") val playmateId: List<String>,
)

data class PlaymateVisitorReq(
    @SerializedName("id") val uid: String,
)

data class SkillSettingData(
    @SerializedName("id") val id: String,
    @SerializedName("bizCategoryCode") val categoryCode: String,
    @SerializedName("bizCategoryName") val categoryName: String,
    @SerializedName("categoryIcon") val categoryIcon: String,
    @SerializedName("price") val price: Float,
    @SerializedName("unit") val unit: String,
    @SerializedName("open") var open: Boolean
)