[16.0][ADD]pms_fastapi: /folios and /invoices endpoints#38
Draft
jesusVMayor wants to merge 33 commits into16.0from
Draft
[16.0][ADD]pms_fastapi: /folios and /invoices endpoints#38jesusVMayor wants to merge 33 commits into16.0from
jesusVMayor wants to merge 33 commits into16.0from
Conversation
b8d89be to
c0a7ef3
Compare
c0a7ef3 to
91d8390
Compare
7f6692f to
7eabf24
Compare
…jwt, and the correct is the library PyJWT
… and private endpoints.
There was a problem hiding this comment.
Pull request overview
Adds new PMS FastAPI endpoints and supporting schemas, plus localization/extensions (VERI*FACTU + ES) and some infra updates (dependencies, tests, profiling).
Changes:
- Adds new
/folios,/invoices,/journals, and/payment-methodsendpoints with new Pydantic schemas and tests. - Introduces extension modules (
pms_fastapi_verifactu,pms_fastapi_l10n_es) and renamesparnter_identification_unique→partner_identification_unique. - Refactors FastAPI env dependencies (Public vs Authenticated) and adds optional request profiling middleware.
Reviewed changes
Copilot reviewed 91 out of 100 changed files in this pull request and generated 24 comments.
Show a summary per file
| File | Description |
|---|---|
| setup/pms_fastapi_verifactu/setup.py | Packaging setup for the new VERI*FACTU extension addon |
| setup/pms_fastapi_verifactu/odoo/addons/pms_fastapi_verifactu | Addon path link for Odoo packaging layout |
| setup/partner_identification_unique/setup.py | Packaging setup for renamed addon |
| setup/partner_identification_unique/odoo/addons/partner_identification_unique | Addon path link for Odoo packaging layout |
| scripts/generate_verifactu_demo_responses.py | Adds a script to generate demo VERI*FACTU invoices and simulated AEAT responses |
| roomdoo_fastapi/tests/test_contacts.py | Updates expected HTTP status for contact creation to 201 |
| roomdoo_fastapi/security/ir.model.access.csv | Adds ACL for refresh token model |
| roomdoo_fastapi/schemas/zip_autocomplete.py | Renames schema to ZipSummary and updates factory method |
| roomdoo_fastapi/schemas/contact.py | Renames extended schema to ContactDetailResidenceAddress |
| roomdoo_fastapi/routers/zip_autocomplete.py | Uses AuthenticatedEnv and updated ZipSummary schema |
| roomdoo_fastapi/routers/user.py | Switches to AuthenticatedEnv/PublicEnv dependencies |
| roomdoo_fastapi/routers/supplier.py | Switches to AuthenticatedEnv dependency |
| roomdoo_fastapi/routers/reports.py | Refactors report endpoints to delegate to a helper |
| roomdoo_fastapi/routers/pms_property_url.py | Switches to AuthenticatedEnv and simplifies decorator config |
| roomdoo_fastapi/routers/login.py | Switches refresh endpoint to PublicEnv |
| roomdoo_fastapi/routers/instance.py | Marks instance endpoint as public via PublicEnv |
| roomdoo_fastapi/routers/guest.py | Switches to AuthenticatedEnv dependency |
| roomdoo_fastapi/routers/customer.py | Switches to AuthenticatedEnv dependency |
| roomdoo_fastapi/routers/contact.py | Switches to AuthenticatedEnv and renames router helper class |
| roomdoo_fastapi/manifest.py | Loads new ACL file |
| pms_fastapi_verifactu/schemas/invoice.py | Extends invoice schema with VERI*FACTU state/message |
| pms_fastapi_verifactu/schemas/init.py | Exposes VERI*FACTU schemas package |
| pms_fastapi_verifactu/routers/invoice.py | Extends invoice router helper extra-features |
| pms_fastapi_verifactu/routers/init.py | Exposes VERI*FACTU routers package |
| pms_fastapi_verifactu/manifest.py | New auto-install addon manifest for VERI*FACTU invoice fields |
| pms_fastapi_verifactu/init.py | Loads schemas/routers for addon |
| pms_fastapi_l10n_es/schemas/pms_reservation.py | Adds ES-localization extension point for reservation SES fields |
| pms_fastapi_l10n_es/schemas/contact.py | Renames fiscal doc schema class to PascalCase |
| pms_fastapi_l10n_es/routers/pms_folio.py | Adds ES-localization extra-features for folio endpoints |
| pms_fastapi_l10n_es/routers/contact_fiscal_document_type.py | Renames helper class for clarity |
| pms_fastapi_l10n_es/routers/contact.py | Renames helper class for clarity |
| pms_fastapi_l10n_es/routers/init.py | Exposes folio router extension |
| pms_fastapi_l10n_es/manifest.py | Adds dependency on l10n_es_aeat_partner_identification |
| pms_fastapi/utils.py | Makes order optional in search_with_count |
| pms_fastapi/tests/test_payment_methods.py | Adds test for /payment-methods |
| pms_fastapi/tests/test_journals.py | Adds test for /journals |
| pms_fastapi/tests/test_invoices.py | Adds test for /invoices |
| pms_fastapi/tests/test_folios.py | Adds test for /folios |
| pms_fastapi/tests/test_contacts.py | Updates expected HTTP status for contact creation to 201 |
| pms_fastapi/tests/test_contact_id_numbers.py | Updates expected HTTP status to 201 + fixes assertion text |
| pms_fastapi/tests/common.py | Silences JWT warning in tests and extends test user companies |
| pms_fastapi/tests/init.py | Registers new test modules |
| pms_fastapi/schemas/supplier.py | Switches totals to CurrencyAmount with rounding metadata |
| pms_fastapi/schemas/pms_service.py | Adds ServiceId schema used by folios |
| pms_fastapi/schemas/pms_room.py | Adds room schemas used by reservations |
| pms_fastapi/schemas/pms_folio.py | Adds folio/reservation schemas and search filters |
| pms_fastapi/schemas/payment_method.py | Adds payment method summary schema |
| pms_fastapi/schemas/journal.py | Adds journal summary schema |
| pms_fastapi/schemas/invoice.py | Adds invoice schemas and invoice search filters |
| pms_fastapi/schemas/customer.py | Switches totals to CurrencyAmount with rounding metadata |
| pms_fastapi/schemas/contact.py | Adds ContactIdImage and centralizes common partner parsing |
| pms_fastapi/schemas/base.py | Adds currency rounding support + Odoo read helpers; changes image URL check |
| pms_fastapi/schemas/init.py | Exposes new schemas in package init |
| pms_fastapi/routers/user.py | Switches to AuthenticatedEnv dependency |
| pms_fastapi/routers/supplier.py | Switches to AuthenticatedEnv dependency; renames helper |
| pms_fastapi/routers/pricelist.py | Switches to AuthenticatedEnv dependency |
| pms_fastapi/routers/pms_sale_channel.py | Switches to AuthenticatedEnv dependency |
| pms_fastapi/routers/pms_property.py | Switches to AuthenticatedEnv dependency |
| pms_fastapi/routers/pms_folio.py | Adds /folios endpoint + helper |
| pms_fastapi/routers/payment_term.py | Switches to AuthenticatedEnv dependency |
| pms_fastapi/routers/payment_method.py | Adds /payment-methods endpoint |
| pms_fastapi/routers/login.py | Switches login endpoint to PublicEnv dependency |
| pms_fastapi/routers/language.py | Switches to PublicEnv dependency |
| pms_fastapi/routers/journal.py | Adds /journals endpoint + helper |
| pms_fastapi/routers/invoice.py | Adds /invoices endpoint + helper |
| pms_fastapi/routers/guest.py | Switches to AuthenticatedEnv dependency; renames helper |
| pms_fastapi/routers/customer.py | Switches to AuthenticatedEnv dependency; renames helper |
| pms_fastapi/routers/country_state.py | Switches to PublicEnv dependency |
| pms_fastapi/routers/country.py | Switches to PublicEnv dependency |
| pms_fastapi/routers/contact_tags.py | Renames handler + switches to AuthenticatedEnv dependency |
| pms_fastapi/routers/contact_id_number.py | Switches to AuthenticatedEnv + fixes typo + sets POST status_code=201 |
| pms_fastapi/routers/contact_fiscal_document_type.py | Switches to AuthenticatedEnv + renames helper |
| pms_fastapi/routers/contact.py | Switches to AuthenticatedEnv + sets POST status_code=201 + improves update flow |
| pms_fastapi/routers/agency.py | Switches to AuthenticatedEnv dependency; renames helper |
| pms_fastapi/routers/init.py | Registers new routers |
| pms_fastapi/models/fastapi_endpoint.py | Adds optional profiling middleware + conditional app customization |
| pms_fastapi/models/account_move.py | Adds overdue payment computed/search fields |
| pms_fastapi/models/init.py | Registers new model extension |
| pms_fastapi/dependencies.py | Adds PublicEnv / AuthenticatedEnv type aliases |
| pms_fastapi/manifest.py | Adds dependency, fixes typo in addon name, adds external dependency |
| pms_api_rest/manifest.py | Removes jwt external dependency entry |
| partner_identification_unique/manifest.py | New renamed addon manifest |
| partner_identification_unique/init.py | New renamed addon init |
| parnter_identification_unique/migrations/16.0.3.0.0/pre-migration.py | Cleans up old module’s ir_model_data during migration |
| parnter_identification_unique/manifest.py | Deprecates old misspelled addon name |
| parnter_identification_unique/init.py | Removes old module init imports |
| l10n_es_aeat_partner_identification/manifest.py | Updates dependency to renamed addon |
| README.md | Documents .claude/skills/ usage for AI assistants |
| .pre-commit-config.yaml | Excludes .claude/ from hooks; bumps setuptools-odoo hook revision |
| .github/repos.yaml | Adds account-invoicing dependency repo |
| .claude/skills/roomdoo-fastapi-conventions/SKILL.md | Adds documented conventions for FastAPI/schema development |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Search by agency and channel. - Return channel icon. - Don't return out of service reservations.
…/folios and /invoices.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.