feat: add phone field to User model and update authentication flow

- Added phone field to User model in Prisma schema and generated types.
- Updated backend authentication to include phone as an additional field.
- Implemented phone input in the signup form with validation.
- Created a new SignupPage component for user registration.
- Updated routing to include signup path and redirect authenticated users.
- Modified login page to reference Playzer and added link to signup.
This commit is contained in:
Jose Selesan
2026-06-01 16:43:52 -03:00
parent 4d3867614d
commit 2aaa91444d
14 changed files with 352 additions and 9 deletions

View File

@@ -9,6 +9,7 @@
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from './routes/__root'
import { Route as SignupRouteImport } from './routes/signup'
import { Route as SelectComplexRouteImport } from './routes/select-complex'
import { Route as ResetPasswordRouteImport } from './routes/reset-password'
import { Route as OnboardRouteImport } from './routes/onboard'
@@ -29,6 +30,11 @@ import { Route as ComplexSlugBookingIndexRouteImport } from './routes/$complexSl
import { Route as ComplexSlugBookingConfirmedBookingCodeRouteImport } from './routes/$complexSlug/booking/confirmed/$bookingCode'
import { Route as AppAuthenticatedComplexSlugEditRouteImport } from './routes/_app/_authenticated/complex/$slug/edit'
const SignupRoute = SignupRouteImport.update({
id: '/signup',
path: '/signup',
getParentRoute: () => rootRouteImport,
} as any)
const SelectComplexRoute = SelectComplexRouteImport.update({
id: '/select-complex',
path: '/select-complex',
@@ -133,6 +139,7 @@ export interface FileRoutesByFullPath {
'/onboard': typeof OnboardRouteWithChildren
'/reset-password': typeof ResetPasswordRoute
'/select-complex': typeof SelectComplexRoute
'/signup': typeof SignupRoute
'/$complexSlug/booking': typeof ComplexSlugBookingRouteWithChildren
'/profile': typeof AppProfileRoute
'/onboard/complete': typeof OnboardCompleteRoute
@@ -151,6 +158,7 @@ export interface FileRoutesByTo {
'/login': typeof LoginRoute
'/reset-password': typeof ResetPasswordRoute
'/select-complex': typeof SelectComplexRoute
'/signup': typeof SignupRoute
'/profile': typeof AppProfileRoute
'/onboard/complete': typeof OnboardCompleteRoute
'/onboard/create-complex': typeof OnboardCreateComplexRoute
@@ -170,6 +178,7 @@ export interface FileRoutesById {
'/onboard': typeof OnboardRouteWithChildren
'/reset-password': typeof ResetPasswordRoute
'/select-complex': typeof SelectComplexRoute
'/signup': typeof SignupRoute
'/_app/_authenticated': typeof AppAuthenticatedRouteRouteWithChildren
'/$complexSlug/booking': typeof ComplexSlugBookingRouteWithChildren
'/_app/profile': typeof AppProfileRoute
@@ -193,6 +202,7 @@ export interface FileRouteTypes {
| '/onboard'
| '/reset-password'
| '/select-complex'
| '/signup'
| '/$complexSlug/booking'
| '/profile'
| '/onboard/complete'
@@ -211,6 +221,7 @@ export interface FileRouteTypes {
| '/login'
| '/reset-password'
| '/select-complex'
| '/signup'
| '/profile'
| '/onboard/complete'
| '/onboard/create-complex'
@@ -229,6 +240,7 @@ export interface FileRouteTypes {
| '/onboard'
| '/reset-password'
| '/select-complex'
| '/signup'
| '/_app/_authenticated'
| '/$complexSlug/booking'
| '/_app/profile'
@@ -251,11 +263,19 @@ export interface RootRouteChildren {
OnboardRoute: typeof OnboardRouteWithChildren
ResetPasswordRoute: typeof ResetPasswordRoute
SelectComplexRoute: typeof SelectComplexRoute
SignupRoute: typeof SignupRoute
ComplexSlugBookingRoute: typeof ComplexSlugBookingRouteWithChildren
}
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
'/signup': {
id: '/signup'
path: '/signup'
fullPath: '/signup'
preLoaderRoute: typeof SignupRouteImport
parentRoute: typeof rootRouteImport
}
'/select-complex': {
id: '/select-complex'
path: '/select-complex'
@@ -462,6 +482,7 @@ const rootRouteChildren: RootRouteChildren = {
OnboardRoute: OnboardRouteWithChildren,
ResetPasswordRoute: ResetPasswordRoute,
SelectComplexRoute: SelectComplexRoute,
SignupRoute: SignupRoute,
ComplexSlugBookingRoute: ComplexSlugBookingRouteWithChildren,
}
export const routeTree = rootRouteImport