- Create TicketValiditySchemaTest to verify database schema for ticket validity. - Update CatalogModelsTest to include tests for event date attributes and selection options. - Introduce EventDateTextFormatterTest for formatting event dates in Spanish. - Refactor EventModelsTest to include validity time relationships. - Add SaleDetailResourceTest to ensure correct serialization of purchase items. - Enhance TicketTest with validity time checks and status management. - Implement ValidityTimeResourceTest to validate resource output for different validity types. - Add ValidityTimeTest to verify casting and validity checks for validity time types.
1.4 KiB
1.4 KiB
Dominio Attachable
Propósito
Centraliza el almacenamiento y la metadata de archivos adjuntos. Acepta archivos subidos o contenido Base64, los persiste en S3 y registra su tipo, MIME, extensión, tamaño, nombre original y clave única.
Componentes principales
Models/Attachment.php: representa un adjunto y genera URL temporales de acceso.Services/AttachmentService.php: almacena, copia y elimina archivos, compensando en S3 si falla la escritura en base de datos.Enums/AttachmentType.php: clasifica imágenes, videos, PDF, audio, documentos y otros archivos.Exceptions/AttachmentStorageException.php: expresa fallos propios del almacenamiento.
Flujo principal
- El consumidor entrega un
UploadedFileo una cadena Base64 y un directorio. - El servicio valida el contenido, detecta MIME/extensión y genera una clave UUID.
- El archivo se guarda en el disco
s3. - Se crea el registro
Attachment; ante error se elimina el objeto que había sido subido.
API y dependencias
No expone rutas HTTP propias. Lo consumen otros dominios, especialmente Catalog y Tenant. Depende de Laravel Storage, Symfony Mime y del modelo Attachment.
Consideraciones
- El directorio no puede quedar vacío después de normalizarlo.
- La eliminación se considera fallida si S3 no confirma el borrado.
- Las URL generadas son temporales; el vencimiento predeterminado es de 10 minutos.