Commit Graph

354 Commits

Author SHA1 Message Date
ncoronel 8a65d358a4 feat(scanner): implement scan attempt tracking with new request and resource classes 2026-09-07 16:55:52 -03:00
ncoronel 193e10dc48 feat(scan): implement scan attempt tracking and validation logic 2026-09-07 16:39:14 -03:00
ncoronel b607c1b673 feat(scanner): refactor ticket scanning endpoint to accept UUID in request body and add validation 2026-09-07 16:18:16 -03:00
ncoronel e9521e65d0 Merge branch 'refactor/integrations' into dev 2026-09-07 11:12:16 -03:00
ncoronel d0625f25e5 refactor(integration): enhance association logic to delete unused instances and improve transaction handling 2026-09-07 11:09:08 -03:00
ncoronel 1fdcfc1547 Merge branch 'fix/sonder_bugs' into dev 2026-09-07 09:34:13 -03:00
ncoronel ca4ea0aa6c feat(tenant): add asset URL to tenant resource response 2026-09-07 09:20:46 -03:00
ncoronel 99fe94fa6a refactor(integration): streamline integration management by removing IntegrationInstanceController and updating related requests and services 2026-09-04 16:00:19 -03:00
ncoronel a4b5c2eb19 refactor(auth): remove role-based logic from scanner authentication and permissions 2026-09-04 15:33:01 -03:00
ncoronel a35ff69140 feat(users): enforce active email uniqueness per role 2026-09-04 14:17:37 -03:00
ncoronel 99594b17e7 fix(auth): resolve login identities by active email and role 2026-09-04 14:17:19 -03:00
ncoronel ab5ea7dd33 feat(integration): administrar instancias y asociaciones con permisos
Agrega endpoints para crear, editar y asociar instancias a clientes y tipos de sitio. Valida las credenciales contra el esquema del catalogo y devuelve metadatos sin secretos.

Restringe la administracion al rol admin autenticado y mantiene inmutables los codigos de integracion. Incluye pruebas de API, permisos, prioridad de resolucion, edicion compartida y renovacion de tokens.
2026-09-04 12:48:06 -03:00
ncoronel c0057c237a refactor(integration): resolver credenciales mediante instancias
Resuelve primero la instancia del cliente y luego la del tipo de sitio cuando existe contexto de tenant. Adapta SMTP y Telepagos, con tokens identificados por instancia y version de credenciales.

Separa la edicion de instancias de sus asociaciones y conserva el guardado por cliente creando una instancia nueva. Impide eliminar instancias en uso y adapta las pruebas existentes, incluida la herencia SMTP.
2026-09-04 12:47:47 -03:00
ncoronel e4146288f1 refactor(integration): generalizar el requisito de configuracion
Renombra requires_client_configuration a requires_configuration conservando los valores existentes y su rollback. Actualiza el modelo, la validacion, los seeders y los consumidores del campo para permitir configuraciones de cliente o tipo de sitio.
2026-09-04 12:47:29 -03:00
ncoronel ffa3f10b18 feat(scanner): implement category validation for AdminApp role and update tests 2026-09-04 10:40:46 -03:00
ncoronel 7acef66ee7 feat(notification): enhance password reset emails with custom templates for different scenarios 2026-09-04 10:31:16 -03:00
ncoronel 18f1217daa feat(admin): implement CRUD for administrators with role management and tenant restrictions 2026-09-04 10:28:33 -03:00
ncoronel deea4fd4af Merge branch 'test/stress' into dev 2026-09-04 08:21:50 -03:00
ncoronel c4ff695f2e refactor(ticket): simplify tenant validation and update command documentation 2026-09-03 14:30:38 -03:00
ncoronel 703158bd06 feat(ticket): implement LoadTestTicketDatasetService for generating load test datasets
- Added LoadTestTicketDatasetService to prepare disposable scanner tickets and generate a Postman importable dataset.
- Introduced console command `load-test🎟️prepare` for executing the dataset preparation.
- Updated README documentation with usage instructions for the load test command.
- Enhanced Postman collection generation script to include new parameters.
- Created tests for the load test command to ensure proper functionality and validation.
2026-09-03 14:15:23 -03:00
ncoronel eda2343380 fix(user): update hidden attributes and handle soft-deleted users in registration 2026-09-03 10:31:43 -03:00
ncoronel 0baad641d5 fix(auth): scope email uniqueness to active users 2026-09-03 09:59:21 -03:00
ncoronel ddb8c3743f fix(staff): preserve scanner history on deletion 2026-09-03 09:58:08 -03:00
ncoronel c2233389d0 feat(sale): implement modifications filtering and validation for admin sales 2026-09-03 08:39:45 -03:00
ncoronel 334ffe92e7 Merge branch 'fix/cancelledpurchase' into feature/tickets_adminapp 2026-09-02 15:53:12 -03:00
ncoronel a19ace3115 fix(purchase): handle cancellation of expired purchases and update test cases 2026-09-02 15:52:18 -03:00
ncoronel dcf105c316 feat(sales): filter and serialize admin statuses 2026-09-02 12:42:11 -03:00
ncoronel f74bf41931 feat(forms): expose grouped admin sale statuses 2026-09-02 12:42:00 -03:00
ncoronel ee906d2d2e Squashed commit of the following:
commit 6ae625d4fdc11989950ef0678db62fdb52be7c8c
Author: ncoronel <ncoronel@quo.ar>
Date:   Wed Sep 2 09:46:18 2026 -0300

    refactor(tickets): enhance search functionality for tickets by client names and formatted amounts

