package com.walkguide.dto.response;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Response untuk Agora RTC token generation.
 * Flutter menggunakan semua field ini untuk join Agora channel.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AgoraTokenResponse {

    /** Agora RTC Access Token (kosong jika mode demo) */
    private String token;

    /**
     * Channel name deterministik: "call_{min(id1,id2)}_{max(id1,id2)}"
     * Kedua pihak harus join channel yang SAMA.
     */
    private String channelName;

    /** UID untuk caller di Agora channel (int dari userId % MAX_INT) */
    private int uid;

    /** Agora App ID — Flutter butuh ini untuk inisialisasi RTC engine */
    private String appId;

    /** Unix timestamp kapan token expired (1 jam dari sekarang) */
    private long expiresAt;

    /** Display name caller — untuk UI "Calling {callerName}..." */
    private String callerName;
}
