24 lines
990 B
SQL
24 lines
990 B
SQL
-- UserDevice table — Device-Binding pro User (Anti-Account-Sharing).
|
|
-- Backed by `model UserDevice` in schema.prisma.
|
|
--
|
|
-- Limits siehe plan-features.ts maxDevices: Free=1, Pro=1, Legend=3.
|
|
-- Frontend liefert deviceId via Capacitor Device.getId() (persistent UUID).
|
|
-- Auth-Middleware enforced via x-device-id Header.
|
|
|
|
CREATE TABLE IF NOT EXISTS "rebreak"."user_devices" (
|
|
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
"user_id" UUID NOT NULL,
|
|
"device_id" TEXT NOT NULL,
|
|
"platform" TEXT NOT NULL,
|
|
"model" TEXT,
|
|
"name" TEXT,
|
|
"last_seen_at" TIMESTAMP(3) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"created_at" TIMESTAMP(3) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS "user_devices_user_id_device_id_key"
|
|
ON "rebreak"."user_devices"("user_id", "device_id");
|
|
|
|
CREATE INDEX IF NOT EXISTS "user_devices_user_id_idx"
|
|
ON "rebreak"."user_devices"("user_id");
|