Skip to content

Conversation

@IvanM9
Copy link
Contributor

@IvanM9 IvanM9 commented Nov 26, 2025

Resumen de Cambios

Este PR soluciona el issue #48 y migra la creación de datos iniciales (géneros, categorías) a migraciones de Prisma.

1. Fix Issue #48: Error al guardar prenda

Archivo: src/modules/wardrobe/services/wardrobe.service.ts

  • El método verifyItemInCategories ahora filtra por status: true y userId
  • Agregado parámetro excludeItemId para evitar conflictos al editar una prenda
  • Esto permite crear prendas con el mismo nombre que prendas eliminadas previamente

2. Migración de géneros a Prisma

Archivo: prisma/migrations/20251125024400_v1_7_seed_categories/migration.sql

  • Agregado género "Prefiero no decirlo" a la migración SQL
  • Los géneros ahora se crean desde la migración en lugar del código

3. Limpieza de código - GendersService

Archivo: src/modules/users/services/genders.service.ts

  • Eliminado método createDefaultGenders() (ahora se maneja en la migración)
  • Eliminada dependencia de AdminService y GenderEnum

4. Limpieza de código - CategoriesService

Archivo: src/modules/categories/services/categories.service.ts

  • Eliminado método createDefaultCategories() (ahora se maneja en la migración)
  • Eliminadas importaciones de fs, path y AdminService
  • Esto resuelve el error de Docker: ENOENT: no such file or directory, open '/usr/src/app/resources/categories.json'

5. AdminService con OnModuleInit

Archivo: src/modules/admin/services/admin.service.ts

  • Implementado OnModuleInit para crear el admin al iniciar el módulo
  • Método createAdmin() ahora es privado

6. Limpieza de módulos

  • UsersModule: Eliminada importación de AdminModule
  • CategoriesModule: Eliminada importación de AdminModule

Flujo actual de inicialización

  1. Migración de Prisma: Crea géneros y categorías
  2. AdminService.onModuleInit(): Crea el usuario administrador al iniciar la aplicación

Issues relacionados

Closes #48

@IvanM9 IvanM9 requested a review from Copilot November 26, 2025 23:22
@IvanM9 IvanM9 added the bug Something isn't working label Nov 26, 2025
@IvanM9 IvanM9 requested a review from josueJouvin November 26, 2025 23:24
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses issue #48 by fixing duplicate wardrobe item detection and modernizes the application's data initialization strategy by migrating seed data creation from service constructors to Prisma migrations.

Key Changes

  • Fixed duplicate item detection to properly filter by status: true and userId, allowing users to create items with the same name as previously deleted items
  • Migrated initial data seeding (genders and categories) from service constructors to Prisma migrations, resolving Docker filesystem issues
  • Implemented NestJS OnModuleInit lifecycle hook for admin user creation

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/modules/wardrobe/services/wardrobe.service.ts Enhanced verifyItemInCategories to filter by status and userId, added excludeItemId parameter to prevent false positives when updating items, and inlined status verification in update method
prisma/migrations/20251125024400_v1_7_seed_categories/migration.sql Added "Prefiero no decirlo" gender option to migration and fixed SQL formatting
src/modules/users/services/genders.service.ts Removed createDefaultGenders method and unnecessary dependencies (CategoriesService, GenderEnum import)
src/modules/categories/services/categories.service.ts Removed createDefaultCategories method and file system dependencies (fs, path, AdminService) that caused Docker errors
src/modules/users/users.module.ts Removed unnecessary CategoriesModule import
src/modules/categories/categories.module.ts Removed unnecessary AdminModule import
src/modules/admin/services/admin.service.ts Implemented OnModuleInit interface for proper initialization lifecycle and made createAdmin private

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@josueJouvin josueJouvin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Segun lo que veo valida por categoria, y si la prenda esta deshabilitada da un mensaje de que la prenda que se quiere agregar esta deshabilitada y el usuario tendria que volver a activarla o funciana normal, osea aunque tenga el mismo nombre y categorias deja que se guarde e internamente solo hace cambio de status?

@IvanM9
Copy link
Contributor Author

IvanM9 commented Nov 27, 2025

Segun lo que veo valida por categoria, y si la prenda esta deshabilitada da un mensaje de que la prenda que se quiere agregar esta deshabilitada y el usuario tendria que volver a activarla o funciana normal, osea aunque tenga el mismo nombre y categorias deja que se guarde e internamente solo hace cambio de status?

Se va a trabajar en un próximo PR la reactivación de la prenda, si está desactivada y tiene el mismo nombre, al momento de hacer una petición al endpoint de 'create'

@IvanM9 IvanM9 merged commit d59c7f3 into main Nov 27, 2025
7 checks passed
@IvanM9 IvanM9 mentioned this pull request Dec 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error al guardar prenda

3 participants