mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
all: refactor model classes and serialization
- Move model classes to a standalone `model` Gradle module - Migrate from Moshi to kotlinx.serialization for multiplatform support
This commit is contained in:
parent
76c46b4229
commit
096d2882e2
24 changed files with 155 additions and 137 deletions
|
@ -0,0 +1,20 @@
|
|||
package dev.msfjarvis.claw.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class Comment(
|
||||
@SerialName("short_id") val shortId: String,
|
||||
@SerialName("short_id_url") val shortIdUrl: String,
|
||||
@SerialName("created_at") val createdAt: String,
|
||||
@SerialName("updated_at") val updatedAt: String,
|
||||
@SerialName("is_deleted") val isDeleted: Boolean,
|
||||
@SerialName("is_moderated") val isModerated: Boolean,
|
||||
val score: Long,
|
||||
val flags: Long,
|
||||
val comment: String,
|
||||
val url: String,
|
||||
@SerialName("indent_level") val indentLevel: Long,
|
||||
@SerialName("commenting_user") val user: User,
|
||||
)
|
|
@ -0,0 +1,10 @@
|
|||
package dev.msfjarvis.claw.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class KeybaseSignature(
|
||||
@SerialName("kb_username") val kbUsername: String,
|
||||
@SerialName("sig_hash") val sigHash: String,
|
||||
)
|
|
@ -0,0 +1,20 @@
|
|||
package dev.msfjarvis.claw.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class LobstersPost(
|
||||
@SerialName("short_id") val shortId: String,
|
||||
@SerialName("short_id_url") val shortIdUrl: String,
|
||||
@SerialName("created_at") val createdAt: String,
|
||||
val title: String,
|
||||
val url: String,
|
||||
val score: Long,
|
||||
val flags: Long,
|
||||
@SerialName("comment_count") val commentCount: Long,
|
||||
val description: String,
|
||||
@SerialName("comments_url") val commentsUrl: String,
|
||||
@SerialName("submitter_user") val submitter: User,
|
||||
val tags: List<String>,
|
||||
)
|
|
@ -0,0 +1,21 @@
|
|||
package dev.msfjarvis.claw.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class LobstersPostDetails(
|
||||
@SerialName("short_id") val shortId: String,
|
||||
@SerialName("short_id_url") val shortIdUrl: String,
|
||||
@SerialName("created_at") val createdAt: String,
|
||||
val title: String,
|
||||
val url: String,
|
||||
val score: Long,
|
||||
val flags: Long,
|
||||
@SerialName("comment_count") val commentCount: Long,
|
||||
val description: String,
|
||||
@SerialName("comments_url") val commentsUrl: String,
|
||||
@SerialName("submitter_user") val submitter: User,
|
||||
val tags: List<String>,
|
||||
val comments: List<Comment>,
|
||||
)
|
19
model/src/commonMain/kotlin/dev/msfjarvis/claw/model/User.kt
Normal file
19
model/src/commonMain/kotlin/dev/msfjarvis/claw/model/User.kt
Normal file
|
@ -0,0 +1,19 @@
|
|||
package dev.msfjarvis.claw.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class User(
|
||||
val username: String,
|
||||
@SerialName("created_at") val createdAt: String,
|
||||
@SerialName("is_admin") val isAdmin: Boolean,
|
||||
val about: String,
|
||||
@SerialName("is_moderator") val isModerator: Boolean,
|
||||
val karma: Long = 0,
|
||||
@SerialName("avatar_url") val avatarUrl: String,
|
||||
@SerialName("invited_by_user") val invitedByUser: String,
|
||||
@SerialName("github_username") val githubUsername: String? = null,
|
||||
@SerialName("twitter_username") val twitterUsername: String? = null,
|
||||
@SerialName("keybase_signatures") val keybaseSignatures: List<KeybaseSignature> = emptyList(),
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue