diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 9b26a5b520..812238a8fa 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -101,8 +101,8 @@ model WebsiteSetting { @@map("website_settings") } -// === GENERATED EMULATOR MODELS (assembled from default.sql) === -// 119 tables. Regenerated by assemble-schema.mjs — edit the +// === GENERATED MODELS (assembled from default.sql + Laravel migrations) === +// 186 tables. Regenerated by assemble-schema.mjs — edit the // generator instead of hand-editing below. model Achievements { @@ -823,214 +823,6 @@ model OldGuildsForumsComments { @@map("old_guilds_forums_comments") } -model Permissions { - id Int @id @default(autoincrement()) - rankName String @map("rank_name") @db.VarChar(25) - badge String @default("") @db.VarChar(12) - level Int @default(1) - roomEffect Int @default(0) @map("room_effect") - logCommands String @default("0") @map("log_commands") - prefix String @db.VarChar(5) - prefixColor String @map("prefix_color") @db.VarChar(7) - cmdAbout String @default("1") @map("cmd_about") - cmdAlert String @default("0") @map("cmd_alert") - cmdAllowTrading String @default("0") @map("cmd_allow_trading") - cmdBadge String @default("0") @map("cmd_badge") - cmdBan String @default("0") @map("cmd_ban") - cmdBlockalert String @default("0") @map("cmd_blockalert") - cmdBots String @default("1") @map("cmd_bots") - cmdBundle String @default("0") @map("cmd_bundle") - cmdCalendar String @default("0") @map("cmd_calendar") - cmdChangename String @default("0") @map("cmd_changename") - cmdChatcolor String @default("0") @map("cmd_chatcolor") - cmdCommands String @default("1") @map("cmd_commands") - cmdConnectCamera String @default("0") @map("cmd_connect_camera") - cmdControl String @default("0") @map("cmd_control") - cmdCoords String @default("2") @map("cmd_coords") - cmdCredits String @default("0") @map("cmd_credits") - cmdSubscription String? @default("0") @map("cmd_subscription") - cmdDanceall String @default("0") @map("cmd_danceall") - cmdDiagonal String @default("1") @map("cmd_diagonal") - cmdDisconnect String @default("0") @map("cmd_disconnect") - cmdDuckets String @default("0") @map("cmd_duckets") - cmdEjectall String @default("2") @map("cmd_ejectall") - cmdEmpty String @default("1") @map("cmd_empty") - cmdEmptyBots String @default("1") @map("cmd_empty_bots") - cmdEmptyPets String @default("1") @map("cmd_empty_pets") - cmdEnable String @default("1") @map("cmd_enable") - cmdEvent String @default("0") @map("cmd_event") - cmdFaceless String @default("0") @map("cmd_faceless") - cmdFastwalk String @default("0") @map("cmd_fastwalk") - cmdFilterword String @default("0") @map("cmd_filterword") - cmdFreeze String @default("0") @map("cmd_freeze") - cmdFreezeBots String @default("1") @map("cmd_freeze_bots") - cmdGift String @default("0") @map("cmd_gift") - cmdGiveRank String @default("0") @map("cmd_give_rank") - cmdHa String @default("0") @map("cmd_ha") - accCanStalk String @default("0") @map("acc_can_stalk") - cmdHal String @default("0") @map("cmd_hal") - cmdInvisible String @default("0") @map("cmd_invisible") - cmdIpBan String @default("0") @map("cmd_ip_ban") - cmdMachineBan String @default("0") @map("cmd_machine_ban") - cmdHandItem String @default("1") @map("cmd_hand_item") - cmdHappyhour String @default("0") @map("cmd_happyhour") - cmdHidewired String @default("2") @map("cmd_hidewired") - cmdKickall String @default("2") @map("cmd_kickall") - cmdSoftkick String @default("0") @map("cmd_softkick") - cmdMassbadge String @default("0") @map("cmd_massbadge") - cmdRoombadge String @default("0") @map("cmd_roombadge") - cmdMasscredits String @default("0") @map("cmd_masscredits") - cmdMassduckets String @default("0") @map("cmd_massduckets") - cmdMassgift String @default("0") @map("cmd_massgift") - cmdMasspoints String @default("0") @map("cmd_masspoints") - cmdMoonwalk String @default("0") @map("cmd_moonwalk") - cmdMimic String @default("0") @map("cmd_mimic") - cmdMulti String @default("0") @map("cmd_multi") - cmdMute String @default("0") @map("cmd_mute") - cmdPetInfo String @default("2") @map("cmd_pet_info") - cmdPickall String @default("1") @map("cmd_pickall") - cmdPlugins String @default("1") @map("cmd_plugins") - cmdPoints String @default("0") @map("cmd_points") - cmdPromoteOffer String @default("0") @map("cmd_promote_offer") - cmdPull String @default("0") @map("cmd_pull") - cmdPush String @default("0") @map("cmd_push") - cmdRedeem String @default("0") @map("cmd_redeem") - cmdReloadRoom String @default("2") @map("cmd_reload_room") - cmdRoomalert String @default("0") @map("cmd_roomalert") - cmdRoomcredits String @default("0") @map("cmd_roomcredits") - cmdRoomeffect String @default("0") @map("cmd_roomeffect") - cmdRoomgift String @default("0") @map("cmd_roomgift") - cmdRoomitem String @default("0") @map("cmd_roomitem") - cmdRoommute String @default("0") @map("cmd_roommute") - cmdRoompixels String @default("0") @map("cmd_roompixels") - cmdRoompoints String @default("0") @map("cmd_roompoints") - cmdSay String @default("0") @map("cmd_say") - cmdSayAll String @default("0") @map("cmd_say_all") - cmdSetmax String @default("0") @map("cmd_setmax") - cmdSetPoll String @default("0") @map("cmd_set_poll") - cmdSetpublic String @default("0") @map("cmd_setpublic") - cmdSetspeed String @default("1") @map("cmd_setspeed") - cmdShout String @default("0") @map("cmd_shout") - cmdShoutAll String @default("0") @map("cmd_shout_all") - cmdShutdown String @default("0") @map("cmd_shutdown") - cmdSitdown String @default("0") @map("cmd_sitdown") - cmdStaffalert String @default("0") @map("cmd_staffalert") - cmdStaffonline String @default("0") @map("cmd_staffonline") - cmdSummon String @default("0") @map("cmd_summon") - cmdSummonrank String @default("0") @map("cmd_summonrank") - cmdSuperBan String @default("0") @map("cmd_super_ban") - cmdStalk String @default("0") @map("cmd_stalk") - cmdSuperpull String @default("0") @map("cmd_superpull") - cmdTakeBadge String @default("0") @map("cmd_take_badge") - cmdTalk String @default("0") @map("cmd_talk") - cmdTeleport String @default("0") @map("cmd_teleport") - cmdTrash String @default("0") @map("cmd_trash") - cmdTransform String @default("0") @map("cmd_transform") - cmdUnban String @default("0") @map("cmd_unban") - cmdUnload String @default("0") @map("cmd_unload") - cmdUnmute String @default("0") @map("cmd_unmute") - cmdUpdateAchievements String @default("0") @map("cmd_update_achievements") - cmdUpdateBots String @default("0") @map("cmd_update_bots") - cmdUpdateCatalogue String @default("0") @map("cmd_update_catalogue") - cmdUpdateConfig String @default("0") @map("cmd_update_config") - cmdUpdateGuildparts String @default("0") @map("cmd_update_guildparts") - cmdUpdateHotelView String @default("0") @map("cmd_update_hotel_view") - cmdUpdateItems String @default("0") @map("cmd_update_items") - cmdUpdateNavigator String @default("0") @map("cmd_update_navigator") - cmdUpdatePermissions String @default("0") @map("cmd_update_permissions") - cmdUpdatePetData String @default("0") @map("cmd_update_pet_data") - cmdUpdatePlugins String @default("0") @map("cmd_update_plugins") - cmdUpdatePolls String @default("0") @map("cmd_update_polls") - cmdUpdateTexts String @default("0") @map("cmd_update_texts") - cmdUpdateWordfilter String @default("0") @map("cmd_update_wordfilter") - cmdUserinfo String @default("0") @map("cmd_userinfo") - cmdWordQuiz String @default("0") @map("cmd_word_quiz") - cmdWarp String @default("0") @map("cmd_warp") - accAnychatcolor String @default("0") @map("acc_anychatcolor") - accAnyroomowner String @default("0") @map("acc_anyroomowner") - accEmptyOthers String @default("0") @map("acc_empty_others") - accEnableOthers String @default("0") @map("acc_enable_others") - accSeeWhispers String @default("0") @map("acc_see_whispers") - accSeeTentchat String @default("0") @map("acc_see_tentchat") - accSuperwired String @default("0") @map("acc_superwired") - accSupporttool String @default("0") @map("acc_supporttool") - accUnkickable String @default("0") @map("acc_unkickable") - accGuildgate String @default("0") @map("acc_guildgate") - accMoverotate String @default("0") @map("acc_moverotate") - accPlacefurni String @default("0") @map("acc_placefurni") - accUnlimitedBots String @default("0") @map("acc_unlimited_bots") - accUnlimitedPets String @default("0") @map("acc_unlimited_pets") - accHideIp String @default("0") @map("acc_hide_ip") - accHideMail String @default("0") @map("acc_hide_mail") - accNotMimiced String @default("0") @map("acc_not_mimiced") - accChatNoFlood String @default("0") @map("acc_chat_no_flood") - accStaffChat String @default("0") @map("acc_staff_chat") - accStaffPick String @default("0") @map("acc_staff_pick") - accEnteranyroom String @default("0") @map("acc_enteranyroom") - accFullrooms String @default("0") @map("acc_fullrooms") - accInfiniteCredits String @default("0") @map("acc_infinite_credits") - accInfinitePixels String @default("0") @map("acc_infinite_pixels") - accInfinitePoints String @default("0") @map("acc_infinite_points") - accAmbassador String @default("0") @map("acc_ambassador") - accDebug String @default("0") @map("acc_debug") - accChatNoLimit String @default("0") @map("acc_chat_no_limit") - accChatNoFilter String @default("0") @map("acc_chat_no_filter") - accNomute String @default("0") @map("acc_nomute") - accGuildAdmin String @default("0") @map("acc_guild_admin") - accCatalogIds String @default("0") @map("acc_catalog_ids") - accModtoolTicketQ String @default("0") @map("acc_modtool_ticket_q") - accModtoolUserLogs String @default("0") @map("acc_modtool_user_logs") - accModtoolUserAlert String @default("0") @map("acc_modtool_user_alert") - accModtoolUserKick String @default("0") @map("acc_modtool_user_kick") - accModtoolUserBan String @default("0") @map("acc_modtool_user_ban") - accModtoolRoomInfo String @default("0") @map("acc_modtool_room_info") - accModtoolRoomLogs String @default("0") @map("acc_modtool_room_logs") - accTradeAnywhere String @default("0") @map("acc_trade_anywhere") - accUpdateNotifications String @default("0") @map("acc_update_notifications") - accHelperUseGuideTool String @default("0") @map("acc_helper_use_guide_tool") - accHelperGiveGuideTours String @default("0") @map("acc_helper_give_guide_tours") - accHelperJudgeChatReviews String @default("0") @map("acc_helper_judge_chat_reviews") - accFloorplanEditor String @default("0") @map("acc_floorplan_editor") - accCamera String @default("0") @map("acc_camera") - accAdsBackground String @default("0") @map("acc_ads_background") - cmdWordquiz String @default("0") @map("cmd_wordquiz") - accRoomStaffTags String @default("0") @map("acc_room_staff_tags") - accInfiniteFriends String @default("0") @map("acc_infinite_friends") - accMimicUnredeemed String @default("0") @map("acc_mimic_unredeemed") - cmdUpdateYoutubePlaylists String @default("0") @map("cmd_update_youtube_playlists") - cmdAddYoutubePlaylist String @default("0") @map("cmd_add_youtube_playlist") - autoCreditsAmount Int? @default(0) @map("auto_credits_amount") - autoPixelsAmount Int? @default(0) @map("auto_pixels_amount") - autoGotwAmount Int? @default(0) @map("auto_gotw_amount") - autoPointsAmount Int? @default(0) @map("auto_points_amount") - accMention String @default("0") @map("acc_mention") - cmdSetstate String @default("1") @map("cmd_setstate") - cmdBuildheight String @default("1") @map("cmd_buildheight") - cmdSetrotation String @default("1") @map("cmd_setrotation") - cmdSellroom String @default("1") @map("cmd_sellroom") - cmdBuyroom String @default("1") @map("cmd_buyroom") - cmdPay String @default("1") @map("cmd_pay") - cmdKill String @default("1") @map("cmd_kill") - cmdHoverboard String @default("1") @map("cmd_hoverboard") - cmdKiss String @default("1") @map("cmd_kiss") - cmdHug String @default("1") @map("cmd_hug") - cmdWelcome String @default("0") @map("cmd_welcome") - cmdDisableEffects String @default("2") @map("cmd_disable_effects") - cmdBrb String @default("1") @map("cmd_brb") - cmdNuke String @default("1") @map("cmd_nuke") - cmdSlime String @default("1") @map("cmd_slime") - cmdExplain String @default("1") @map("cmd_explain") - cmdClosedice String @default("1") @map("cmd_closedice") - accClosediceRoom String @default("2") @map("acc_closedice_room") - cmdSet String @default("1") @map("cmd_set") - cmdFurnidata String @default("0") @map("cmd_furnidata") - kissCmd String @default("0") @map("kiss_cmd") - accCalendarForce String? @default("0") @map("acc_calendar_force") - cmdUpdateCalendar String @default("0") @map("cmd_update_calendar") - - @@map("permissions") -} - model PetActions { id Int @id @default(autoincrement()) @map("ID") petType Int @map("pet_type") @@ -1751,3 +1543,852 @@ model YoutubePlaylists { @@unique([itemId, playlistId, order], map: "item_id") @@map("youtube_playlists") } + +model WebsiteArticles { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + slug String @unique @db.VarChar(255) + title String @db.VarChar(255) + shortStory String @map("short_story") @db.VarChar(255) + fullStory String @map("full_story") @db.Text + userId String @map("user_id") @db.VarChar(255) + image String @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_articles") +} + +model WebsiteLanguages { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + countryCode String @unique @map("country_code") @db.VarChar(8) + language String @unique @db.VarChar(255) + + @@map("website_languages") +} + +model UserReferrals { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") + referralsTotal BigInt @map("referrals_total") @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("user_referrals") +} + +model Referrals { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") + referredUserId BigInt @map("referred_user_id") @db.UnsignedBigInt + referredUserIp String @map("referred_user_ip") @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("referrals") +} + +model ClaimedReferralLogs { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") + ipAddress String @map("ip_address") @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("claimed_referral_logs") +} + +model WebsiteHousekeepingPermissions { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + permission String @unique @db.VarChar(255) + minRank Int @map("min_rank") + description String? @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_housekeeping_permissions") +} + +model WebsiteIpWhitelist { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + ipAddress String @map("ip_address") @db.VarChar(255) + asn String? @db.VarChar(255) + whitelistAsn Boolean @default(false) @map("whitelist_asn") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_ip_whitelist") +} + +model WebsiteIpBlacklist { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + ipAddress String @map("ip_address") @db.VarChar(255) + asn String? @db.VarChar(255) + blacklistAsn Boolean @default(false) @map("blacklist_asn") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_ip_blacklist") +} + +model WebsitePermissions { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + key String @unique @db.VarChar(255) + value String? @db.VarChar(255) + comment String? @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_permissions") +} + +model WebsiteArticleReactions { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") @db.UnsignedInt + articleId BigInt @map("article_id") @db.UnsignedBigInt + reaction String @db.VarChar(50) + active Boolean @default(true) + + @@map("website_article_reactions") +} + +model WebsiteWordfilter { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + word String @unique @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_wordfilter") +} + +model WebsiteBetaCodes { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + code String @unique @db.VarChar(255) + userId Int? @map("user_id") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_beta_codes") +} + +model WebsiteTeams { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + rankName String @unique @db.VarChar(255) + hiddenRank Boolean @default(false) + badge String? @db.VarChar(255) + jobDescription String? @db.VarChar(255) + staffColor String @default("#327fa8") @db.VarChar(255) + staffBackground String @default("staff-bg.png") @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_teams") +} + +model WebsiteStaffApplications { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") + rankId Int @map("rank_id") + content String @db.Text + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_staff_applications") +} + +model WebsiteOpenPositions { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + permissionId Int @map("permission_id") + description String @db.VarChar(255) + applyFrom DateTime? @map("apply_from") @db.Timestamp(0) + applyTo DateTime? @map("apply_to") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_open_positions") +} + +model WebsiteArticleComments { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + articleId BigInt @map("article_id") @db.UnsignedBigInt + userId Int @map("user_id") + comment String @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_article_comments") +} + +model WebsiteRareValueCategories { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @unique @db.VarChar(255) + badge String @db.VarChar(255) + priority Int @default(1) @db.UnsignedInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_rare_value_categories") +} + +model WebsiteRareValues { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + categoryId BigInt @map("category_id") @db.UnsignedBigInt + itemId Int? @map("item_id") + name String @db.VarChar(255) + creditValue String? @map("credit_value") @db.VarChar(255) + currencyValue String? @map("currency_value") @db.VarChar(255) + currencyType String @default("diamonds") @db.VarChar(255) + furnitureIcon String @map("furniture_icon") @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_rare_values") +} + +model WebsiteRuleCategories { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @unique @db.VarChar(255) + description String @db.VarChar(255) + badge String @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_rule_categories") +} + +model WebsiteRules { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + categoryId BigInt? @map("category_id") @db.UnsignedBigInt + paragraph String @db.Char(8) + rule String @db.Text + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_rules") +} + +model WebsiteInstallation { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + step Int? @default(0) @db.UnsignedInt + completed Boolean @default(false) + installationKey String? @map("installation_key") @db.VarChar(255) + userIp String? @map("user_ip") @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_installation") +} + +model WebsiteHelpCenterCategories { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @unique @db.VarChar(255) + content String @db.Text + position Int @default(1) @db.UnsignedInt + imageUrl String? @map("image_url") @db.VarChar(255) + buttonText String? @map("button_text") @db.VarChar(255) + buttonUrl String? @map("button_url") @db.VarChar(255) + buttonColor String @default("#eeb425") @map("button_color") @db.Char(16) + buttonBorderColor String @default("#facc15") @map("button_border_color") @db.Char(16) + smallBox Boolean @default(false) @map("small_box") + + @@map("website_help_center_categories") +} + +model WebsiteHelpCenterTickets { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int? + categoryId BigInt? @map("category_id") @db.UnsignedBigInt + title String @db.VarChar(255) + content String @db.Text + open Boolean @default(true) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_help_center_tickets") +} + +model WebsitePaypalTransactions { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int + transactionId String @map("transaction_id") @db.VarChar(255) + status String? @db.VarChar(255) + description String? @map("description") @db.VarChar(512) + amount Float + currency String @default("USD") @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_paypal_transactions") +} + +model WebsiteShopArticles { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @unique @db.VarChar(255) + info String @db.VarChar(255) + icon String @db.VarChar(255) + color String @db.VarChar(255) + costs Int @db.UnsignedInt + giveRank Int? @map("give_rank") + credits Int? @db.UnsignedInt + duckets Int? @db.UnsignedInt + diamonds Int? @db.UnsignedInt + badges String? @db.VarChar(255) + furniture Json? + position Int @default(0) @db.UnsignedInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_shop_articles") +} + +model WebsiteShopVouchers { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + code String @unique @db.VarChar(255) + maxUses Int @default(1) @map("max_uses") @db.UnsignedInt + useCount Int @default(0) @map("use_count") @db.UnsignedInt + amount Int @db.UnsignedInt + expiresAt DateTime? @map("expires_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_shop_vouchers") +} + +model WebsiteUsedShopVouchers { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int + voucherId BigInt @map("voucher_id") @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_used_shop_vouchers") +} + +model WebsiteShopArticleFeatures { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + articleId BigInt @map("article_id") @db.UnsignedBigInt + features Json + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_shop_article_features") +} + +model WebsiteHelpCenterTicketReplies { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + ticketId BigInt @map("ticket_id") @db.UnsignedBigInt + userId Int + content String @db.Text + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_help_center_ticket_replies") +} + +model AlertLogs { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + type String @db.VarChar(255) + severity String @db.VarChar(255) + message String @db.Text + context Json? + sentViaEmail Boolean @default(false) @map("sent_via_email") + sentViaDiscord Boolean @default(false) @map("sent_via_discord") + isRead Boolean @default(false) @map("is_read") + readAt DateTime? @map("read_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("alert_logs") +} + +model WebsiteUserGuestbooks { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + profileId Int @map("profile_id") + userId Int + message String @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_user_guestbooks") +} + +model WebsiteShopCategories { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @db.VarChar(255) + slug String @unique @db.VarChar(255) + icon String? @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_shop_categories") +} + +model WebsiteMaintenanceTasks { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int? + task String @db.VarChar(255) + completed Boolean @default(false) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_maintenance_tasks") +} + +model Tags { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @db.VarChar(255) + backgroundColor String @map("background_color") @db.VarChar(10) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("tags") +} + +model Taggables { + tagId BigInt @map("tag_id") @db.UnsignedBigInt + taggableId BigInt @map("taggable_id") @db.UnsignedBigInt + taggableType String @map("taggable_type") @db.VarChar(255) + + @@unique([tagId, taggableId, taggableType]) + @@map("taggables") +} + +model WebsiteBadges { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + badgeKey String @unique @map("badge_key") @db.VarChar(255) + badgeName String @map("badge_name") @db.VarChar(255) + badgeDescription String @map("badge_description") @db.Text + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_badges") +} + +model WebsiteAds { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + image String @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_ads") +} + +model WebsiteDrawbadges { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") + badgePath String @map("badge_path") @db.VarChar(255) + badgeUrl String @map("badge_url") @db.VarChar(255) + badgeName String @map("badge_name") @db.VarChar(255) + badgeDesc String @map("badge_desc") @db.VarChar(255) + published Boolean @default(false) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("website_drawbadges") +} + +model RadioRanks { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @db.VarChar(255) + description String? @db.VarChar(255) + badgeCode String? @map("badge_code") @db.VarChar(255) + isActive Boolean @default(true) @map("is_active") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_ranks") +} + +model RadioShouts { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + message String @db.Text + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_shouts") +} + +model RadioApplications { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + realName String @map("real_name") @db.VarChar(255) + age Int + availability String @db.Text + experience String? @db.Text + motivation String @db.Text + musicStyle String? @map("music_style") @db.Text + discordUsername String? @map("discord_username") @db.VarChar(255) + rankId BigInt? @map("rank_id") @db.UnsignedBigInt + status String @default("pending") @db.VarChar(255) + approvedBy BigInt? @map("approved_by") @db.UnsignedBigInt + approvedAt DateTime? @map("approved_at") @db.Timestamp(0) + rejectedBy BigInt? @map("rejected_by") @db.UnsignedBigInt + rejectedAt DateTime? @map("rejected_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_applications") +} + +model RadioSchedules { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + day String @db.VarChar(255) + startTime DateTime @map("start_time") @db.Time + endTime DateTime @map("end_time") @db.Time + showName String? @map("show_name") @db.VarChar(255) + description String? @db.Text + isActive Boolean @default(true) @map("is_active") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_schedules") +} + +model RadioBanners { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + imagePath String @map("image_path") @db.VarChar(255) + title String? @db.VarChar(255) + description String? @db.Text + sortOrder Int @default(0) @map("sort_order") + isActive Boolean @default(true) @map("is_active") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_banners") +} + +model RadioHistory { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + showName String? @map("show_name") @db.VarChar(255) + startedAt DateTime @map("started_at") @db.Timestamp(0) + endedAt DateTime? @map("ended_at") @db.Timestamp(0) + listenersCount Int @default(0) @map("listeners_count") + notes String? @db.Text + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_history") +} + +model RadioContests { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_contests") +} + +model RadioGiveaways { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_giveaways") +} + +model RadioListenerPoints { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_listener_points") +} + +model RadioSongRequests { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_song_requests") +} + +model RadioSongVotes { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_song_votes") +} + +model GameScores { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId Int @map("user_id") @db.UnsignedInt + game String @db.VarChar(50) + score Int @default(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("game_scores") +} + +model GameRooms { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + game String @db.VarChar(50) + player1Id Int @map("player1_id") @db.UnsignedInt + player2Id Int? @map("player2_id") @db.UnsignedInt + state Json? + turn Int @default(1) @db.UnsignedInt + winnerId Int? @map("winner_id") @db.UnsignedInt + status String @default("waiting") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("game_rooms") +} + +model GameRewardClaims { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + game String @db.VarChar(50) + winsRequired Int @map("wins_required") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@unique([userId, game, winsRequired]) + @@map("game_reward_claims") +} + +model GameChatMessages { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + roomId BigInt @map("room_id") @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + message String @db.Text + type String @default("chat") + reactions Json? + createdAt DateTime @map("created_at") @db.Timestamp(0) + + @@map("game_chat_messages") +} + +model GameReplays { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + game String + player1Id BigInt @map("player1_id") @db.UnsignedBigInt + player2Id BigInt? @map("player2_id") @db.UnsignedBigInt + gameData Json @map("game_data") + moves Json + winner String? + player1Score Int @default(0) @map("player1_score") + player2Score Int @default(0) @map("player2_score") + startedAt DateTime @map("started_at") @db.Timestamp(0) + endedAt DateTime? @map("ended_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("game_replays") +} + +model GameRanks { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String + slug String @unique + icon String @default("⭐") + color String @default("#ffffff") + minPoints Int @default(0) @map("min_points") + maxPoints Int? @map("max_points") + tier Int @default(1) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("game_ranks") +} + +model UserGameRanks { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + game String + rankId BigInt @map("rank_id") @db.UnsignedBigInt + points Int @default(0) + wins Int @default(0) + gamesPlayed Int @default(0) @map("games_played") + winStreak Int @default(0) @map("win_streak") + bestStreak Int @default(0) @map("best_streak") + lastPlayedAt DateTime? @map("last_played_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@unique([userId, game]) + @@map("user_game_ranks") +} + +model GameInvitations { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + fromUserId BigInt @map("from_user_id") @db.UnsignedBigInt + toUserId BigInt @map("to_user_id") @db.UnsignedBigInt + game String @db.VarChar(255) + status String @default("pending") @db.VarChar(255) + betAmount Int @default(0) @map("bet_amount") + betCurrency String @default("credits") @map("bet_currency") @db.VarChar(255) + roomId BigInt? @map("room_id") @db.UnsignedBigInt + expiresAt DateTime? @map("expires_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("game_invitations") +} + +model UserGameXp { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + game String @db.VarChar(255) + xp Int @default(0) + level Int @default(1) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@unique([userId, game]) + @@map("user_game_xp") +} + +model GameLevelRewards { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + game String @db.VarChar(255) + level Int + rewardType String @map("reward_type") @db.VarChar(255) + rewardCurrency String? @map("reward_currency") @db.VarChar(255) + rewardAmount Int @default(0) @map("reward_amount") + claimed Boolean @default(false) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("game_level_rewards") +} + +model DailyChallenges { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @db.VarChar(255) + description String @db.VarChar(255) + game String? @db.VarChar(255) + type String @db.VarChar(255) + target Int + rewardCurrency String @default("credits") @map("reward_currency") @db.VarChar(255) + rewardAmount Int @map("reward_amount") + date DateTime @db.Date + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("daily_challenges") +} + +model UserChallengeProgress { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + challengeId BigInt @map("challenge_id") @db.UnsignedBigInt + progress Int @default(0) + completed Boolean @default(false) + claimed Boolean @default(false) + completedAt DateTime? @map("completed_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@unique([userId, challengeId]) + @@map("user_challenge_progress") +} + +model PersonalAccessTokens { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + tokenableId BigInt @map("tokenable_id") @db.UnsignedBigInt + tokenableType String @map("tokenable_type") @db.VarChar(255) + name String @db.Text + token String @unique @db.VarChar(64) + abilities String? @db.Text + lastUsedAt DateTime? @map("last_used_at") @db.Timestamp(0) + expiresAt DateTime? @map("expires_at") @db.Timestamp(0) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("personal_access_tokens") +} + +model StaffActivities { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + action String @db.VarChar(50) + targetType String? @map("target_type") @db.VarChar(100) + targetId BigInt? @map("target_id") @db.UnsignedBigInt + description String @db.Text + ipAddress String? @map("ip_address") @db.VarChar(45) + metadata Json? @db.Json + createdAt DateTime @default(now()) @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("staff_activities") +} + +model EmailTemplates { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @unique @db.VarChar(255) + subject String @db.VarChar(255) + body String @db.Text + variables String? @db.Text + isActive Boolean @default(true) @map("is_active") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("email_templates") +} + +model SocialAccounts { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + userId BigInt @map("user_id") @db.UnsignedBigInt + provider String @db.VarChar(255) + providerId String @map("provider_id") @db.VarChar(255) + avatar String? @db.VarChar(255) + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@unique([provider, providerId]) + @@map("social_accounts") +} + +model RadioApiKeys { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + name String @db.VarChar(255) + key String @unique @db.VarChar(64) + allowedIps String? @map("allowed_ips") @db.VarChar(255) + permissions Json? @db.Json + rateLimit Int @default(300) @map("rate_limit") + lastUsedAt DateTime? @map("last_used_at") @db.Timestamp(0) + expiresAt DateTime? @map("expires_at") @db.Timestamp(0) + isActive Boolean @default(true) @map("is_active") + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_api_keys") +} + +model RadioSongPlays { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + title String @db.VarChar(255) + artist String? @db.VarChar(255) + album String? @db.VarChar(255) + artworkUrl String? @map("artwork_url") @db.VarChar(255) + duration Int? @db.UnsignedInt + playedAt DateTime @map("played_at") @db.Timestamp(0) + djId BigInt? @map("dj_id") @db.UnsignedBigInt + metadata Json? @db.Json + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_song_plays") +} + +model RadioAutoDjPlaylist { + id BigInt @id @default(autoincrement()) @db.UnsignedBigInt + title String @db.VarChar(255) + artist String? @db.VarChar(255) + album String? @db.VarChar(255) + artworkUrl String? @map("artwork_url") @db.VarChar(255) + duration Int? @db.UnsignedInt + playCount Int @default(0) @map("play_count") @db.UnsignedInt + lastPlayedAt DateTime? @map("last_played_at") @db.Timestamp(0) + isActive Boolean @default(true) @map("is_active") + sortOrder Int @default(0) @map("sort_order") @db.UnsignedInt + createdAt DateTime? @map("created_at") @db.Timestamp(0) + updatedAt DateTime? @map("updated_at") @db.Timestamp(0) + + @@map("radio_auto_dj_playlist") +}