commit 098e525d32be9cb6487bc01a3d120aa0f2386a15
Author: ncoronel <ncoronel@quo.ar>
Date:   Wed Sep 2 09:09:30 2026 -0300

    fix(tickets): protect referenced purchase items

commit 210db17f2f6a6a4a509297b773a2b5d3e3149a3d
Author: ncoronel <ncoronel@quo.ar>
Date:   Wed Sep 2 08:59:24 2026 -0300

    test(tickets): cover purchase item references

commit 6a004713c4bad622dfa5e26394458925db1cb5a7
Author: ncoronel <ncoronel@quo.ar>
Date:   Wed Sep 2 08:59:02 2026 -0300

    refactor(tickets): reference purchase items directly
2026-09-02 09:47:04 -03:00
ncoronel 836aa1afd7 feat(tickets): refine FFI variant filters 2026-09-01 14:29:26 -03:00
ncoronel 80b8707771 fix(tickets): show numeric id and remove date column 2026-09-01 11:53:47 -03:00
ncoronel 2e9355c85c fix(tickets): disable inconsistent FFI product and type sorting 2026-08-31 13:54:30 -03:00
ncoronel fa1e11a69f feat(tickets): add tenant-aware server-side sorting 2026-08-31 13:54:30 -03:00
ncoronel fbfcb5cf63 feat(tickets): expose normalized values for dynamic columns 2026-08-31 13:54:30 -03:00
ncoronel adce4ab59e feat(tickets): define tenant-specific table columns 2026-08-31 13:54:30 -03:00
ncoronel 5250d1a818 feat(tickets): add PDF and Excel export endpoints 2026-08-31 13:54:30 -03:00
ncoronel 52b0b339d6 feat(tickets): add query_param to ticket filter fields in TicketFilterFormService and update related tests 2026-08-31 13:54:30 -03:00
ncoronel 9175df1d7f feat(tickets): enhance AdminAppTicketIndexRequest and AdminAppTicketService with additional filters and update tests for ticket filtering functionality 2026-08-31 13:54:30 -03:00
ncoronel 38341b2bda feat(tickets): update TicketFilterFormService to use getForFilters method and enhance TicketFormService with historical data handling 2026-08-31 13:54:30 -03:00
ncoronel 34a0a14404 feat(tickets): add TicketFilterFormController, TicketFilterFormService, and TicketFilterFormResource with routes and tests 2026-08-31 13:54:29 -03:00
ncoronel af516ce9e3 feat(tickets): add TicketFormController, TicketFormService, and TicketFormResource with related routes and tests 2026-08-31 13:53:18 -03:00
ncoronel dca35e7b0c feat(tickets): enhance AdminAppTicketResource and service with purchase details and update tests 2026-08-31 13:53:18 -03:00
ncoronel df853de843 feat(tickets): implement AdminAppTicketResource and update ticket collection to use it 2026-08-31 13:53:18 -03:00
ncoronel 4ba464bf85 feat(tickets): enhance ticket search functionality and add ticket counts to response 2026-08-31 13:53:18 -03:00
ncoronel 208e929262 feat(tickets): implement admin app ticket management with listing and search functionality 2026-08-31 13:53:17 -03:00
ncoronel ffe47d903e feat(menu): add tickets menu and update related seeder and tests 2026-08-31 13:53:17 -03:00
ncoronel 71c914a389 Merge branch 'main' into homo 2026-08-31 11:35:52 +00:00
ncoronel d4ec34db1a fix: update seating allocation for VIP section and adjust related test assertions 2026-08-28 13:41:37 -03:00
ncoronel 351178d9da Merge branch 'feature/candidate_payments' into homo_experimental 2026-08-27 16:52:08 -03:00
ncoronel b617285148 feat(payments): rename match reason from 'exact_amount_different_dni' to 'exact_amount_near_dni' 2026-08-27 16:40:32 -03:00
ncoronel 9bca41bfa5 feat(payments): filter candidates by DNI distance 2026-08-27 16:04:12 -03:00
ncoronel 5601285369 feat(payments): expose primary transfer candidate 2026-08-27 15:38:24 -03:00
ncoronel 6fb60c9a73 feat(payments): track transfer match candidates 2026-08-27 15:21:28 -03:00
ncoronel c820741e5f feat(purchase): refactor stock reservation expiration handling and update related tests 2026-08-27 10:06:42 -03:00
ncoronel c67dfcc1a1 test(auth): cover password reset expiration 2026-08-27 10:06:41 -03:00
ncoronel c51e24311f Squashed commit of the following:
commit cd99a6489b
Merge: ebcbbb1 e63a036
Author: ncoronel <ncoronel@quo.ar>
Date:   Wed Aug 26 10:12:44 2026 -0300

    Merge branch 'fix/simplify_stock_reservations' of https://gitea.quo.ar/tbianchini/shopit-back into fix/simplify_stock_reservations

