mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 09:48:44 +00:00
token, add another field
This commit is contained in:
1 parent
62250f0e3e
commit
673f20fca5
5 files changed
+26
-3
No files matched your search
@@ -10,9 +10,11 @@ CREATE TABLE user_referral_codes (
|
||||
|
||||
-- The human-readable referral code (e.g. a username or custom code).
|
||||
-- This can be changed.
|
||||
-- These must be unique.
|
||||
code VARCHAR(32) NOT NULL,
|
||||
|
||||
-- Lowercased version of `code` for case-insensitive uniqueness lookups.
|
||||
code_lowercase VARCHAR(32) NOT NULL,
|
||||
|
||||
-- The user who owns this referral code.
|
||||
owner_user_token VARCHAR(32) NOT NULL,
|
||||
|
||||
@@ -25,7 +27,7 @@ CREATE TABLE user_referral_codes (
|
||||
-- INDICES --
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY unique_token (token),
|
||||
UNIQUE KEY unique_code (code),
|
||||
UNIQUE KEY unique_code_lowercase (code_lowercase),
|
||||
KEY index_owner_user_token (owner_user_token)
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|
||||
@@ -11,6 +11,9 @@ CREATE TABLE user_referral_codes (
|
||||
-- The human-readable referral code (e.g. a username or custom code).
|
||||
code VARCHAR(32) NOT NULL,
|
||||
|
||||
-- Lowercased version of `code` for case-insensitive uniqueness lookups.
|
||||
code_lowercase VARCHAR(32) NOT NULL,
|
||||
|
||||
-- The user who owns this referral code.
|
||||
owner_user_token VARCHAR(32) NOT NULL,
|
||||
|
||||
@@ -23,7 +26,7 @@ CREATE TABLE user_referral_codes (
|
||||
-- INDICES --
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY unique_token (token),
|
||||
UNIQUE KEY unique_code (code),
|
||||
UNIQUE KEY unique_code_lowercase (code_lowercase),
|
||||
KEY index_owner_user_token (owner_user_token)
|
||||
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|
||||
@@ -47,6 +47,7 @@ pub(crate) enum TokenPrefix {
|
||||
User,
|
||||
UserImpersonationRequest,
|
||||
UserBookmark,
|
||||
UserReferralCode,
|
||||
UserSession,
|
||||
UserSubscription,
|
||||
VoiceConversionModel,
|
||||
@@ -134,6 +135,7 @@ impl PrefixGenerator for TokenPrefix {
|
||||
Self::User => "user_", // NB: Previously "U:"
|
||||
Self::UserImpersonationRequest => "uimpr_",
|
||||
Self::UserBookmark => "ub_",
|
||||
Self::UserReferralCode => "urc_",
|
||||
Self::UserSession => "session_",
|
||||
Self::UserSubscription => "subscription_", // NB: Previously "SUB:"
|
||||
Self::VoiceConversionModel => "vcm_",
|
||||
|
||||
@@ -31,6 +31,7 @@ pub mod twitch_oauth_tokens_grouping;
|
||||
pub mod twitch_oauth_tokens_internal;
|
||||
pub mod user_bookmarks;
|
||||
pub mod user_impersonation_requests;
|
||||
pub mod user_referral_codes;
|
||||
pub mod user_sessions;
|
||||
pub mod user_subscriptions;
|
||||
pub mod users;
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
use serde::Deserialize;
|
||||
use serde::Serialize;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
use crate::prefixes::TokenPrefix;
|
||||
|
||||
/// The primary key for user referral codes.
|
||||
#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize, Default, ToSchema)]
|
||||
#[cfg_attr(feature = "database", derive(sqlx::Type))]
|
||||
#[cfg_attr(feature = "database", sqlx(transparent))]
|
||||
pub struct UserReferralCodeToken(pub String);
|
||||
|
||||
impl_mysql_token_from_row!(UserReferralCodeToken);
|
||||
impl_string_token!(UserReferralCodeToken);
|
||||
impl_crockford_generator!(UserReferralCodeToken, 18usize, TokenPrefix::UserReferralCode, CrockfordLower);
|
||||
Reference in new issue
Block a user