diff --git a/app/src/main/java/com/example/notesai/data/model/Category.kt b/app/src/main/java/com/example/notesai/data/model/Category.kt new file mode 100644 index 0000000..47b2f90 --- /dev/null +++ b/app/src/main/java/com/example/notesai/data/model/Category.kt @@ -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() +) \ No newline at end of file diff --git a/app/src/main/java/com/example/notesai/data/model/ChatMessage.kt b/app/src/main/java/com/example/notesai/data/model/ChatMessage.kt new file mode 100644 index 0000000..2c19659 --- /dev/null +++ b/app/src/main/java/com/example/notesai/data/model/ChatMessage.kt @@ -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() +) \ No newline at end of file diff --git a/app/src/main/java/com/example/notesai/data/model/Note.kt b/app/src/main/java/com/example/notesai/data/model/Note.kt new file mode 100644 index 0000000..b5e3e36 --- /dev/null +++ b/app/src/main/java/com/example/notesai/data/model/Note.kt @@ -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 +) \ No newline at end of file diff --git a/app/src/main/java/com/example/notesai/data/model/SerializableModels.kt b/app/src/main/java/com/example/notesai/data/model/SerializableModels.kt new file mode 100644 index 0000000..9e61444 --- /dev/null +++ b/app/src/main/java/com/example/notesai/data/model/SerializableModels.kt @@ -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 +) \ No newline at end of file