commit ebcbbb1774
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:33:39 2026 -0300

    fix(cart): reconcile expired cart mutations

commit 3dd378ed06
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:10:15 2026 -0300

    docs(stock): describe associated entity expiration

commit 4f705175bd
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:10:14 2026 -0300

    test(stock): cover propagated reservation expiration

commit 82570fe941
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:09:52 2026 -0300

    refactor(stock): propagate reservation expiration

commit d2a2b323e0
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:47 2026 -0300

    docs(stock): document terminal reservation recovery

commit ec67623b7b
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:47 2026 -0300

    test(stock): cover terminal reservation lifecycle

commit f6f138e180
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:41 2026 -0300

    refactor(stock): make expired reservations terminal

commit d612b7a118
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:30 2026 -0300

    docs(stock): describe unified expiration ownership

commit 49f42d4507
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:23 2026 -0300

    test(stock): cover authoritative reservation expiration

commit 1881cc1d4b
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:17 2026 -0300

    refactor(stock): make reservation expiration authoritative

commit 00ec37d8a0
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:34 2026 -0300

    docs(stock): document centralized reservation flow

commit d9f374c718
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:29 2026 -0300

    test(stock): cover aggregate reservation lifecycle

commit bbfdf8f342
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:23 2026 -0300

    refactor(stock): centralize reservation aggregate

commit 8a0f29bdae
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:33:39 2026 -0300

    fix(cart): reconcile expired cart mutations

commit 198ed400a9
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:10:15 2026 -0300

    docs(stock): describe associated entity expiration

commit 23d83166e6
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:10:14 2026 -0300

    test(stock): cover propagated reservation expiration

commit cb090402d0
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:09:52 2026 -0300

    refactor(stock): propagate reservation expiration

commit c120b6f7c0
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:47 2026 -0300

    docs(stock): document terminal reservation recovery

