Key Database Schema - User & AuthenticationKey Database Schema - User & AuthenticationUserAccountUserAccountId: INT «PK»Username: NVARCHAR(30) «UNIQUE»Email: NVARCHAR(255) «UNIQUE»FirstName: NVARCHAR(50)LastName: NVARCHAR(50)Bio: NVARCHAR(500)CreatedAt: DATETIME2UpdatedAt: DATETIME2LastLoginAt: DATETIME2UserCredentialUserCredentialId: INT «PK»UserAccountId: INT «FK»PasswordHash: VARBINARY(32)PasswordSalt: VARBINARY(16)CredentialRotatedAt: DATETIME2CredentialExpiresAt: DATETIME2CredentialRevokedAt: DATETIME2IsActive: BITCreatedAt: DATETIME2UserVerificationUserVerificationId: INT «PK»UserAccountId: INT «FK»IsVerified: BITVerifiedAt: DATETIME2VerificationToken: NVARCHAR(255)TokenExpiresAt: DATETIME2UserAvatarUserAvatarId: INT «PK»UserAccountId: INT «FK»PhotoId: INT «FK»IsActive: BITCreatedAt: DATETIME2UserFollowUserFollowId: INT «PK»FollowerUserId: INT «FK»FollowedUserId: INT «FK»CreatedAt: DATETIME2PhotoPhotoId: INT «PK»Url: NVARCHAR(500)CloudinaryPublicId: NVARCHAR(255)Width: INTHeight: INTFormat: NVARCHAR(10)CreatedAt: DATETIME2Password hashing:- Algorithm: Argon2id- Memory: 64MB- Iterations: 4- Salt: 128-bit- Hash: 256-bitAccount verificationvia email tokenwith expiryCore stored procedures:- USP_RegisterUser- USP_GetUserAccountByUsername- USP_RotateUserCredential- USP_UpdateUserAccounthashashasfollowsfollowed byrefers to