Fix Supabase column serialization mapping (snake_case) for Person and PaymentRecord models to prevent resetting archived status during sync
Android Release / build (push) Canceled after 14s

This commit is contained in:
Oqba committed 2026-09-11 16:45:51 +03:30
1 parent b05c7c7521
commit a3a8448ee5
2 files changed
+21 -17

No files matched your search

@@ -1,11 +1,13 @@
@file:OptIn(kotlinx.serialization.InternalSerializationApi::class)
@file:OptIn(InternalSerializationApi::class)
package com.oqba26.monthlypaymentapp.data.model
import androidx.room.Entity
import androidx.room.PrimaryKey
import kotlinx.serialization.InternalSerializationApi
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import java.util.UUID
@Serializable
@@ -14,22 +16,22 @@ data class PaymentRecord(
@PrimaryKey
@SerialName("id") val id: String = UUID.randomUUID().toString(),
@SerialName("personId") val personId: String,
@SerialName("person_id") val personId: String,
@SerialName("amount") val amount: Double,
@SerialName("shamsiYear") val shamsiYear: Int,
@SerialName("shamsi_year") val shamsiYear: Int,
@SerialName("shamsiMonth") val shamsiMonth: Int,
@SerialName("shamsi_month") val shamsiMonth: Int,
@SerialName("timestamp") val timestamp: Long = System.currentTimeMillis(),
@SerialName("description") val description: String? = "", // ⭐️ تغییر به String? برای پذیرش مقادیر null
@SerialName("description") val description: String? = "",
@SerialName("createdAt") val createdAt: Long? = null,
@SerialName("created_at") val createdAt: Long? = null,
@SerialName("category") val category: String = "salary",
@kotlinx.serialization.Transient
@Transient
val needsSync: Boolean = false
)
@@ -1,11 +1,13 @@
@file:OptIn(kotlinx.serialization.InternalSerializationApi::class)
@file:OptIn(InternalSerializationApi::class)
package com.oqba26.monthlypaymentapp.data.model
import androidx.room.Entity
import androidx.room.PrimaryKey
import kotlinx.serialization.InternalSerializationApi
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
@Serializable
@Entity(tableName = "persons")
@@ -15,24 +17,24 @@ data class Person(
@SerialName("name") val name: String,
@SerialName("isArchived") val isArchived: Boolean = false,
@SerialName("is_archived") val isArchived: Boolean = false,
@SerialName("displayOrder") val displayOrder: Long? = 0L,
@SerialName("display_order") val displayOrder: Long? = 0L,
@SerialName("createdAt") val createdAt: Long? = 0L,
@SerialName("created_at") val createdAt: Long? = 0L,
@SerialName("phoneNumber") val phoneNumber: String? = "",
@SerialName("phone_number") val phoneNumber: String? = "",
@SerialName("category") val category: String = "salary",
@SerialName("isAnonymous") val isAnonymous: Boolean = false,
@SerialName("is_anonymous") val isAnonymous: Boolean = false,
@SerialName("monthlyCommitment") val monthlyCommitment: Double = 0.0,
@SerialName("monthly_commitment") val monthlyCommitment: Double = 0.0,
@SerialName("startMonth") val startMonth: Int = 1,
@SerialName("start_month") val startMonth: Int = 1,
@SerialName("startYear") val startYear: Int = 1403,
@SerialName("start_year") val startYear: Int = 1403,
@kotlinx.serialization.Transient
@Transient
val needsSync: Boolean = false
)