import { AuthMethodCategory, AuthMethodType } from "./types.js";
import React from "react";
import { locales } from "@pisell/utils";
import { AppleOutlined, FacebookOutlined, LockOutlined, MailOutlined, PhoneOutlined, UserOutlined } from "@ant-design/icons";
//#region src/components/authentication/admin/AuthMethods/constants.tsx
/**
* 获取默认的认证方法列表（支持多语言）
* 每次调用都会根据当前语言设置返回对应的文本
* @returns 认证方法数组
*/
const getDefaultAuthMethods = () => [
	{
		id: "email",
		type: AuthMethodType.EMAIL,
		title: locales.getText("auth.method.email.title") || "Email",
		category: AuthMethodCategory.GENERAL,
		description: locales.getText("auth.method.email.description") || "Register and log in via email",
		icon: /* @__PURE__ */ React.createElement(MailOutlined, { style: {
			fontSize: 20,
			color: "#4096ff"
		} }),
		enabled: false,
		hasSettings: true
	},
	{
		id: "phone",
		type: AuthMethodType.PHONE,
		title: locales.getText("auth.method.phone.title") || "Phone Number",
		category: AuthMethodCategory.GENERAL,
		description: locales.getText("auth.method.phone.description") || "Register and log in via phone number",
		icon: /* @__PURE__ */ React.createElement(PhoneOutlined, { style: {
			fontSize: 20,
			color: "#4096ff"
		} }),
		enabled: false,
		hasSettings: true
	},
	{
		id: "facebook",
		type: AuthMethodType.FACEBOOK,
		title: locales.getText("auth.method.facebook.title") || "Facebook",
		category: AuthMethodCategory.OAUTH,
		description: locales.getText("auth.method.facebook.description") || "Log in with Facebook account",
		icon: /* @__PURE__ */ React.createElement(FacebookOutlined, { style: {
			fontSize: 20,
			color: "#1877f2"
		} }),
		enabled: false,
		hasSettings: false,
		requiresOAuthConfig: true,
		configLink: "auth.oauth.config.message"
	},
	{
		id: "apple",
		type: AuthMethodType.APPLE,
		title: locales.getText("auth.method.apple.title") || "Apple",
		category: AuthMethodCategory.OAUTH,
		description: locales.getText("auth.method.apple.description") || "Log in with Apple ID",
		icon: /* @__PURE__ */ React.createElement(AppleOutlined, { style: {
			fontSize: 20,
			color: "#000000"
		} }),
		enabled: false,
		hasSettings: false,
		requiresOAuthConfig: true,
		configLink: "auth.oauth.config.message"
	},
	{
		id: "guest",
		type: AuthMethodType.GUEST,
		title: locales.getText("auth.method.guest.title") || "Guest",
		category: AuthMethodCategory.AUTH_FREE,
		description: locales.getText("auth.method.guest.description") || "Allow guests to access without registration process",
		icon: /* @__PURE__ */ React.createElement(UserOutlined, { style: {
			fontSize: 20,
			color: "#8c8c8c"
		} }),
		enabled: false,
		hasSettings: false
	}
];
getDefaultAuthMethods();
/**
* 获取密码规则设置项（支持多语言）
* 每次调用都会根据当前语言设置返回对应的文本
* @param id - 密码规则的唯一标识符，用于区分不同场景下的密码规则
* @returns 密码规则设置数组
*/
const getPasswordRulesSetting = (id = "password_rules") => [{
	id,
	type: AuthMethodType.PASSWORD_RULES,
	title: locales.getText("auth.password.rules.title") || "Password Rules",
	category: AuthMethodCategory.GENERAL,
	description: locales.getText("auth.password.rules.description") || "Define password complexity requirements for accounts",
	icon: /* @__PURE__ */ React.createElement(LockOutlined, { style: {
		fontSize: 20,
		color: "#4096ff"
	} }),
	enabled: true,
	hasSettings: true
}];
//#endregion
export { getDefaultAuthMethods, getPasswordRulesSetting };
