Migrasi Data Models
This commit is contained in:
parent
c44f9db754
commit
9fb59df8b9
12
app/src/main/java/com/example/notesai/data/model/Category.kt
Normal file
12
app/src/main/java/com/example/notesai/data/model/Category.kt
Normal file
@ -0,0 +1,12 @@
|
||||
// File: data/model/Category.kt
|
||||
package com.example.notesai.data.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Category(
|
||||
val id: String = UUID.randomUUID().toString(),
|
||||
val name: String,
|
||||
val gradientStart: Long,
|
||||
val gradientEnd: Long,
|
||||
val timestamp: Long = System.currentTimeMillis()
|
||||
)
|
||||
@ -0,0 +1,11 @@
|
||||
// File: data/model/ChatMessage.kt
|
||||
package com.example.notesai.data.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class ChatMessage(
|
||||
val id: String = UUID.randomUUID().toString(),
|
||||
val message: String,
|
||||
val isUser: Boolean,
|
||||
val timestamp: Long = System.currentTimeMillis()
|
||||
)
|
||||
15
app/src/main/java/com/example/notesai/data/model/Note.kt
Normal file
15
app/src/main/java/com/example/notesai/data/model/Note.kt
Normal file
@ -0,0 +1,15 @@
|
||||
// File: data/model/Note.kt
|
||||
package com.example.notesai.data.model
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
data class Note(
|
||||
val id: String = UUID.randomUUID().toString(),
|
||||
val categoryId: String,
|
||||
val title: String,
|
||||
val content: String,
|
||||
val timestamp: Long = System.currentTimeMillis(),
|
||||
val isArchived: Boolean = false,
|
||||
val isDeleted: Boolean = false,
|
||||
val isPinned: Boolean = false
|
||||
)
|
||||
@ -0,0 +1,67 @@
|
||||
// File: data/model/SerializableModels.kt
|
||||
package com.example.notesai.data.model
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
@Serializable
|
||||
data class SerializableCategory(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val gradientStart: Long,
|
||||
val gradientEnd: Long,
|
||||
val timestamp: Long
|
||||
)
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
@Serializable
|
||||
data class SerializableNote(
|
||||
val id: String,
|
||||
val categoryId: String,
|
||||
val title: String,
|
||||
val content: String,
|
||||
val timestamp: Long,
|
||||
val isArchived: Boolean,
|
||||
val isDeleted: Boolean,
|
||||
val isPinned: Boolean
|
||||
)
|
||||
|
||||
// Extension functions untuk konversi
|
||||
fun Category.toSerializable() = SerializableCategory(
|
||||
id = id,
|
||||
name = name,
|
||||
gradientStart = gradientStart,
|
||||
gradientEnd = gradientEnd,
|
||||
timestamp = timestamp
|
||||
)
|
||||
|
||||
fun SerializableCategory.toCategory() = Category(
|
||||
id = id,
|
||||
name = name,
|
||||
gradientStart = gradientStart,
|
||||
gradientEnd = gradientEnd,
|
||||
timestamp = timestamp
|
||||
)
|
||||
|
||||
fun Note.toSerializable() = SerializableNote(
|
||||
id = id,
|
||||
categoryId = categoryId,
|
||||
title = title,
|
||||
content = content,
|
||||
timestamp = timestamp,
|
||||
isArchived = isArchived,
|
||||
isDeleted = isDeleted,
|
||||
isPinned = isPinned
|
||||
)
|
||||
|
||||
fun SerializableNote.toNote() = Note(
|
||||
id = id,
|
||||
categoryId = categoryId,
|
||||
title = title,
|
||||
content = content,
|
||||
timestamp = timestamp,
|
||||
isArchived = isArchived,
|
||||
isDeleted = isDeleted,
|
||||
isPinned = isPinned
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user