[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);
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) {

View File

@@ -28,7 +28,7 @@ class WaccaUser : BaseEntity() {
var title1 = 0
var title2 = 0
var rating = 0
@Temporal(TemporalType.TIME)
@Temporal(TemporalType.TIMESTAMP)
var vipExpireTime: Date = Date(0)
var alwaysVip = false
var loginCount = 0
@@ -51,7 +51,7 @@ class WaccaUser : BaseEntity() {
var lastFolderOrder = 0
var lastFolderId = 0
var lastSongOrder = 0
@Temporal(TemporalType.TIME)
@Temporal(TemporalType.TIMESTAMP)
var lastLoginDate: Date = Date(0)
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 jakarta.persistence.*
import java.util.*
typealias UC = UniqueConstraint
@@ -73,18 +74,21 @@ class WcUserItem(
var itemId: Int = 0,
var p1: Long = 0L,
var p2: Long = 0L,
var p3: Long = 0L
var p3: Long = 0L,
@Temporal(TemporalType.TIMESTAMP)
var acquiredDate: Date = Date(),
) : WaccaUserEntity() {
fun ls() = when (type) {
MUSIC_UNLOCK() -> ls(itemId, p1, p2, p3) // songId, diff, acquireDate, unlockDate
ICON() -> ls(itemId, type, p1, p2) // id, type, uses, acquiredDate
MUSIC_UNLOCK() -> ls(itemId, p1, acquiredDate, acquiredDate) // songId, diff, acquireDate, unlockDate
ICON() -> ls(itemId, type, p1, acquiredDate) // id, type, uses, acquiredDate
TROPHY() -> ls(itemId, p1, p2, p3) // id, season, progress, badgeType
SKILL() -> ls(itemId, p1, p2, p3) // skillType, level, flag, badge
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
else -> ls(itemId, type, p1)
else -> ls(itemId, type, acquiredDate) // id, type, acquireDate
}
infix fun isType(t: WaccaItemType) = type == t()

View File

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