Files
2026-07-27 12:58:44 +03:00

67 lines
2.8 KiB
SQL

ALTER TABLE `{{public_user_prefix}}_users`
MODIFY `password` VARCHAR(255) NOT NULL,
MODIFY `salt` VARCHAR(64) NOT NULL DEFAULT '',
ADD COLUMN IF NOT EXISTS `email_verified_at` INT UNSIGNED NOT NULL DEFAULT 0 AFTER `email`,
ADD COLUMN IF NOT EXISTS `phone_verified_at` INT UNSIGNED NOT NULL DEFAULT 0 AFTER `phone`;
CREATE TABLE IF NOT EXISTS `{{public_user_prefix}}_auth_tokens` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`purpose` VARCHAR(32) NOT NULL,
`channel` VARCHAR(24) NOT NULL,
`token_hash` CHAR(64) NOT NULL,
`expires_at` INT UNSIGNED NOT NULL,
`used_at` INT UNSIGNED NOT NULL DEFAULT 0,
`created_at` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_token_hash` (`token_hash`),
KEY `idx_user_purpose` (`user_id`,`purpose`),
KEY `idx_expiry` (`expires_at`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `{{public_user_prefix}}_user_profile_fields` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(160) NOT NULL,
`type` VARCHAR(24) NOT NULL DEFAULT 'text',
`options` TEXT NULL,
`is_required` TINYINT(1) NOT NULL DEFAULT 0,
`is_active` TINYINT(1) NOT NULL DEFAULT 1,
`show_registration` TINYINT(1) NOT NULL DEFAULT 0,
`show_profile` TINYINT(1) NOT NULL DEFAULT 1,
`position` INT NOT NULL DEFAULT 0,
`created_at` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_code` (`code`),
KEY `idx_active_position` (`is_active`,`position`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;
ALTER TABLE `{{public_user_prefix}}_user_profile_fields`
ADD COLUMN IF NOT EXISTS `show_registration` TINYINT(1) NOT NULL DEFAULT 0 AFTER `is_active`,
ADD COLUMN IF NOT EXISTS `show_profile` TINYINT(1) NOT NULL DEFAULT 1 AFTER `show_registration`;
CREATE TABLE IF NOT EXISTS `{{public_user_prefix}}_user_profile_values` (
`user_id` INT UNSIGNED NOT NULL,
`field_id` INT UNSIGNED NOT NULL,
`value` TEXT NULL,
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`,`field_id`),
KEY `idx_field` (`field_id`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `{{public_user_prefix}}_user_identities` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`provider` VARCHAR(24) CHARACTER SET ascii NOT NULL,
`provider_user_id` VARCHAR(190) CHARACTER SET ascii NOT NULL,
`email` VARCHAR(190) NOT NULL DEFAULT '',
`profile_json` TEXT NULL,
`created_at` INT UNSIGNED NOT NULL,
`updated_at` INT UNSIGNED NOT NULL,
`last_login_at` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_provider_identity` (`provider`,`provider_user_id`),
KEY `idx_identity_user` (`user_id`),
KEY `idx_identity_email` (`email`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;