package com.example.elva.data.remote.model.profile

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class UserProfile(
    val id: Int,
    val uuid: String,
    val username: String,
    val email: String,
    val phone: String? = null,
    @SerialName("first_name")
    val firstName: String? = null,
    @SerialName("last_name")
    val lastName: String? = null,
    @SerialName("date_of_birth")
    val dateOfBirth: String? = null,
    val bio: String? = null,
    @SerialName("avatar_url")
    val avatarUrl: String? = null,
    @SerialName("location_sharing_enabled")
    val locationSharingEnabled: Boolean = true,
    @SerialName("emergency_notifications_enabled")
    val emergencyNotificationsEnabled: Boolean = true,
    @SerialName("push_notifications_enabled")
    val pushNotificationsEnabled: Boolean = true,
    @SerialName("email_verified")
    val emailVerified: Boolean = false,
    @SerialName("phone_verified")
    val phoneVerified: Boolean = false,
    @SerialName("is_active")
    val isActive: Boolean = true,
    @SerialName("created_at")
    val createdAt: String,
    @SerialName("updated_at")
    val updatedAt: String? = null
)

@Serializable
data class ProfileUpdateRequest(
    @SerialName("first_name")
    val firstName: String? = null,
    @SerialName("last_name")
    val lastName: String? = null,
    val phone: String? = null,
    @SerialName("date_of_birth")
    val dateOfBirth: String? = null,
    val bio: String? = null,
    @SerialName("location_sharing_enabled")
    val locationSharingEnabled: Boolean? = null,
    @SerialName("emergency_notifications_enabled")
    val emergencyNotificationsEnabled: Boolean? = null,
    @SerialName("push_notifications_enabled")
    val pushNotificationsEnabled: Boolean? = null
)

