feat: add local signup and Kakao verification gate

This commit is contained in:
2026-07-26 10:17:16 +00:00
parent c364552960
commit a7bb352ba2
41 changed files with 2293 additions and 95 deletions
@@ -0,0 +1,26 @@
ALTER TABLE "app_user"
ADD COLUMN "terms_accepted_at" TIMESTAMP(3),
ADD COLUMN "privacy_accepted_at" TIMESTAMP(3),
ADD COLUMN "kakao_verified_at" TIMESTAMP(3),
ADD COLUMN "kakao_grace_started_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
UPDATE "app_user"
SET "kakao_verified_at" = COALESCE("updated_at", "created_at")
WHERE "oauth_type" = 'KAKAO'
AND "kakao_verified_at" IS NULL;
DO $$
BEGIN
IF EXISTS (
SELECT 1
FROM "app_user"
GROUP BY "display_name"
HAVING COUNT(*) > 1
) THEN
RAISE EXCEPTION
'Cannot enforce unique app_user.display_name: resolve duplicate display names before applying this migration.';
END IF;
END
$$;
CREATE UNIQUE INDEX "app_user_display_name_key" ON "app_user"("display_name");
+5 -1
View File
@@ -53,7 +53,7 @@ enum GatewaySourceMode {
model AppUser {
id String @id @default(uuid())
loginId String @unique @map("login_id")
displayName String @map("display_name")
displayName String @unique @map("display_name")
passwordHash String @map("password_hash")
passwordSalt String @map("password_salt")
roles Json @default(dbgenerated("'[]'::jsonb"))
@@ -66,6 +66,10 @@ model AppUser {
imageServer Int @default(0) @map("image_server")
iconUpdatedAt DateTime? @map("icon_updated_at")
thirdPartyUse Boolean @default(true) @map("third_party_use")
termsAcceptedAt DateTime? @map("terms_accepted_at")
privacyAcceptedAt DateTime? @map("privacy_accepted_at")
kakaoVerifiedAt DateTime? @map("kakao_verified_at")
kakaoGraceStartedAt DateTime @default(now()) @map("kakao_grace_started_at")
deleteAfter DateTime? @map("delete_after")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")