commit 1106fa28b4
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:47 2026 -0300

    test(stock): cover terminal reservation lifecycle

commit 896fb81bcf
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:41 2026 -0300

    refactor(stock): make expired reservations terminal

commit 8545fbc645
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:30 2026 -0300

    docs(stock): describe unified expiration ownership

commit dd6dcb708a
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:23 2026 -0300

    test(stock): cover authoritative reservation expiration

commit 624b246ff5
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:17 2026 -0300

    refactor(stock): make reservation expiration authoritative

commit 007b95b904
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:34 2026 -0300

    docs(stock): document centralized reservation flow

commit 0b3c8c93be
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:29 2026 -0300

    test(stock): cover aggregate reservation lifecycle

commit ede718e448
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:23 2026 -0300

    refactor(stock): centralize reservation aggregate

commit e63a03601a
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:33:39 2026 -0300

    fix(cart): reconcile expired cart mutations

commit 389373ad8c
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:10:15 2026 -0300

    docs(stock): describe associated entity expiration

commit ace02a3133
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:10:14 2026 -0300

    test(stock): cover propagated reservation expiration

commit d69a6210f6
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 16:09:52 2026 -0300

    refactor(stock): propagate reservation expiration

commit 3c0b43fea3
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:47 2026 -0300

    docs(stock): document terminal reservation recovery

commit 9b0008626b
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:47 2026 -0300

    test(stock): cover terminal reservation lifecycle

commit 61861e331a
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:58:41 2026 -0300

    refactor(stock): make expired reservations terminal

commit 2cc9d7dd97
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:30 2026 -0300

    docs(stock): describe unified expiration ownership

commit f982bcead1
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:23 2026 -0300

    test(stock): cover authoritative reservation expiration

commit 7a85e1731d
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:28:17 2026 -0300

    refactor(stock): make reservation expiration authoritative

commit 6db99e775a
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:34 2026 -0300

    docs(stock): document centralized reservation flow

commit e5f7ba3615
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:29 2026 -0300

    test(stock): cover aggregate reservation lifecycle

commit 24bfef431b
Author: ncoronel <ncoronel@quo.ar>
Date:   Tue Aug 25 15:05:23 2026 -0300

    refactor(stock): centralize reservation aggregate
