You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Dev (#19)
* feat(auth): add password reset schemas (US-03)
* feat: add schemas and types for user profile and vehicle management
* feat(us-21): add favorite schemas, recover missing auth/vehicle schemas
## Especificación funcional
### Nuevos schemas — Gestión de favoritos (US-21)
`src/schemas/favorite.schema.ts` define el contrato entre `api` y `web`
para el feature de favoritos del conductor:
- `AddFavoriteRequestSchema` — body del POST /favorites: { vehicleId: UUID }
- `AddFavoriteResponseSchema` — respuesta 201: { id, vehicleId, conductorId, createdAt (ISO) }
- `FavoriteItemSchema` — elemento individual en la lista: { id, vehicleId, createdAt }
- `ListFavoritesResponseSchema` — respuesta del GET /favorites: { items: FavoriteItem[] }
Todos los IDs son UUID v4 (z.string().uuid()). Las fechas son ISO 8601
(z.string().datetime()). Sigue las convenciones del paquete (money en cents,
fechas ISO, IDs UUID).
### Nuevos error codes
`src/errors/error-codes.ts` agrega dos códigos al enum:
- `FAVORITE_ALREADY_EXISTS` — el conductor ya tiene ese vehículo en favoritos (→ 409)
- `FAVORITE_NOT_FOUND` — se intenta eliminar un favorito que no existe (→ 404)
El `api` mapea estos códigos en su `DomainExceptionFilter`.
El `web` puede ramificar sobre ellos sin usar el HTTP status directamente.
### Recuperación de schemas pre-existentes
`src/auth/login.ts` y `src/auth/vehicle.ts` existían en `main` pero no
habían sido mergeados a `dev`. Al crear la rama `us-21` desde `dev`, estos
archivos no estaban presentes. Fueron recuperados del paquete publicado
v0.1.3 para mantener compatibilidad con el `api` (que importa
`CreateVehicleRequestSchema`, `LoginUserRequestSchema`, etc.).
Sin estos archivos, el `api` en rama `us-21` fallaba al importar schemas
que no encontraba en el contracts local (cuando se usa `pnpm link` para
desarrollo cross-repo sin publicar).
`src/index.ts` ahora exporta los 6 módulos: register, login, vehicle,
error-codes, problem-details, favorite.schema.
### Tests
`test/schemas/favorite.schema.test.ts` — 16 casos Vitest:
- parse con valores válidos para cada schema
- rechazo de UUID mal formado, datetime inválido, campos faltantes
- rechazo de vehicleId inválido dentro de un array (ListFavorites)
Ejecutar: `pnpm test` (requiere Node ≥ 22 y pnpm ≥ 11)
Resultado verificado: 24/24 tests pasan (8 pre-existentes + 16 nuevos)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: vehicle dtos
* feat: manage vehicle dtos (#13)
* feat: vehicle dtos
* fix: vehicle file and adding field in get response dto
* fix: manage vehicle dtos (#14)
* feat: vehicle dtos
* fix: manage vehicle dtos
* merge dev into us-21 and resolve conflicts
Agent-Logs-Url: https://github.com/rocket-lease/contracts/sessions/db5e165c-04f0-40a1-9b81-0f1e7ac44b98
Co-authored-by: echepereza <142249406+echepereza@users.noreply.github.com>
* fix: missing `isAccessible` field in create vehicle dto (#15)
* feat: vehicle dtos
* fix: manage vehicle dtos
* chore(us-21): remove dead auth/vehicle.ts recovered in previous commit
src/vehicle/vehicle.ts (from dev) supersedes the compatibility copy we
added in auth/vehicle.ts. The public index.ts already exports from
vehicle/vehicle, so auth/vehicle.ts was unreachable dead code.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: drop misplaced auth/vehicle.ts (vehicle schemas live in their own module)
* Nuevos campos en publish y get vehicle
* fix: strict UpdateVehicleSchema
---------
Co-authored-by: Aizen Sanchez <127356367+AizenSanchez@users.noreply.github.com>
Co-authored-by: echepereza <epereza@fi.uba.ar>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: SantinoZucconi <santinozucconi@gmail.com>
Co-authored-by: Santino Zucconi <107319354+SantinoZucconi@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: echepereza <142249406+echepereza@users.noreply.github.com>
Co-authored-by: juanma <drjuanma2712@gmail.com>