package id.ac.ubharajaya.sistemakademik

import android.graphics.Bitmap
import android.util.Base64
import org.json.JSONObject
import java.io.ByteArrayOutputStream

/**
 * Data class untuk menyimpan informasi absensi mahasiswa
 */
data class Absensi(
    val npm: String,
    val nama: String,
    val latitude: Double,
    val longitude: Double,
    val waktu: String,
    val foto: Bitmap


) {
    /**
     * Convert objek Absensi ini menjadi JSONObject
     * Siap untuk dikirim ke server
     */
    fun toJson(): JSONObject {
        val json = JSONObject()
        json.put("npm", npm)
        json.put("nama", nama)
        json.put("latitude", latitude)
        json.put("longitude", longitude)
        json.put("timestamp", System.currentTimeMillis())
        json.put("waktu", waktu)
        json.put("foto_base64", bitmapToBase64(foto))
        return json
    }

    companion object {
        /**
         * Helper function untuk convert Bitmap ke Base64
         */
        fun bitmapToBase64(bitmap: Bitmap): String {
            val outputStream = ByteArrayOutputStream()
            bitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream)
            return Base64.encodeToString(outputStream.toByteArray(), Base64.NO_WRAP)
        }
    }
}