package com.dmc.callcrm.network import com.google.gson.annotations.SerializedName // ---- register ---- data class RegisterRequest( @SerializedName("connect_code") val connectCode: String, val name: String, val mobile: String, val company: String, @SerializedName("employee_code") val employeeCode: String?, @SerializedName("model_name") val modelName: String?, @SerializedName("app_version") val appVersion: String?, @SerializedName("device_id") val deviceId: String, @SerializedName("sim_slot") val simSlot: Int?, @SerializedName("fcm_token") val fcmToken: String?, @SerializedName("app_secret") val appSecret: String ) data class RegisterResponse( val ok: Boolean, @SerializedName("employee_id") val employeeId: Long?, @SerializedName("api_token") val apiToken: String?, val error: String? ) // ---- sync ---- data class CallDto( val number: String, val name: String?, val type: Int, // Android CallLog.Calls TYPE constant val date: Long, // epoch millis val duration: Int, // seconds @SerializedName("sim_slot") val simSlot: Int?, val note: String?, @SerializedName("device_call_id") val deviceCallId: String? ) data class SyncRequest(val calls: List) data class SyncResponse( val ok: Boolean, val inserted: Int?, val duplicates: Int?, val error: String? ) // ---- Quick Call extension pairing ---- data class LinkStartResponse( val ok: Boolean, @SerializedName("pairing_token") val pairingToken: String?, @SerializedName("expires_in_sec") val expiresInSec: Int?, val error: String? ) data class LinkStatusResponse( val ok: Boolean, val status: String?, // pending | linked | expired | not_found @SerializedName("browser_label") val browserLabel: String?, val error: String? ) data class CallRequestItem(val id: Long, val number: String, @SerializedName("created_at") val createdAt: String?) data class CallRequestsPollResponse( val ok: Boolean, val requests: List?, val error: String? ) // ---- recording upload ---- data class UploadResponse( val ok: Boolean, @SerializedName("recording_id") val recordingId: Long?, @SerializedName("matched_call_id") val matchedCallId: Long?, val duplicate: Boolean?, val error: String? ) // ---- note templates (Manage -> Call Note Templates on the dashboard) ---- data class NoteTemplate(val id: Long, val title: String, val body: String?) data class NoteTemplatesResponse( val ok: Boolean, val templates: List?, val error: String? ) // ---- message templates (Manage -> Message Templates on the dashboard) ---- data class MessageTemplate(val id: Long, val title: String, val body: String?, val tags: String?) data class MessageTemplatesResponse( val ok: Boolean, val templates: List?, val error: String? ) // ---- call note ---- data class CallNoteRequest( val number: String, val name: String?, val type: Int, val date: Long, // epoch millis val duration: Int, // seconds val note: String, @SerializedName("device_call_id") val deviceCallId: String? ) data class CallNoteResponse( val ok: Boolean, @SerializedName("call_id") val callId: Long?, val note: String?, val error: String? ) // ---- excluded numbers (Manage -> Exclude Phone Numbers) ---- data class ExcludedNumbersResponse( val ok: Boolean, val numbers: List?, val error: String? ) // ---- find recording ---- data class FindRecordingResponse( val ok: Boolean, val found: Boolean?, @SerializedName("recording_id") val recordingId: Long?, @SerializedName("duration_sec") val durationSec: Int?, val mime: String?, val error: String? ) // ---- WhatsApp call logging (detected via NotificationListenerService) ---- data class WhatsappCallRequest( @SerializedName("contact_name") val contactName: String, @SerializedName("call_type") val callType: String, // incoming | outgoing | unknown @SerializedName("started_at") val startedAt: Long, @SerializedName("ended_at") val endedAt: Long?, val duration: Int ) data class WhatsappCallResponse(val ok: Boolean, val id: Long?, val error: String?) data class WhatsappRecordingUploadResponse( val ok: Boolean, @SerializedName("whatsapp_call_id") val whatsappCallId: Long?, val error: String? ) data class WhatsappCallListItem( val id: Long, @SerializedName("contact_name") val contactName: String, @SerializedName("call_type") val callType: String, @SerializedName("started_at") val startedAt: String, @SerializedName("ended_at") val endedAt: String?, @SerializedName("duration_sec") val durationSec: Int ) data class WhatsappCallsListResponse(val ok: Boolean, val calls: List?)