NetPOS data models are organized in the com.woleapp.netpos.model package. These classes represent domain objects, API request/response structures, and database entities.
@Entity(tableName = "transactionresponse")data class TransactionResponse( @PrimaryKey(autoGenerate = true) val id: Long, val terminalId: String, val amount: Long, val transactionType: TransactionType, val responseCode: String, val responseMessage: String, // Card information (masked) val maskedPan: String?, val cardExpiry: String?, val cardHolder: String?, val cardLabel: String?, // Transaction identifiers val stan: String?, val rrn: String?, val authCode: String?, // Timestamps val transactionTimeInMillis: Long, val localDate_13: String, // Additional fields val accountType: IsoAccountType)
Key Fields:
responseCode: ISO 8583 response code (“00” = approved)
stan: System Trace Audit Number (unique per terminal)
rrn: Retrieval Reference Number (unique transaction reference)
data class CheckOutModel( val amount: String, val merchantId: String, val terminalId: String, val currency: String = "NGN", val customerEmail: String?, val customerPhone: String?)
data class AuthenticationEventData( val business_name: String, val storm_id: String, @SerializedName("serial_number") val deviceSerial: String)data class PrinterEventData( val transactionRef: String, val printerCode: String)data class BatteryEvents( val battery_percentage: Int, val status: String)data class CardReaderMqttEvent( val cardExpiry: String? = null, val cardHolder: String? = null, val maskedPan: String? = null, val readerError: String? = null)data class SMSEvent( val to: String, val status: String, var serverResponse: String)
data class NipNotification( val referenceNo: String, val sessionCode: String?, val amount: Double, val senderName: String?, val senderAccount: String?, val narration: String?, val timestamp: String?)
data class PayWithCardNotificationModelResponse( val transactionRef: String, val amount: String, val responseCode: String, val responseMessage: String, val timestamp: String)
data class GetEndOfDayModelFromNewServer( val transactions: List<GetEodFromNewServiceModel>, val totalPages: Int, val currentPage: Int, val totalRecords: Int)data class GetEodFromNewServiceModel( val terminalId: String, val from: String, val to: String, val page: Int, val pageSize: Int)
data class MerchantDetailsResponse( val merchantId: String, val merchantName: String, val merchantAddress: String?, val merchantPhone: String?, val merchantEmail: String?, val accountNumber: String?, val bankName: String?)