MPT-16437 Reorganise resource billing mixins structure #202
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Closes MPT-16437
Changes
Reorganized billing mixins module: Refactored the monolithic
mpt_api_client/resources/billing/mixins.pyfile (426 lines) into a modular package structure with separate files for each mixin type:mpt_api_client/resources/billing/mixins/package with individual mixin modulesacceptable_mixin.py: AcceptableMixin and AsyncAcceptableMixin for accept/queue operationsregeneratable_mixin.py: RegeneratableMixin and AsyncRegeneratableMixin for regenerate/submit/enquiry/accept operationsrecalculatable_mixin.py: RecalculatableMixin and AsyncRecalculatableMixin for recalculate/accept/queue operationsissuable_mixin.py: IssuableMixin and AsyncIssuableMixin for issue/cancel/error/pending/queue/retry/recalculate operationsattachment_mixin.py: AttachmentMixin and AsyncAttachmentMixin combining file CRUD and retrieval operationsCentralized exports: Created
mpt_api_client/resources/billing/mixins/__init__.pyto re-export all mixin classes, maintaining the same public APIReorganized tests: Refactored test suite structure:
tests/unit/resources/billing/test_mixins.py(637 lines)tests/unit/resources/billing/mixins/for each mixin type with comprehensive unit tests covering both synchronous and asynchronous variantsMaintained backward compatibility: Public API remains unchanged; all previously exported mixins are still available through the updated module structure