2026-08-27 10:06:41 -03:00
ncoronel bbe3cf82f5 feat(bootstrap): expose website type favicon 2026-08-26 14:37:25 -03:00
ncoronel ff61a3d3b8 feat(tenant): share website type favicon attachment 2026-08-26 14:37:17 -03:00
ncoronel 8ed8a11b7b fix: define featured group codes in seeders 2026-08-26 11:30:00 -03:00
ncoronel dc33e5dc09 fix: consolidate purchase confirmation emails 2026-08-26 11:29:53 -03:00
ncoronel d0424c5589 feat(notification): enhance email logging and refactor event handling to use scalar identifiers 2026-08-26 09:38:19 -03:00
ncoronel 28d09dedab fix(queue): discard email jobs for deleted purchases 2026-08-26 09:15:11 -03:00
ncoronel 8220fb5aaf feat(notification): add PDF attachments to ticket availability emails 2026-08-26 08:54:15 -03:00
ncoronel 78ce263849 feat(notification): update email branding to use website type for welcome and password reset emails 2026-08-25 11:03:06 -03:00
ncoronel 0c8419a5eb feat(notification): implement branding for emails using WebsiteType and update templates 2026-08-25 11:03:06 -03:00
ncoronel c2921166bd feat(catalog): exclude out-of-stock items and update variant visibility logic 2026-08-25 10:49:05 -03:00
ncoronel 0f67e66b6b feat(category-visibility): add success messages for category visibility updates 2026-08-25 10:47:53 -03:00
ncoronel 725abed06a feat(category-visibility): implement category visibility controller and service with update functionality 2026-08-25 10:47:53 -03:00
ncoronel 743939fc63 feat(category-visibility): add success messages for category visibility updates 2026-08-25 10:47:53 -03:00
ncoronel eb50e65fef feat(purchase): add filtering for multiple statuses in purchase index and order by status then date 2026-08-25 10:47:53 -03:00
ncoronel 1cf13501d8 feat(category-visibility): implement category visibility controller and service with update functionality 2026-08-25 10:47:53 -03:00
ncoronel 2eeef8d392 feat(catalog): add is_enabled attribute to categories and filter items accordingly 2026-08-25 10:47:53 -03:00
ncoronel 87a4fa6288 feat(catalog): add group_order field to catalog items and update related logic 2026-08-25 10:45:12 -03:00
nahu 36eb41a18a feat(invitation): update seat allocation structure and enhance provisioning logic 2026-08-22 14:16:57 +00:00
ncoronel 1dd2366957 feat(catalog): expose product unavailability messages 2026-08-21 16:47:15 -03:00
ncoronel e8bcaa2026 feat(sales): handle in-review purchases as pending 2026-08-21 16:15:59 -03:00
ncoronel 5548fe8511 feat(purchase): restore in-review transfer lifecycle 2026-08-21 16:15:55 -03:00
ncoronel dc0fbe06b8 fix(cart): invalidate checkout on mutation 2026-08-21 14:06:11 -03:00
ncoronel afd69b8393 feat(checkout): track current cart purchase 2026-08-21 14:05:33 -03:00
ncoronel 1650176aa0 refactor(checkout): keep source cart active 2026-08-21 13:42:30 -03:00
ncoronel 79e721ae63 refactor(checkout): disable purchase item editing 2026-08-21 11:03:48 -03:00
ncoronel 3a2dc8b7e0 feat(cart): implement restoration and reservation of source cart on expired checkout modification 2026-08-21 10:10:28 -03:00
ncoronel 0510c1aa12 test(checkout): cover source cart restoration 2026-08-21 09:29:23 -03:00
ncoronel eafb02ffd5 fix(purchase): enhance handling of cart items for created and pending payment purchases 2026-08-21 08:58:51 -03:00
ncoronel cb56e33685 fix(purchase): unify expired checkout errors 2026-08-21 08:58:51 -03:00
ncoronel dd81e3b3f7 feat: enhance sale detail retrieval by including trashed cart items and update related tests 2026-08-21 08:58:18 -03:00
ncoronel 8c09ca1204 feat: update sales query to use cart quantity when purchase items are absent and enhance related tests 2026-08-21 08:48:27 -03:00
ncoronel ae6149df84 feat: enable full cart editing for Desfile tenant and update related tests 2026-08-20 15:13:23 -03:00
ncoronel 1776cfe581 Revert "feat: add session partitioned cookie support and update related tests"
This reverts commit 5ad18694e1.
2026-08-20 15:12:41 -03:00
ncoronel 5ad18694e1 feat: add session partitioned cookie support and update related tests 2026-08-20 14:47:51 -03:00
ncoronel 6775fb110c feat: simplify cart restoration logic in ReleaseCheckoutService and SourceCartService 2026-08-20 13:53:04 -03:00
ncoronel 9c46eff880 feat: add checkout editing policy to tenants and update related logic across services and resources 2026-08-20 12:38:22 -03:00
ncoronel c8ce3b0da3 feat(checkout): enforce editing policy on items 2026-08-20 10:56:19 -03:00
ncoronel d36a929f8c feat(tenant): add checkout editing policy 2026-08-20 10:56:13 -03:00
ncoronel 5c0b3503b7 feat(purchase): implement purchase limit enforcement and custom exception handling 2026-08-19 16:48:32 -03:00
ncoronel 8537d2ed0a feat(catalog): implement maximum addable quantity logic and user quota sharing across variants 2026-08-19 16:48:32 -03:00
ncoronel d97cc12af6 Merge branch 'feature/cart_editing_policy' into dev 2026-08-19 16:47:30 -03:00
ncoronel 161693509f feat(telepagos): enhance webhook handling 2026-08-19 15:26:44 -03:00
ncoronel 32d2b182c6 Merge branch 'feature/reserved_invitations' into dev 2026-08-19 14:33:38 -03:00
ncoronel 2632a80722 feat(invitation): implement InvitationPurchaseProvisioner and related migration and seeder updates 2026-08-19 14:33:08 -03:00