[F] Fix wacca db constraints

This commit is contained in:
Azalea
2024-03-28 05:56:52 -04:00
parent 571591f021
commit 0fbe139e8d
4 changed files with 24 additions and 31 deletions

View File

@@ -46,7 +46,7 @@ enum class WaccaItemType(val type: Int) {
TOUCH_EFFECT(17); TOUCH_EFFECT(17);
operator fun invoke() = type operator fun invoke() = type
operator fun invoke(u: WaccaUser, id: Int) = WcUserItem(id, this()).apply { user = u } operator fun invoke(u: WaccaUser, id: Int) = WcUserItem(type = this(), itemId = id).apply { user = u }
} }
enum class WaccaOptionType(val id: Int, val default: Int) { enum class WaccaOptionType(val id: Int, val default: Int) {

View File

@@ -28,7 +28,7 @@ class WaccaUser : BaseEntity() {
var title1 = 0 var title1 = 0
var title2 = 0 var title2 = 0
var rating = 0 var rating = 0
@Temporal(TemporalType.TIME) @Temporal(TemporalType.TIMESTAMP)
var vipExpireTime: Date = Date(0) var vipExpireTime: Date = Date(0)
var alwaysVip = false var alwaysVip = false
var loginCount = 0 var loginCount = 0
@@ -51,7 +51,7 @@ class WaccaUser : BaseEntity() {
var lastFolderOrder = 0 var lastFolderOrder = 0
var lastFolderId = 0 var lastFolderId = 0
var lastSongOrder = 0 var lastSongOrder = 0
@Temporal(TemporalType.TIME) @Temporal(TemporalType.TIMESTAMP)
var lastLoginDate: Date = Date(0) var lastLoginDate: Date = Date(0)
var gateTutorialFlags: String? = null var gateTutorialFlags: String? = null

View File

@@ -6,6 +6,7 @@ import icu.samnyan.aqua.net.games.BaseEntity
import icu.samnyan.aqua.sega.wacca.WaccaItemType import icu.samnyan.aqua.sega.wacca.WaccaItemType
import icu.samnyan.aqua.sega.wacca.WaccaItemType.* import icu.samnyan.aqua.sega.wacca.WaccaItemType.*
import jakarta.persistence.* import jakarta.persistence.*
import java.util.*
typealias UC = UniqueConstraint typealias UC = UniqueConstraint
@@ -73,18 +74,21 @@ class WcUserItem(
var itemId: Int = 0, var itemId: Int = 0,
var p1: Long = 0L, var p1: Long = 0L,
var p2: Long = 0L, var p2: Long = 0L,
var p3: Long = 0L var p3: Long = 0L,
@Temporal(TemporalType.TIMESTAMP)
var acquiredDate: Date = Date(),
) : WaccaUserEntity() { ) : WaccaUserEntity() {
fun ls() = when (type) { fun ls() = when (type) {
MUSIC_UNLOCK() -> ls(itemId, p1, p2, p3) // songId, diff, acquireDate, unlockDate MUSIC_UNLOCK() -> ls(itemId, p1, acquiredDate, acquiredDate) // songId, diff, acquireDate, unlockDate
ICON() -> ls(itemId, type, p1, p2) // id, type, uses, acquiredDate ICON() -> ls(itemId, type, p1, acquiredDate) // id, type, uses, acquiredDate
TROPHY() -> ls(itemId, p1, p2, p3) // id, season, progress, badgeType TROPHY() -> ls(itemId, p1, p2, p3) // id, season, progress, badgeType
SKILL() -> ls(itemId, p1, p2, p3) // skillType, level, flag, badge SKILL() -> ls(itemId, p1, p2, p3) // skillType, level, flag, badge
TICKET() -> ls(id, itemId, p1) // userTicketId, ticketId, expire TICKET() -> ls(id, itemId, p1) // userTicketId, ticketId, expire
NAVIGATOR() -> ls(itemId, type, p1, p2, p3) // id, type, acquiredDate, uses, usesToday NAVIGATOR() -> ls(itemId, type, acquiredDate, p1, p2) // id, type, acquiredDate, uses, usesToday
// Generic: title, note colors, note sounds, plates, touch effects // Generic: title, note colors, note sounds, plates, touch effects
else -> ls(itemId, type, p1) else -> ls(itemId, type, acquiredDate) // id, type, acquireDate
} }
infix fun isType(t: WaccaItemType) = type == t() infix fun isType(t: WaccaItemType) = type == t()

View File

@@ -19,28 +19,17 @@ ALTER TABLE wacca_user_gate
ADD last_used datetime NOT NULL; ADD last_used datetime NOT NULL;
ALTER TABLE wacca_user_item ALTER TABLE wacca_user_item
ADD p1 BIGINT NOT NULL; ADD p1 BIGINT NOT NULL,
ADD p2 BIGINT NOT NULL,
ALTER TABLE wacca_user_item ADD p3 BIGINT NOT NULL,
ADD p2 BIGINT NOT NULL; DROP COLUMN acquire_date,
DROP COLUMN use_count,
ALTER TABLE wacca_user_item ADD acquired_date datetime NOT NULL,
ADD p3 BIGINT NOT NULL; DROP CONSTRAINT wacca_user_item_unique,
ADD CONSTRAINT wacca_user_item_unique UNIQUE (user_id, item_id, type);
ALTER TABLE wacca_user_item
DROP COLUMN acquire_date;
ALTER TABLE wacca_user_item
DROP COLUMN use_count;
ALTER TABLE wacca_user ALTER TABLE wacca_user
DROP COLUMN last_login_date; DROP COLUMN last_login_date,
DROP COLUMN vip_expire_time,
ALTER TABLE wacca_user ADD last_login_date datetime NOT NULL,
DROP COLUMN vip_expire_time; ADD vip_expire_time datetime NOT NULL;
ALTER TABLE wacca_user
ADD last_login_date time NOT NULL;
ALTER TABLE wacca_user
ADD vip_expire_time time NOT NULL;