export const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

export const DEAL_STAGES = ["NEW", "CONTACTED", "QUALIFIED", "PROPOSAL", "WON", "LOST"] as const;
export const CONTACT_STATUSES = ["ACTIVE", "UNASSIGNED", "ARCHIVED"] as const;

export function isValidDealStage(value: unknown): value is (typeof DEAL_STAGES)[number] {
  return typeof value === "string" && (DEAL_STAGES as readonly string[]).includes(value);
}

export function isValidContactStatus(value: unknown): value is (typeof CONTACT_STATUSES)[number] {
  return typeof value === "string" && (CONTACT_STATUSES as readonly string[]).includes(value);
}

export function isValidTags(value: unknown): value is string[] {
  return Array.isArray(value) && value.every((t) => typeof t === "string" && t.length <= 40);
}
