package com.fabledsword.minstrel.models.wire

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

/**
 * Wire shape for `GET /api/me` and the return value of
 * `PUT /api/me/profile`. Mirrors
 * `flutter_client/lib/models/my_profile.dart`:
 *   - `display_name` and `email` are nullable; server returns null
 *     when the user hasn't set them yet (registration only requires
 *     a username).
 */
@Serializable
data class MyProfileWire(
    val id: String = "",
    val username: String = "",
    @SerialName("display_name") val displayName: String? = null,
    val email: String? = null,
    @SerialName("is_admin") val isAdmin: Boolean = false,
    @SerialName("debug_mode_enabled") val debugModeEnabled: Boolean = false,
)
