From ca2bf4d24c7e8f448df0bff5720af05c1dd0dabc Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Sun, 12 Apr 2020 00:12:16 +0200 Subject: [PATCH] Add User table --- .../db/migration/V1__Create_user_table.sql | 9 +++++++++ api/src/entities/User.kt | 15 +++++++++++++++ api/src/tables/Users.kt | 16 ++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 api/resources/db/migration/V1__Create_user_table.sql create mode 100644 api/src/entities/User.kt create mode 100644 api/src/tables/Users.kt diff --git a/api/resources/db/migration/V1__Create_user_table.sql b/api/resources/db/migration/V1__Create_user_table.sql new file mode 100644 index 0000000..041f5c7 --- /dev/null +++ b/api/resources/db/migration/V1__Create_user_table.sql @@ -0,0 +1,9 @@ +CREATE TABLE `Users` +( + `id` int PRIMARY KEY AUTO_INCREMENT, + `username` varchar(50) UNIQUE NOT NULL, + `email` varchar(255) UNIQUE NOT NULL, + `password` varchar(255) NOT NULL, + `created_at` datetime NOT NULL, + `last_login` datetime +); \ No newline at end of file diff --git a/api/src/entities/User.kt b/api/src/entities/User.kt new file mode 100644 index 0000000..1db3c52 --- /dev/null +++ b/api/src/entities/User.kt @@ -0,0 +1,15 @@ +package be.vandewalleh.entities + +import me.liuwj.ktorm.entity.Entity +import java.time.LocalDateTime + +interface User : Entity { + companion object : Entity.Factory() + + val id: Int + var username: String + var email: String + var password: String + var createdAt: LocalDateTime + var lastLogin: LocalDateTime? +} \ No newline at end of file diff --git a/api/src/tables/Users.kt b/api/src/tables/Users.kt new file mode 100644 index 0000000..11f8d57 --- /dev/null +++ b/api/src/tables/Users.kt @@ -0,0 +1,16 @@ +package be.vandewalleh.tables + +import be.vandewalleh.entities.User +import me.liuwj.ktorm.schema.Table +import me.liuwj.ktorm.schema.datetime +import me.liuwj.ktorm.schema.int +import me.liuwj.ktorm.schema.varchar + +object Users : Table("Users") { + val id by int("id").primaryKey().bindTo { it.id } + val username by varchar("username").bindTo { it.username } + val email by varchar("email").bindTo { it.email } + val password by varchar("password").bindTo { it.password } + val createdAt by datetime("created_at").bindTo { it.createdAt } + val lastLogin by datetime("last_login").bindTo { it.lastLogin } +} \ No newline at end of file