diff --git a/apps/web/app/(admin)/memberships/page.tsx b/apps/web/app/(admin)/memberships/page.tsx index 4702712..4e2c1c9 100644 --- a/apps/web/app/(admin)/memberships/page.tsx +++ b/apps/web/app/(admin)/memberships/page.tsx @@ -68,10 +68,10 @@ interface MembershipsResponse { } const statusFilters = [ - { value: "", label: "Todos" }, - { value: "ACTIVE", label: "Activas" }, - { value: "EXPIRED", label: "Expiradas" }, - { value: "CANCELLED", label: "Canceladas" }, + { value: "", label: "All" }, + { value: "ACTIVE", label: "Active" }, + { value: "EXPIRED", label: "Expired" }, + { value: "CANCELLED", label: "Cancelled" }, ]; export default function MembershipsPage() { @@ -104,12 +104,12 @@ export default function MembershipsPage() { setLoadingPlans(true); try { const response = await fetch("/api/membership-plans?includeInactive=true"); - if (!response.ok) throw new Error("Error al cargar planes"); + if (!response.ok) throw new Error("Error loading plans"); const data = await response.json(); setPlans(data); } catch (err) { console.error("Error fetching plans:", err); - setError(err instanceof Error ? err.message : "Error desconocido"); + setError(err instanceof Error ? err.message : "Unknown error"); } finally { setLoadingPlans(false); } @@ -125,7 +125,7 @@ export default function MembershipsPage() { if (searchQuery) params.append("search", searchQuery); const response = await fetch(`/api/memberships?${params.toString()}`); - if (!response.ok) throw new Error("Error al cargar membresias"); + if (!response.ok) throw new Error("Error loading memberships"); const data: MembershipsResponse = await response.json(); setMemberships(data.data); @@ -138,7 +138,7 @@ export default function MembershipsPage() { }); } catch (err) { console.error("Error fetching memberships:", err); - setError(err instanceof Error ? err.message : "Error desconocido"); + setError(err instanceof Error ? err.message : "Unknown error"); } finally { setLoadingMemberships(false); } @@ -209,7 +209,7 @@ export default function MembershipsPage() { if (!response.ok) { const errorData = await response.json(); - throw new Error(errorData.error || "Error al guardar plan"); + throw new Error(errorData.error || "Error saving plan"); } setShowPlanForm(false); @@ -224,7 +224,7 @@ export default function MembershipsPage() { // Handle plan deletion const handleDeletePlan = async (plan: MembershipPlan) => { - if (!confirm(`¿Estas seguro de eliminar el plan "${plan.name}"? Esta accion lo desactivara.`)) { + if (!confirm(`Are you sure you want to delete the plan "${plan.name}"? This action will deactivate it.`)) { return; } @@ -235,13 +235,13 @@ export default function MembershipsPage() { if (!response.ok) { const errorData = await response.json(); - throw new Error(errorData.error || "Error al eliminar plan"); + throw new Error(errorData.error || "Error deleting plan"); } await fetchPlans(); } catch (err) { console.error("Error deleting plan:", err); - setError(err instanceof Error ? err.message : "Error desconocido"); + setError(err instanceof Error ? err.message : "Unknown error"); } }; @@ -262,7 +262,7 @@ export default function MembershipsPage() { if (!response.ok) { const errorData = await response.json(); - throw new Error(errorData.error || "Error al asignar membresia"); + throw new Error(errorData.error || "Error assigning membership"); } setShowAssignDialog(false); @@ -295,19 +295,19 @@ export default function MembershipsPage() { if (!response.ok) { const errorData = await response.json(); - throw new Error(errorData.error || "Error al renovar membresia"); + throw new Error(errorData.error || "Error renewing membership"); } await Promise.all([fetchMemberships(), fetchPlans()]); } catch (err) { console.error("Error renewing membership:", err); - setError(err instanceof Error ? err.message : "Error desconocido"); + setError(err instanceof Error ? err.message : "Unknown error"); } }; // Handle membership cancellation const handleCancelMembership = async (membership: Membership) => { - if (!confirm(`¿Estas seguro de cancelar la membresia de ${membership.client.firstName} ${membership.client.lastName}?`)) { + if (!confirm(`Are you sure you want to cancel the membership for ${membership.client.firstName} ${membership.client.lastName}?`)) { return; } @@ -318,13 +318,13 @@ export default function MembershipsPage() { if (!response.ok) { const errorData = await response.json(); - throw new Error(errorData.error || "Error al cancelar membresia"); + throw new Error(errorData.error || "Error cancelling membership"); } await Promise.all([fetchMemberships(), fetchPlans()]); } catch (err) { console.error("Error cancelling membership:", err); - setError(err instanceof Error ? err.message : "Error desconocido"); + setError(err instanceof Error ? err.message : "Unknown error"); } }; @@ -336,9 +336,9 @@ export default function MembershipsPage() { {/* Header */}
- Gestiona planes y membresias de tus clientes + Manage plans and memberships for your players
Membresias Activas
+Active Memberships
{stats.totalActive}
Por Expirar
+Expiring Soon
{stats.expiringSoon}
Planes Activos
+Active Plans
{activePlans.length}
Total Suscriptores
+Total Subscribers
{plans.reduce((sum, p) => sum + p.subscriberCount, 0)}
@@ -441,12 +441,12 @@ export default function MembershipsPage() { {/* Plans Section */}Cargando planes...
+Loading plans...
No hay planes
-Crea tu primer plan de membresia
+No plans
+Create your first membership plan
@@ -496,12 +496,12 @@ export default function MembershipsPage() { {/* Memberships Section */}{freeHours} horas gratis
-de cancha al mes
+{freeHours} free hours
+of court time per month
{discountPercent}% descuento
-en reservas adicionales
+{discountPercent}% discount
+on additional bookings
{storeDiscount}% descuento
-en tienda
+{storeDiscount}% discount
+in store
Beneficios adicionales:
+Additional benefits: