diff --git a/api/resources/db/migration/V2__Create_note_table.sql b/api/resources/db/migration/V2__Create_note_table.sql new file mode 100644 index 0000000..4904664 --- /dev/null +++ b/api/resources/db/migration/V2__Create_note_table.sql @@ -0,0 +1,11 @@ +CREATE TABLE `Notes` +( + `id` int PRIMARY KEY AUTO_INCREMENT, + `title` varchar(50) NOT NULL, + `content` text NOT NULL, + `user_id` int NOT NULL, + `last_viewed` datetime +); + +ALTER TABLE `Notes` + ADD FOREIGN KEY (`user_id`) REFERENCES `Users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; \ No newline at end of file diff --git a/api/src/entities/Note.kt b/api/src/entities/Note.kt new file mode 100644 index 0000000..b9f918d --- /dev/null +++ b/api/src/entities/Note.kt @@ -0,0 +1,14 @@ +package be.vandewalleh.entities + +import me.liuwj.ktorm.entity.Entity +import java.time.LocalDateTime + +interface Note : Entity { + companion object : Entity.Factory() + + val id: Int + var title: String + var content: String + var user: User + var lastViewed: LocalDateTime? +} \ No newline at end of file diff --git a/api/src/tables/Notes.kt b/api/src/tables/Notes.kt new file mode 100644 index 0000000..2541b6e --- /dev/null +++ b/api/src/tables/Notes.kt @@ -0,0 +1,12 @@ +package be.vandewalleh.tables + +import be.vandewalleh.entities.Note +import me.liuwj.ktorm.schema.* + +object Notes : Table("Notes") { + val id by int("id").primaryKey().bindTo { it.id } + val title by varchar("title").bindTo { it.title } + val content by text("content").bindTo { it.content } + val user by int("user_id").references(Users) { it.user } + val lastViewed by datetime("last_viewed").bindTo { it.lastViewed } +} \ No newline at end of file