- Temporarily disable authorizenet.sdk logger during credential validation
- Prevents ContentNondeterminismExceededError from appearing in logs
- Error is a known PyXB issue in the SDK that doesn't affect functionality
- Credentials are still validated correctly
- Fix critical NameError in database.py by restoring Session factory
- Refactor payment_service.py and crud.py to use shared constants.py and utils.py
- Deduplicate state mapping and input sanitization logic
- Move transaction amount calculation logic from CRUD to Router layer
- Enforce type safety in schemas using IntEnum for TransactionType/Status
- Move capture endpoint from transaction.py to payment.py (now /payments/capture)
- Update create_customer_profile signature for clarity