This commit is contained in:
freedakgmail
2025-11-29 21:23:45 +08:00
parent 7442939ade
commit dca082e0a3
189 changed files with 1491 additions and 486 deletions
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "User" ADD COLUMN "isActive" BOOLEAN NOT NULL DEFAULT true,
ADD COLUMN "isAdmin" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,23 @@
-- CreateTable
CREATE TABLE "LoginLog" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"email" TEXT NOT NULL,
"userName" TEXT,
"ip" TEXT,
"userAgent" TEXT,
"success" BOOLEAN NOT NULL DEFAULT true,
"message" TEXT,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "LoginLog_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "LoginLog_userId_idx" ON "LoginLog"("userId");
-- CreateIndex
CREATE INDEX "LoginLog_createdAt_idx" ON "LoginLog"("createdAt");
-- AddForeignKey
ALTER TABLE "LoginLog" ADD CONSTRAINT "LoginLog_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+22
View File
@@ -20,6 +20,8 @@ model User {
name String?
password String
avatar String?
isAdmin Boolean @default(false) // 是否为管理员
isActive Boolean @default(true) // 是否启用
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@ -27,6 +29,7 @@ model User {
ownedTrees FamilyTree[] @relation("TreeOwner")
collaborations TreeCollaborator[]
activityLogs ActivityLog[]
loginLogs LoginLog[]
}
// 家族树表
@@ -197,3 +200,22 @@ model MemberHistory {
@@index([changedAt])
@@unique([memberId, version])
}
// 登录日志表
model LoginLog {
id String @id @default(cuid())
userId String
email String
userName String?
ip String?
userAgent String?
success Boolean @default(true)
message String? // 失败原因
createdAt DateTime @default(now())
// 关系
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@index([userId])
@@index([createdAt])
}