mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-22 20:03:16 -05:00
117 lines
4.2 KiB
SQL
117 lines
4.2 KiB
SQL
-- noinspection SqlDialectInspectionForFile
|
|
-- noinspection SqlNoDataSourceInspectionForFile
|
|
-- noinspection SqlResolveForFile
|
|
|
|
-- Track user session durations
|
|
-- User clients ping the endpoint that writes this data.
|
|
CREATE TABLE analytics_app_sessions (
|
|
-- Not used for anything except replication.
|
|
id BIGINT(20) NOT NULL AUTO_INCREMENT,
|
|
|
|
-- Generated client-side
|
|
-- Wide enough for a UUID, but typically one of our internal tokens.
|
|
session_token VARCHAR(36) NOT NULL,
|
|
|
|
-- If we host multiple sites with distinct categories, this will enable us to
|
|
-- segregate analytics.
|
|
app_namespace VARCHAR(32) NOT NULL,
|
|
|
|
-- Who sent the event.
|
|
user_token VARCHAR(32) NOT NULL,
|
|
|
|
-- Updated on every write.
|
|
-- The "user agent" or app version string of the client.
|
|
app_version VARCHAR(255) DEFAULT NULL,
|
|
|
|
-- Updated on every write.
|
|
-- The OS platform for the client.
|
|
os_platform VARCHAR(16) DEFAULT NULL,
|
|
|
|
-- Updated on every write.
|
|
-- The OS platform version for the client.
|
|
os_version VARCHAR(64) DEFAULT NULL,
|
|
|
|
-- Updated on every write.
|
|
-- How long the current user's session has been open
|
|
session_duration_seconds INT(10) UNSIGNED DEFAULT NULL,
|
|
|
|
-- Updated on every write.
|
|
-- The user's last known IP address.
|
|
ip_address VARCHAR(40) NOT NULL,
|
|
|
|
-- Incrementing count of events.
|
|
-- NB: This is kind of an "hours spent" measure, but will lose information if we ever
|
|
-- change the ping cadence (eg. 1 minute pings --> 5 minute pings).
|
|
measurement_count BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- ========== GENERATION COUNTS ==========
|
|
|
|
-- Number of items generated across all types.
|
|
-- This counts attempts, not successes. This also includes multiples,
|
|
-- eg. four requested images adds four to this total.
|
|
-- Two bytes (65,535 max)
|
|
total_generation_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of images generated
|
|
-- This counts attempts, not successes. This also includes multiples,
|
|
-- eg. four requested images adds four to this total.
|
|
-- Two bytes (65,535 max)
|
|
image_generation_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of images generated
|
|
-- This counts attempts, not successes. This also includes multiples,
|
|
-- eg. four requested images adds four to this total.
|
|
-- Two bytes (65,535 max)
|
|
video_generation_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of objects generated (meshes, etc.)
|
|
-- This counts attempts, not successes. This also includes multiples,
|
|
-- eg. four requested images adds four to this total.
|
|
-- Two bytes (65,535 max)
|
|
object_generation_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of images generated with text to image.
|
|
text_to_image_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of images generated with text to image (image edits)
|
|
image_to_image_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of videos generated with text to image.
|
|
text_to_video_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of images generated with text to image.
|
|
image_to_video_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of objects generated with text to image.
|
|
text_to_object_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- Number of objects generated with text to image.
|
|
image_to_object_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
image_page_prompt_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
video_page_prompt_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
edit_page_prompt_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
stage_page_prompt_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
object_page_prompt_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
other_page_prompt_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
-- ========== RECORD TIMESTAMPS ==========
|
|
|
|
-- Written at create only.
|
|
first_active_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
-- Updated on every ping.
|
|
last_active_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
-- ========== INDICES ==========
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY (session_token),
|
|
INDEX idx_app_namespace (app_namespace),
|
|
INDEX idx_user_token (user_token),
|
|
INDEX idx_os_platform (os_platform),
|
|
INDEX idx_os_version (os_version),
|
|
INDEX idx_app_version (app_version),
|
|
INDEX idx_last_active_at (last_active_at)
|
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|