Skip to content

Brand Funcionality Logic #8

@Kentliel

Description

@Kentliel

Id:UUID -----> ID de la marca
name: String --> nombre de la marca o como se conoce
nif: String -------------> DNI de la empresa
logoUrl: String --------> link con el icono que representa la marca
country: String -----------> pais de la marca
website: String -----------> pagina web de la marca
logo: String ----------------> logo de la marca
active: Boolean ----------> si la marca esta activa
createdAt: LocalDateTime --------> cuando se registro la marca por primera vez en el ecommers
updateAt: LocalDateTime ----------> cuando hace un cambio de datos la marca, ejemplo cambia de dominio o logo

falta poner la relacion con producto, ya que una marcar tiene muchos productos es decir (MANY TO ONE)


Crear BrandController REST y MVC
Título: Implementar BrandController CRUD (REST + MVC)
Descripción: Endpoints CRUD: GET /api/brands, GET /api/brands/{id}, POST /api/brands, PUT /api/brands/{id}, DELETE /api/brands/{id}, GET /api/brands/search?name=. Usar DTOs para entrada/salida y MapStruct o mapeo manual.
Checklist

[ ] DTOs Request/Response con validaciones Bean Validation.

[ ] Servicio intermedio BrandService para lógica.

[ ] Controlador REST con constructor injection (Lombok @requiredargsconstructor).

[ ] Respuestas con códigos HTTP correctos y manejo de errores global.
Criterios de aceptación: Endpoints devuelven JSON; POST devuelve 201 con Location; validaciones activas.
Estimación: 1.5 días. Labels: backend, api, spring-boot.
Notas técnicas: Seguir buenas prácticas de Spring Boot y separación Controller/Service/Repository.


Plantillas Thymeleaf
Título: Crear templates Thymeleaf para Brand (list, form, detail)
Checklist

[ ] brands/list.html, brands/form.html, brands/detail.html.

[ ] Formularios con validación HTML5 y mensajes de error del servidor.

[ ] Enlaces a productos de la marca.
Criterios de aceptación: Navegación completa CRUD desde UI; formularios muestran errores.
Estimación: 1 día. Labels: frontend, thymeleaf.
Notas técnicas: Basarse en patrón MVC de Spring + Thymeleaf para CRUD.


Tests Repository
Título: Tests unitarios para BrandRepository
Checklist

[ ] Test findByName positivo/negativo.

[ ] Test persistencia de createdAt y updatedAt.
Estimación: 0.5 día. Labels: test, unit.


Tests Controller
Título: Tests de integración BrandController con MockMvc
Checklist

[ ] CRUD completo con MockMvc.

[ ] Validaciones de entrada y errores 400/404.
Estimación: 1 día. Labels: test, integration.


Validación NIF / VAT EU
Título: Implementar validación NIF/VAT y verificación VIES
Descripción: Añadir validación local por formato y checksum para España y opción de verificación remota contra VIES; almacenar verifiedAt y verificationStatus.
Checklist

[ ] Crear anotación @VatOrNif y VatOrNifValidator.

[ ] Validación local por país; para EU opción de llamada a VIES y manejo de errores de servicio.

[ ] Guardar resultado y timestamp.
Criterios de aceptación: nif validado en POST/PUT; si country es EU y se solicita, se consulta VIES y se persiste resultado.
Estimación: 2–3 días. Labels: compliance, validation.
Notas técnicas: VIES es el sistema oficial para verificar VAT intracomunitario; usarlo para justificar exenciones IVA y guardar evidencia de la verificación.


Relación Brand Product
Título: Añadir relación OneToMany Brand→Product y política de borrado
Checklist

[ ] @onetomany(mappedBy="brand") en Brand.

[ ] @manytoone en Product.

[ ] Decidir política de borrado (RESTRICT / SET_NULL / CASCADE) y documentarla.
Estimación: 0.5 día. Labels: db, jpa.

Image

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions