function isGoogleUser (user) { return user?.auth_provider === 'google' || Boolean(user?.google_id) } function isInstagramUser (user) { return user?.auth_provider === 'instagram' || Boolean(user?.instagram_id) } /** Social logins (Google, Instagram) skip the mobile-password step — they authenticate via the provider instead. */ function isSocialUser (user) { return isGoogleUser(user) || isInstagramUser(user) } function isBasicRegistrationComplete (user) { // کاربرِ زیرمجموعه همون لحظه‌ی ساخت توسطِ صاحبِ اکانت کامل ساخته می‌شه (نام، // نام‌کاربری، رمز) — user_type براش معنا نداره، پس نباید وارد ویزاردِ ثبت‌نام بشه if (user?.is_sub_user) { return Boolean(user?.user_name && user?.password && user?.first_name) } const hasPassword = isSocialUser(user) || Boolean(user?.password) return Boolean( user?.user_name && hasPassword && user?.first_name && user?.user_type ) } function getRegistrationStep (user) { if (user?.is_sub_user) return 'complete' if (!user?.user_name) return 'user_name' if (!isSocialUser(user) && !user.password) return 'password' if (!user.first_name) return 'first_name' if (!user.user_type) return 'registration_choice' return 'complete' } function isRegistrationIncomplete (user) { return !isBasicRegistrationComplete(user) } /** * کاربر گوگلی/اینستاگرامی که هنوز نام‌کاربری یا رمز عبور ندارد — قبل از اولین * پیام یا ثبت درخواست همکاری باید تکمیلش کند (مودال ست‌کردن نام‌کاربری+رمز). */ function needsUsernameAndPassword (user) { return isSocialUser(user) && (!user?.user_name || !user?.password) } function buildAuthResponse (user, token) { const step = getRegistrationStep(user) const incomplete = isRegistrationIncomplete(user) return { message: 'ورود با موفقیت', token, step, auth_provider: user.auth_provider || (user.google_id ? 'google' : user.instagram_id ? 'instagram' : 'mobile'), email: user.email || null, id: user._id != null ? String(user._id) : undefined, page: incomplete ? 'auth-page' : 'home', user_type: incomplete ? null : user.user_type, registrationComplete: !incomplete, is_sub_user: Boolean(user.is_sub_user), sub_user_permissions: user.is_sub_user ? (user.sub_user_permissions || []) : undefined, } } module.exports = { isGoogleUser, isInstagramUser, isSocialUser, isBasicRegistrationComplete, getRegistrationStep, isRegistrationIncomplete, needsUsernameAndPassword, buildAuthResponse }