[2026-08-18 13:12:10] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"3730c83a-1ee8-48d6-80a3-e5b04aab463d","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:12:10] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"afb57e60-bc2e-4efd-9368-02409dca68d3","type":"top_up","direction":"credit","amount":"1500.00","balance_after":"1500.00"} 
[2026-08-18 13:12:10] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"c8684afc-74d8-4015-ac7f-04a93ccec5f5","provider":"mock","status":"paid","amount":"1500.00"} 
[2026-08-18 13:12:35] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"67bd2783-6b96-444e-9670-b291c9cbced0","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:12:35] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"b1f9411d-1e3d-462e-95c7-6ec478c5c320","type":"top_up","direction":"credit","amount":"1500.00","balance_after":"1500.00"} 
[2026-08-18 13:12:35] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"e7b896d2-f5f7-46be-bf7f-4540259931f6","provider":"mock","status":"paid","amount":"1500.00"} 
[2026-08-18 13:17:52] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"15ee9f23-025a-4d6c-bffa-e5ce6ef056e3","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:52] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e44c83e0-9bd0-4eb3-8fa5-53a080ef0b54","type":"top_up","direction":"credit","amount":"1500.00","balance_after":"1500.00"} 
[2026-08-18 13:17:52] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"274a294f-3d22-45d9-a6db-670d94b2049d","provider":"mock","status":"paid","amount":"1500.00"} 
[2026-08-18 13:17:52] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"fb1ac169-c01c-4307-b65a-204092365160","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"f60f7f4e-8a86-4ad5-8957-785b9797043f","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"29471677-e5e2-46d6-aed6-e2d537610796","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e67ecdec-8bd9-42e6-a2cf-a944215570e8","type":"manual_credit","direction":"credit","amount":"0.10","balance_after":"0.10"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e67ecdec-8bd9-42e6-a2cf-a944215570e8","type":"manual_credit","direction":"credit","amount":"0.20","balance_after":"0.30"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e67ecdec-8bd9-42e6-a2cf-a944215570e8","type":"manual_debit","direction":"debit","amount":"0.05","balance_after":"0.25"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"7b3a90d5-d3da-4d1b-a8ed-21056e1f932b","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"66bc1775-a2ce-4fee-8179-ebaedf7fc62a","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"471dec00-3ce5-400c-ad06-c7637e6db7d8","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"a20281ac-f274-40b6-af41-64b75791172f","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"44fdc0a2-08ce-430d-b94d-a59185bbeaf1","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"6b4dbd48-f22b-44a5-a387-f876261adb2c","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c902fbf2-cf34-47f9-91d7-abcec265e6f5","type":"manual_credit","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c902fbf2-cf34-47f9-91d7-abcec265e6f5","type":"one_time_payment","direction":"debit","amount":"1000.00","balance_after":"0.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"97490ef3-cb9c-4f09-aa6d-ff3dc9b56d03","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c902fbf2-cf34-47f9-91d7-abcec265e6f5","type":"refund","direction":"credit","amount":"600.00","balance_after":"600.00"} 
[2026-08-18 13:17:53] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"97490ef3-cb9c-4f09-aa6d-ff3dc9b56d03","provider":"mock","status":"completed","amount":"600.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c902fbf2-cf34-47f9-91d7-abcec265e6f5","type":"refund","direction":"credit","amount":"400.00","balance_after":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"97490ef3-cb9c-4f09-aa6d-ff3dc9b56d03","provider":"mock","status":"completed","amount":"400.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"9a9a0e1b-aa33-44ee-99da-8ee756d18ce6","type":"manual_credit","direction":"credit","amount":"500.00","balance_after":"500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"9a9a0e1b-aa33-44ee-99da-8ee756d18ce6","type":"one_time_payment","direction":"debit","amount":"200.00","balance_after":"300.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"fa832282-7115-42ed-9aff-10e656c23181","provider":"mock","status":"paid","amount":"200.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"9a9a0e1b-aa33-44ee-99da-8ee756d18ce6","type":"refund","direction":"credit","amount":"200.00","balance_after":"500.00"} 
[2026-08-18 13:17:53] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"fa832282-7115-42ed-9aff-10e656c23181","provider":"mock","status":"completed","amount":"200.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"3873d252-41bd-40c3-85c7-d56227bacd0d","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 13:17:53] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"be76474f-f700-4b23-b2be-e478195fc669","provider":"mock","status":"requires_action","amount":"2500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"b4bb8f70-0f87-4a1d-acde-a55935ce9bae","type":"top_up","direction":"credit","amount":"2500.00","balance_after":"2500.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"be76474f-f700-4b23-b2be-e478195fc669","provider":"mock","status":"paid","amount":"2500.00"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-timeout-1","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_event_ignored {"provider":"mock","provider_event_id":"evt-odd","event_type":"customer.updated"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"3cc00a7a-6e6c-489e-a1e4-b1776cdfd787","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 13:17:53] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"6cc45b4e-59a3-49ec-aec4-79921279d967","provider":"mock","status":"requires_action","amount":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"b410150b-73db-436c-bf1f-4e2b944d4711","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"6cc45b4e-59a3-49ec-aec4-79921279d967","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"7f7d1b1e-92dd-483c-ac61-a0e9a983d23f","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 13:17:53] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"60bceea7-4c0e-40c9-b4a1-af4ea89d8901","provider":"mock","status":"failed","amount":"5000.00","error_code":"declined"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"106f1111-1f1d-4a5f-97c3-495be820ecbb","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"49e0d2b3-4d80-46d5-bd45-7ded97fc5f9e","provider":"mock","status":"paid","amount":"100.00"} 
[2026-08-18 13:17:53] testing.INFO: subscription_payment_paid {"user_id":1,"payment_uuid":"49e0d2b3-4d80-46d5-bd45-7ded97fc5f9e","provider":"mock","status":"paid","amount":"100.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"6d4f5ef7-0732-4259-bc6f-c4ea249a76ed","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"fde59472-86e5-4db3-b305-81b4e894f532","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"9e39ae78-bd3c-463d-a8c0-6a6e2289bd0a","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"9f606db3-b57b-4bfb-8399-85f6a4a93ad5","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"8a5278bd-bca5-4cc9-b488-9b9d56048cbc","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 13:17:53] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"1191d2da-958a-4e31-a9f7-39380cdcbc8a","provider":"mock","status":"failed","amount":"5000.00","error_code":"declined"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"03c5d07c-0d5f-4a0a-8289-b33ee0ec7571","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e82d24f8-2a57-4c47-9e3a-077ae3026162","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"2ca393f6-2d3a-4bf9-964c-6dac3a9ae1b3","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"506d56d8-6b8d-48ad-ae92-ee453aee286a","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"ca4c7534-a65a-41e3-936a-f75ffd035c2f","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"37f97248-a342-478f-bded-1e248ced16fe","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"76ec13dd-5b08-4d55-9acd-60e4389aa9de","type":"manual_credit","direction":"credit","amount":"100.00","balance_after":"100.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"76ec13dd-5b08-4d55-9acd-60e4389aa9de","type":"one_time_payment","direction":"debit","amount":"40.00","balance_after":"60.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"1755b9c7-5ffa-41f2-b99e-4414f3e4223c","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"742caab7-d33e-4b16-8f94-436a5ad1526a","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"a2398e44-bb88-4e9f-b376-d515e3642eb8","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"4339a3f1-beb1-4361-96a8-8d7bdabd610b","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"00c7b1f5-6404-42b8-88fc-0f1d55ce1be9","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"5d705367-14e7-4315-ab70-842de35eacf7","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"089463ec-1193-4d87-be54-f5c20632c1bb","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"dd3f5c6b-2355-48ef-b2cd-52bcddb0b443","type":"manual_credit","direction":"credit","amount":"2000.00","balance_after":"2000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"5100e7f9-ebef-4581-8f48-eb325e839e2e","provider":"mock","status":"paid","amount":"1250.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"dd3f5c6b-2355-48ef-b2cd-52bcddb0b443","type":"one_time_payment","direction":"debit","amount":"500.00","balance_after":"1500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"b9bef689-bb95-4aa0-b3d8-fda9d5b6b106","provider":"mock","status":"paid","amount":"500.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"db0d9f7f-996b-4725-9db0-573b00c0c333","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"a409b9e8-f286-4447-9747-c77b54d65610","provider":"mock","status":"paid","amount":"7990.00"} 
[2026-08-18 13:17:53] testing.INFO: subscription_payment_paid {"user_id":1,"payment_uuid":"a409b9e8-f286-4447-9747-c77b54d65610","provider":"mock","status":"paid","amount":"7990.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"47a7dc09-2011-4f14-a044-a23c1a6af071","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 13:17:53] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"3eb33bf9-0521-4284-85b8-67ef76e34044","provider":"mock","status":"failed","amount":"100.00","error_code":"declined"} 
[2026-08-18 13:17:53] testing.WARNING: subscription_payment_failed {"user_id":1,"payment_uuid":"3eb33bf9-0521-4284-85b8-67ef76e34044","provider":"mock","status":"failed","amount":"100.00","error_code":"declined"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"fa420ecd-d641-4285-a3d3-a26e224b2b5d","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 13:17:53] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"8bc933bb-10b2-4f11-81e2-9b04ce877b70","provider":"mock","status":"requires_action","amount":"2500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c309450e-f376-40e3-b3ec-06107cdcc6c7","type":"top_up","direction":"credit","amount":"2500.00","balance_after":"2500.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"8bc933bb-10b2-4f11-81e2-9b04ce877b70","provider":"mock","status":"paid","amount":"2500.00"} 
[2026-08-18 13:17:53] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt_duplicate_1","status":"processed"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"f54e14fe-2b19-49bb-bf1f-26129b532201","type":"manual_credit","direction":"credit","amount":"2000.00","balance_after":"2000.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"f54e14fe-2b19-49bb-bf1f-26129b532201","type":"one_time_payment","direction":"debit","amount":"500.00","balance_after":"1500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"baa693d0-bfc8-467e-8aa5-ba8fb3ce0ba8","provider":"mock","status":"paid","amount":"500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"f54e14fe-2b19-49bb-bf1f-26129b532201","type":"refund","direction":"credit","amount":"500.00","balance_after":"2000.00"} 
[2026-08-18 13:17:53] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"baa693d0-bfc8-467e-8aa5-ba8fb3ce0ba8","provider":"mock","status":"completed","amount":"500.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"10.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"20.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"30.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"40.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"50.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"60.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"70.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"80.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"90.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"100.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"110.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"120.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"130.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"140.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"150.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"160.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"170.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"180.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"190.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"200.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"210.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"220.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"230.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"240.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"250.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"245.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"240.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"235.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"230.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"225.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"220.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"215.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"210.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"205.00"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7aacc159-d276-4132-94ba-c46416b7493a","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"200.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"1becb51f-1317-4024-a1c4-8a3b913206f5","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:17:53] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"a67debf1-8b6b-4c25-bb7b-636fe994df12","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"01ef5f5d-72e0-493f-b469-37164ba90527","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:17:53] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"a6d48c96-c08d-468d-a587-d0a0f9d4ad1f","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:29:52] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"eac1cb31-a845-4e57-b828-edf07c3b72df","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:29:52] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"d82e5d32-1a6c-466b-926c-8664707f2298","type":"top_up","direction":"credit","amount":"1500.00","balance_after":"1500.00"} 
[2026-08-18 13:29:52] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"0893dd8f-34fc-4630-82f8-e1943c366391","provider":"mock","status":"paid","amount":"1500.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"2f16a8e3-4996-4436-b1e7-ca99417a362f","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"97a39c89-dd2b-471d-8e09-829b147d4ae9","type":"top_up","direction":"credit","amount":"1500.00","balance_after":"1500.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"70afc373-055f-4ac9-92ec-4ceccdeb2a44","provider":"mock","status":"paid","amount":"1500.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"ef28a571-18bf-4ad7-8666-98e342be23ec","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"fbee2851-431a-4cd5-9fdc-347fba1a70ec","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"17fdbec5-45ad-4fc4-8a53-f75905932df0","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7e5dcd61-1ae5-4790-a531-6ffba0556165","type":"manual_credit","direction":"credit","amount":"0.10","balance_after":"0.10"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7e5dcd61-1ae5-4790-a531-6ffba0556165","type":"manual_credit","direction":"credit","amount":"0.20","balance_after":"0.30"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7e5dcd61-1ae5-4790-a531-6ffba0556165","type":"manual_debit","direction":"debit","amount":"0.05","balance_after":"0.25"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"0d00988e-12fa-44f5-8723-ef991add909d","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"1fa1989c-ed34-4e3f-92e9-3fc929894b4a","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"ea5e1833-23f7-4d46-b9c3-e9b1e441b37e","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"91eb9e2e-e387-4da0-b011-d67dab9c41a5","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"f37338b2-9b12-484d-8847-854f232ca1e0","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"a569dde0-3642-49d5-a6cf-a9c94779e61d","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"fe3c725a-a092-44de-82c0-228cba1b44ce","type":"manual_credit","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"fe3c725a-a092-44de-82c0-228cba1b44ce","type":"one_time_payment","direction":"debit","amount":"1000.00","balance_after":"0.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"3b7ac261-9bbf-4352-b172-a59a3ac98ccf","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"fe3c725a-a092-44de-82c0-228cba1b44ce","type":"refund","direction":"credit","amount":"600.00","balance_after":"600.00"} 
[2026-08-18 13:37:43] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"3b7ac261-9bbf-4352-b172-a59a3ac98ccf","provider":"mock","status":"completed","amount":"600.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"fe3c725a-a092-44de-82c0-228cba1b44ce","type":"refund","direction":"credit","amount":"400.00","balance_after":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"3b7ac261-9bbf-4352-b172-a59a3ac98ccf","provider":"mock","status":"completed","amount":"400.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"792c2370-cf0c-4c0a-86ff-5b330e7383bb","type":"manual_credit","direction":"credit","amount":"500.00","balance_after":"500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"792c2370-cf0c-4c0a-86ff-5b330e7383bb","type":"one_time_payment","direction":"debit","amount":"200.00","balance_after":"300.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"f8359f60-c26f-4ff0-8841-174350d6b58a","provider":"mock","status":"paid","amount":"200.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"792c2370-cf0c-4c0a-86ff-5b330e7383bb","type":"refund","direction":"credit","amount":"200.00","balance_after":"500.00"} 
[2026-08-18 13:37:43] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"f8359f60-c26f-4ff0-8841-174350d6b58a","provider":"mock","status":"completed","amount":"200.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"0f43c3a1-537d-4832-a3a7-c88ee4170382","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 13:37:43] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"fff25f44-47fe-4c67-8080-46d79f3034eb","provider":"mock","status":"requires_action","amount":"2500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"14c672d7-586d-49f5-bf64-4e76f7591211","type":"top_up","direction":"credit","amount":"2500.00","balance_after":"2500.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"fff25f44-47fe-4c67-8080-46d79f3034eb","provider":"mock","status":"paid","amount":"2500.00"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-timeout-1","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_event_ignored {"provider":"mock","provider_event_id":"evt-odd","event_type":"customer.updated"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"25cc6db6-784d-4859-86f5-26738f96418b","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 13:37:43] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"9b883e87-b411-4ee8-a783-4af5720a7a8e","provider":"mock","status":"requires_action","amount":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"6d0e3b9b-8c8b-4cb3-a751-8eacd06edb4f","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"9b883e87-b411-4ee8-a783-4af5720a7a8e","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"392abacc-ebdc-4bcf-ab1a-1db0a659c33f","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 13:37:43] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"c65b0adb-f345-4ffc-9da4-948628cd261d","provider":"mock","status":"failed","amount":"5000.00","error_code":"declined"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"c74e05e0-3c67-4609-b3de-e4ae13e87049","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"a85ed90b-01ec-4f80-ab27-190754e109b4","provider":"mock","status":"paid","amount":"100.00"} 
[2026-08-18 13:37:43] testing.INFO: subscription_payment_paid {"user_id":1,"payment_uuid":"a85ed90b-01ec-4f80-ab27-190754e109b4","provider":"mock","status":"paid","amount":"100.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"2307c18c-a717-45cf-ac4a-afe1adcbc1ce","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"f31002cf-2ff6-4367-9edb-96c730c61c7e","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"5f517841-396e-4a12-8cf4-4a2e3986e8c4","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"f86f8e3b-d205-4a8e-9d2a-3aead67ace01","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"0e3e45a6-64ab-4fea-ab5e-49f33088908e","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 13:37:43] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"90ec572d-8464-46dc-9dde-32900ca8161b","provider":"mock","status":"failed","amount":"5000.00","error_code":"declined"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"9fd7704d-c13c-4869-8f31-cc3c2cc5440f","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"0d2a7db2-599e-4219-953a-b11d07ae304f","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"c4e2cf27-177b-4f6d-8685-ffa9d6347a14","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"20b71bc4-8770-47ec-80ef-36a5cc2a362d","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"044c3f4d-4b02-47b5-99e1-7505f96df000","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"7018582a-026d-4161-b254-b146da85e462","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"da695594-acd6-47f1-adc4-175c50e6f023","type":"manual_credit","direction":"credit","amount":"100.00","balance_after":"100.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"da695594-acd6-47f1-adc4-175c50e6f023","type":"one_time_payment","direction":"debit","amount":"40.00","balance_after":"60.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"7c840840-b7ac-42a1-871d-8f913909ce6b","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"1988b7a0-ab42-428f-9f6e-cc51d8382529","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"b17a34a0-5422-44ec-98ac-e511b52f9544","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"ac8a3e8e-6320-4b8e-b354-d0fe1f58ab8c","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"ecb83514-b101-412d-9747-16ebc61246d7","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"0b2b76f6-7d1e-4ef8-ad36-87ab7245a5e3","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"999ae622-ed1c-42f6-b612-5682fdce5f58","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"d672c1cd-e61f-4ca1-b8ba-066ef5069e40","type":"manual_credit","direction":"credit","amount":"2000.00","balance_after":"2000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"5ed0a2a3-ab55-467d-bd23-362c0648c125","provider":"mock","status":"paid","amount":"1250.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"d672c1cd-e61f-4ca1-b8ba-066ef5069e40","type":"one_time_payment","direction":"debit","amount":"500.00","balance_after":"1500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"fbc326d3-cce2-470a-a2ff-3ec799f02de5","provider":"mock","status":"paid","amount":"500.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"4d299daf-7d81-4b26-959a-820150fbc3d2","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"b567ecde-2269-44d3-bc49-a7de1e4c7f5b","provider":"mock","status":"paid","amount":"7990.00"} 
[2026-08-18 13:37:43] testing.INFO: subscription_payment_paid {"user_id":1,"payment_uuid":"b567ecde-2269-44d3-bc49-a7de1e4c7f5b","provider":"mock","status":"paid","amount":"7990.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"e74cccd7-c85c-4a62-9632-474ad282b1e5","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 13:37:43] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"bf43ec1b-0bb7-466b-9cfb-e08d6b321c20","provider":"mock","status":"failed","amount":"100.00","error_code":"declined"} 
[2026-08-18 13:37:43] testing.WARNING: subscription_payment_failed {"user_id":1,"payment_uuid":"bf43ec1b-0bb7-466b-9cfb-e08d6b321c20","provider":"mock","status":"failed","amount":"100.00","error_code":"declined"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"a7a63f68-ac68-42fd-b40a-8004b1766da5","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 13:37:43] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"88da4b86-0706-45ec-ac1d-90a6c078cc19","provider":"mock","status":"requires_action","amount":"2500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"6c91e1a9-c0e9-41ac-b2c8-69475ded5f28","type":"top_up","direction":"credit","amount":"2500.00","balance_after":"2500.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"88da4b86-0706-45ec-ac1d-90a6c078cc19","provider":"mock","status":"paid","amount":"2500.00"} 
[2026-08-18 13:37:43] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt_duplicate_1","status":"processed"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e85d5023-6199-4a52-89a9-1cdd1f812d27","type":"manual_credit","direction":"credit","amount":"2000.00","balance_after":"2000.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e85d5023-6199-4a52-89a9-1cdd1f812d27","type":"one_time_payment","direction":"debit","amount":"500.00","balance_after":"1500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"fddcae02-6420-429c-ab07-e9813e512d0d","provider":"mock","status":"paid","amount":"500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"e85d5023-6199-4a52-89a9-1cdd1f812d27","type":"refund","direction":"credit","amount":"500.00","balance_after":"2000.00"} 
[2026-08-18 13:37:43] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"fddcae02-6420-429c-ab07-e9813e512d0d","provider":"mock","status":"completed","amount":"500.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"10.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"20.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"30.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"40.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"50.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"60.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"70.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"80.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"90.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"100.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"110.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"120.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"130.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"140.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"150.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"160.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"170.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"180.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"190.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"200.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"210.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"220.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"230.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"240.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"250.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"245.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"240.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"235.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"230.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"225.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"220.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"215.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"210.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"205.00"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"bc74ab4f-85e0-4a6b-8fed-c05b4827e84e","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"200.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"2daddb3c-955f-4127-992d-860ec13725c0","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 13:37:43] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"8c6c2d7d-adce-42d3-9309-a0ea8801160b","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"e00fbf50-966f-4444-b098-d59560189fa8","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 13:37:43] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"25f670be-b2ea-4eea-914b-e29b835237d5","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:55] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"5e702b75-6c14-42c1-8a8e-10d86e8a243a","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:55] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"534d1615-cc8a-4882-b295-979694861b98","type":"top_up","direction":"credit","amount":"1500.00","balance_after":"1500.00"} 
[2026-08-18 17:21:55] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"c99efa55-a658-4e2f-8e38-b07ec1a65193","provider":"mock","status":"paid","amount":"1500.00"} 
[2026-08-18 17:21:55] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"6d7ec930-8b9f-4f53-9af2-e3f3937e9048","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"cbfa7808-37aa-4a68-a069-19428a5febc3","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"b8605e94-5e21-4547-9652-b980cc994afb","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"2a200cda-f257-4a68-8e5e-5afeab19e6ce","type":"manual_credit","direction":"credit","amount":"0.10","balance_after":"0.10"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"2a200cda-f257-4a68-8e5e-5afeab19e6ce","type":"manual_credit","direction":"credit","amount":"0.20","balance_after":"0.30"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"2a200cda-f257-4a68-8e5e-5afeab19e6ce","type":"manual_debit","direction":"debit","amount":"0.05","balance_after":"0.25"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"20ad34fc-85bd-432c-a3df-6244c7c665bf","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"ce47924f-258d-4c73-997c-6e231622e33b","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"b456f4da-85ea-4f46-8f5c-4f5aa23a2c73","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"438ab56d-cf20-486e-a13e-9e8f9a1c7142","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"8265b29b-1579-490a-ba2c-4e39260056e8","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"5df67a44-15b4-4a59-a0c7-ed7bf5db199a","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"304ccbf7-7780-460c-bcae-b667d06f463d","type":"manual_credit","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"304ccbf7-7780-460c-bcae-b667d06f463d","type":"one_time_payment","direction":"debit","amount":"1000.00","balance_after":"0.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"ce49d1c4-4133-46cd-b089-87af35136183","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"304ccbf7-7780-460c-bcae-b667d06f463d","type":"refund","direction":"credit","amount":"600.00","balance_after":"600.00"} 
[2026-08-18 17:21:56] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"ce49d1c4-4133-46cd-b089-87af35136183","provider":"mock","status":"completed","amount":"600.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"304ccbf7-7780-460c-bcae-b667d06f463d","type":"refund","direction":"credit","amount":"400.00","balance_after":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"ce49d1c4-4133-46cd-b089-87af35136183","provider":"mock","status":"completed","amount":"400.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7320c22f-c505-4617-99bd-604b7378049d","type":"manual_credit","direction":"credit","amount":"500.00","balance_after":"500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7320c22f-c505-4617-99bd-604b7378049d","type":"one_time_payment","direction":"debit","amount":"200.00","balance_after":"300.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"3a8a0078-1ae3-4c5d-a2f4-f4382da4ba91","provider":"mock","status":"paid","amount":"200.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"7320c22f-c505-4617-99bd-604b7378049d","type":"refund","direction":"credit","amount":"200.00","balance_after":"500.00"} 
[2026-08-18 17:21:56] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"3a8a0078-1ae3-4c5d-a2f4-f4382da4ba91","provider":"mock","status":"completed","amount":"200.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"2177dc62-021e-4d97-9635-c5b1dbe93a57","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 17:21:56] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"f82dd850-b651-48c9-a936-9b29bd257d67","provider":"mock","status":"requires_action","amount":"2500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"3ead2c12-36b3-44b3-a8d2-e5fbf9ddfb45","type":"top_up","direction":"credit","amount":"2500.00","balance_after":"2500.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"f82dd850-b651-48c9-a936-9b29bd257d67","provider":"mock","status":"paid","amount":"2500.00"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-timeout-1","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_event_ignored {"provider":"mock","provider_event_id":"evt-odd","event_type":"customer.updated"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"b68a3c88-b1a2-4055-85ab-dbf0c33158aa","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 17:21:56] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"31b04850-2e36-413e-bf26-e894b2990b32","provider":"mock","status":"requires_action","amount":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"6cec193a-02ba-4ffa-a6dd-273349018592","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"31b04850-2e36-413e-bf26-e894b2990b32","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt-ten","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"df83e21b-d0eb-4def-b1ae-fdf4b0efcf0e","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 17:21:56] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"aeec0c93-6f2e-4ca4-8c46-5abf7f3601c9","provider":"mock","status":"failed","amount":"5000.00","error_code":"declined"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"5d44c138-6749-4e76-9df6-e62bff6c5ccc","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"e606c8e8-0393-4bdc-a3c6-92e6895f2cfa","provider":"mock","status":"paid","amount":"100.00"} 
[2026-08-18 17:21:56] testing.INFO: subscription_payment_paid {"user_id":1,"payment_uuid":"e606c8e8-0393-4bdc-a3c6-92e6895f2cfa","provider":"mock","status":"paid","amount":"100.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"f612e2f0-a822-42c4-aa8b-1a72420e1cb2","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"87d5f751-b618-45b4-af68-d98d3578109c","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"d17d2c3a-e66d-4cce-ac5f-89ec68bc04bb","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"61c239c0-302c-4533-a1d4-ed3b71633820","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"18f89063-6ab7-47bd-9e8f-0ff052d57fa8","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 17:21:56] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"0577789d-480f-409e-947b-377df2eb5218","provider":"mock","status":"failed","amount":"5000.00","error_code":"declined"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"5530e6ea-cbb1-428d-827e-4cb8f14bcb94","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"a5ebf3bc-38c2-4496-bdaa-6ea03e84ebbd","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"be44f150-938c-438e-b165-ae1ed4f64c1e","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"631f53e5-1112-46d0-9192-b25e7714c28c","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"b56160be-7a06-477e-87fa-0950741db9cc","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"2ef67e45-ae68-4568-abb7-3e2dd2a1e95c","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"a779250b-abbc-41d4-84ab-cfccf560c5f3","type":"manual_credit","direction":"credit","amount":"100.00","balance_after":"100.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"a779250b-abbc-41d4-84ab-cfccf560c5f3","type":"one_time_payment","direction":"debit","amount":"40.00","balance_after":"60.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"964c92af-bd39-4b5b-9563-5099474eb1c4","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"225f31a5-a043-49ba-a2dd-8707afe6696c","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"55f84fa3-a6a2-4be3-8727-25bb0ec58012","type":"top_up","direction":"credit","amount":"1000.00","balance_after":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"43793de3-6395-4bae-aedb-5044c9a61a4a","provider":"mock","status":"paid","amount":"1000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"a5fc45f6-969b-483c-99a8-f59b388f86d0","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"e5c75a73-027d-416e-b614-016ce656507f","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"95f8d4f0-5db8-40fc-8f16-c27d19c63949","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c2091410-73af-4ee6-98cf-246c8c2e4ec6","type":"manual_credit","direction":"credit","amount":"2000.00","balance_after":"2000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"5c3502e7-9698-4e9f-b49e-04b212c4230e","provider":"mock","status":"paid","amount":"1250.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"c2091410-73af-4ee6-98cf-246c8c2e4ec6","type":"one_time_payment","direction":"debit","amount":"500.00","balance_after":"1500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"5a79e072-6012-4ea0-aefb-d79511d0ae3b","provider":"mock","status":"paid","amount":"500.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"0669c8a0-3e43-4589-9ecc-b05cd4138c12","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"38ac5bc9-9671-459a-97a8-74a47fd5c155","provider":"mock","status":"paid","amount":"7990.00"} 
[2026-08-18 17:21:56] testing.INFO: subscription_payment_paid {"user_id":1,"payment_uuid":"38ac5bc9-9671-459a-97a8-74a47fd5c155","provider":"mock","status":"paid","amount":"7990.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"50751dae-de25-4b17-8ac6-26f3bb452056","provider":"mock","brand":"visa","last_four":"0002"} 
[2026-08-18 17:21:56] testing.WARNING: payment_failed {"user_id":1,"payment_uuid":"05c1f1c2-3147-4a29-9c05-3e71ef68f26d","provider":"mock","status":"failed","amount":"100.00","error_code":"declined"} 
[2026-08-18 17:21:56] testing.WARNING: subscription_payment_failed {"user_id":1,"payment_uuid":"05c1f1c2-3147-4a29-9c05-3e71ef68f26d","provider":"mock","status":"failed","amount":"100.00","error_code":"declined"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"e6970ff6-f37b-4cca-abcf-49bee32c5852","provider":"mock","brand":"visa","last_four":"0005"} 
[2026-08-18 17:21:56] testing.INFO: payment_requires_action {"user_id":1,"payment_uuid":"8c748778-416c-4fba-b0b3-76a4fea0522b","provider":"mock","status":"requires_action","amount":"2500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"ac289c14-84c3-4ac0-a34b-37399be17e89","type":"top_up","direction":"credit","amount":"2500.00","balance_after":"2500.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"8c748778-416c-4fba-b0b3-76a4fea0522b","provider":"mock","status":"paid","amount":"2500.00"} 
[2026-08-18 17:21:56] testing.INFO: webhook_duplicate_ignored {"provider":"mock","provider_event_id":"evt_duplicate_1","status":"processed"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"422fdee0-a4eb-47af-a89b-120d7722398c","type":"manual_credit","direction":"credit","amount":"2000.00","balance_after":"2000.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"422fdee0-a4eb-47af-a89b-120d7722398c","type":"one_time_payment","direction":"debit","amount":"500.00","balance_after":"1500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_payment_paid {"user_id":1,"payment_uuid":"30477502-c391-45f6-94b3-b2f0cb3798a1","provider":"mock","status":"paid","amount":"500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"422fdee0-a4eb-47af-a89b-120d7722398c","type":"refund","direction":"credit","amount":"500.00","balance_after":"2000.00"} 
[2026-08-18 17:21:56] testing.INFO: refund_completed {"user_id":1,"payment_uuid":"30477502-c391-45f6-94b3-b2f0cb3798a1","provider":"mock","status":"completed","amount":"500.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"10.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"20.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"30.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"40.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"50.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"60.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"70.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"80.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"90.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"100.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"110.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"120.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"130.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"140.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"150.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"160.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"170.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"180.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"190.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"200.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"210.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"220.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"230.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"240.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_credit","direction":"credit","amount":"10.00","balance_after":"250.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"245.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"240.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"235.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"230.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"225.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"220.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"215.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"210.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"205.00"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"29f4b837-9790-4154-a995-5d4c2d8c3482","type":"manual_debit","direction":"debit","amount":"5.00","balance_after":"200.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"9daf087d-5ac3-4e2f-92c7-6487ed48080b","provider":"mock","brand":"visa","last_four":"4242"} 
[2026-08-18 17:21:56] testing.INFO: wallet_movement {"user_id":1,"wallet_uuid":"595bcaa1-bb50-44f0-b6af-ebd79e012256","type":"top_up","direction":"credit","amount":"5000.00","balance_after":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_paid {"user_id":1,"payment_uuid":"654ee83d-b511-4ea9-92d6-c33c6a642c09","provider":"mock","status":"paid","amount":"5000.00"} 
[2026-08-18 17:21:56] testing.INFO: payment_method_added {"user_id":1,"payment_method_uuid":"d81e71f5-1407-4834-8f94-0ce495ad0329","provider":"mock","brand":"visa","last_four":"4242"} 
