合入家庭共享与设备消息能力
This commit is contained in:
@@ -272,6 +272,63 @@ CREATE TABLE IF NOT EXISTS `device_bindings` (
|
||||
ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `device_family_members` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`device_id` VARCHAR(64) NOT NULL,
|
||||
`user_id` BIGINT NOT NULL,
|
||||
`role` TINYINT NOT NULL DEFAULT 2 COMMENT '1=owner,2=member',
|
||||
`status` TINYINT NOT NULL DEFAULT 1,
|
||||
`invited_by_user_id` BIGINT NULL,
|
||||
`joined_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`removed_at` DATETIME NULL,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `uq_device_family_member` UNIQUE (`device_id`, `user_id`),
|
||||
KEY `idx_device_family_members_device_status` (`device_id`, `status`),
|
||||
KEY `idx_device_family_members_user_status` (`user_id`, `status`),
|
||||
KEY `idx_device_family_members_invited_by` (`invited_by_user_id`),
|
||||
CONSTRAINT `fk_device_family_members_device`
|
||||
FOREIGN KEY (`device_id`)
|
||||
REFERENCES `device_auth` (`device_id`),
|
||||
CONSTRAINT `fk_device_family_members_user`
|
||||
FOREIGN KEY (`user_id`)
|
||||
REFERENCES `parents` (`user_id`),
|
||||
CONSTRAINT `fk_device_family_members_invited_by`
|
||||
FOREIGN KEY (`invited_by_user_id`)
|
||||
REFERENCES `parents` (`user_id`)
|
||||
ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `device_family_invitations` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`invite_token` CHAR(36) NOT NULL,
|
||||
`device_id` VARCHAR(64) NOT NULL,
|
||||
`owner_user_id` BIGINT NOT NULL,
|
||||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1=pending,2=accepted,3=expired,4=cancelled',
|
||||
`expires_at` DATETIME NOT NULL,
|
||||
`accepted_by_user_id` BIGINT NULL,
|
||||
`accepted_at` DATETIME NULL,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uq_device_family_invite_token` (`invite_token`),
|
||||
KEY `idx_device_family_invites_device_status` (`device_id`, `status`),
|
||||
KEY `idx_device_family_invites_owner_status` (`owner_user_id`, `status`),
|
||||
KEY `idx_device_family_invites_expires_at` (`expires_at`),
|
||||
KEY `idx_device_family_invites_accepted_by` (`accepted_by_user_id`),
|
||||
CONSTRAINT `fk_device_family_invites_device`
|
||||
FOREIGN KEY (`device_id`)
|
||||
REFERENCES `device_auth` (`device_id`),
|
||||
CONSTRAINT `fk_device_family_invites_owner`
|
||||
FOREIGN KEY (`owner_user_id`)
|
||||
REFERENCES `parents` (`user_id`),
|
||||
CONSTRAINT `fk_device_family_invites_accepted_by`
|
||||
FOREIGN KEY (`accepted_by_user_id`)
|
||||
REFERENCES `parents` (`user_id`)
|
||||
ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `device_bind_sessions` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`bind_token` CHAR(36) NOT NULL,
|
||||
@@ -364,6 +421,8 @@ CREATE TABLE IF NOT EXISTS `device_settings` (
|
||||
`setting_id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`device_id` VARCHAR(64) NOT NULL,
|
||||
`sleep_mode` TINYINT NOT NULL DEFAULT 0,
|
||||
`manual_sleep_mode` TINYINT NOT NULL DEFAULT 0,
|
||||
`schedule_suppressed_until` DATETIME NULL,
|
||||
`disable_time_start` TIME NULL,
|
||||
`disable_time_end` TIME NULL,
|
||||
`timezone` VARCHAR(32) NOT NULL DEFAULT 'Asia/Shanghai',
|
||||
|
||||
Reference in New Issue
Block a user