// Form validation functions for store creation

export const validateUsername = (username: string): string | null => {
  if (!username.trim()) {
    return "نام کاربری الزامی است";
  }
  if (username.length < 3) {
    return "نام کاربری باید حداقل ۳ کاراکتر باشد";
  }
  if (username.length > 30) {
    return "نام کاربری نباید بیشتر از ۳۰ کاراکتر باشد";
  }
  if (!/^[a-zA-Z0-9._]+$/.test(username)) {
    return "نام کاربری فقط می‌تواند شامل حروف انگلیسی، اعداد، نقطه و آندرلاین باشد";
  }
  if (username.startsWith(".") || username.endsWith(".")) {
    return "نام کاربری نمی‌تواند با نقطه شروع یا تمام شود";
  }
  if (username.includes("..")) {
    return "نام کاربری نمی‌تواند شامل دو نقطه پشت سر هم باشد";
  }
  return null;
};

export const validateInstagramId = (instagramId: string): string | null => {
  if (!instagramId.trim()) {
    return "آیدی اینستاگرام الزامی است";
  }
  if (instagramId.length < 1) {
    return "آیدی اینستاگرام الزامی است";
  }
  if (instagramId.length > 30) {
    return "آیدی اینستاگرام نباید بیشتر از ۳۰ کاراکتر باشد";
  }
  if (!/^[a-zA-Z0-9._]+$/.test(instagramId)) {
    return "آیدی اینستاگرام فقط می‌تواند شامل حروف انگلیسی، اعداد، نقطه و آندرلاین باشد";
  }
  if (instagramId.startsWith(".") || instagramId.endsWith(".")) {
    return "آیدی اینستاگرام نمی‌تواند با نقطه شروع یا تمام شود";
  }
  if (instagramId.includes("..")) {
    return "آیدی اینستاگرام نمی‌تواند شامل دو نقطه پشت سر هم باشد";
  }
  return null;
};

export const validateStoreName = (storeName: string): string | null => {
  if (!storeName.trim()) {
    return "نام فروشگاه الزامی است";
  }
  if (storeName.trim().length < 2) {
    return "نام فروشگاه باید حداقل ۲ کاراکتر باشد";
  }
  if (storeName.trim().length > 50) {
    return "نام فروشگاه نباید بیشتر از ۵۰ کاراکتر باشد";
  }
  return null;
};

export const validateStoreDescription = (
  description: string
): string | null => {
  if (!description.trim()) {
    return "توضیحات فروشگاه الزامی است";
  }
  if (description.trim().length < 10) {
    return "توضیحات فروشگاه باید حداقل ۱۰ کاراکتر باشد";
  }
  if (description.trim().length > 500) {
    return "توضیحات فروشگاه نباید بیشتر از ۵۰۰ کاراکتر باشد";
  }
  return null;
};
