From 40dfe6d8d783cd27abc02fb7ac7fa2f05ccadbcf Mon Sep 17 00:00:00 2001 From: Andre Kutianski Date: Fri, 31 Jul 2026 20:52:27 -0300 Subject: [PATCH] =?UTF-8?q?fix(codegen):=20sanitiza=20type-hints=20de=20$r?= =?UTF-8?q?ef,=20lint=20sint=C3=A1tico=20fail-loud=20e=20remove=20spec=20d?= =?UTF-8?q?uplicada=20=E2=80=94=20v3.4.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TypeMapper::resolveRef() passa pela mesma sanitização de identificador do nome de classe (novo NameMapper::phpIdentifier(), fonte única) — corrige 79 arquivos de PHP inválido em 4 namespaces de src/Generated/ - scripts/generate.php: lint sintático in-process (token_get_all TOKEN_PARSE) de todo arquivo emitido, no generate e no --check; falha listando ofensores - Sumário por spec no generate: Swagger 2.0 informativo, OpenAPI 3.x com 0 schemas vira aviso destacado (fim do skip silencioso) - Remove openapi/consumer-invoice-v3.yaml (duplicata byte-idêntica de consulta-nf-consumidor-v3.yaml) e src/Generated/ConsumerInvoiceV3/ - Regeneração completa: 576 arquivos, zero hints pontuados - Version 3.4.1 + CHANGELOG (patch: nada em runtime usa Nfe\Generated\*) --- CHANGELOG.md | 33 + VERSION | 2 +- openapi/consumer-invoice-v3.yaml | 1371 ----------------- scripts/Generator/CheckMode.php | 5 +- scripts/Generator/Generator.php | 41 +- scripts/Generator/Linter.php | 36 + scripts/Generator/NameMapper.php | 14 +- scripts/Generator/TypeMapper.php | 7 +- scripts/generate.php | 33 +- ...es_EnableInboundProductInvoiceResource.php | 2 +- ...Core_Domain_Resources_MetadataResource.php | 6 +- ...esources_ProductInvoiceInboundResource.php | 4 +- ...s_TransportationInvoiceInboundResource.php | 2 +- ...Tech_Api_Resources_AddressResourceItem.php | 2 +- ...urces_TaxCoupon_CouponDeliveryResource.php | 2 +- ...ain_Models_Cfe_CouponCofinsTaxResource.php | 2 +- ...Domain_Models_Cfe_CouponIssuerResource.php | 2 +- ...s_Domain_Models_Cfe_CouponItemResource.php | 2 +- ...omain_Models_Cfe_CouponItemTaxResource.php | 8 +- ...Domain_Models_Cfe_CouponPisTaxResource.php | 2 +- ..._Domain_Models_Cfe_CouponTotalResource.php | 4 +- ...es_Domain_Models_Cfe_TaxCouponResource.php | 12 +- ...ech_Services_Domain_Models_Cfe_xml_CFe.php | 2 +- ...rvices_Domain_Models_Cfe_xml_CFeCOFINS.php | 2 +- ...Services_Domain_Models_Cfe_xml_CFeICMS.php | 2 +- ..._Services_Domain_Models_Cfe_xml_CFePIS.php | 2 +- ...ervices_Domain_Models_Cfe_xml_CFeTotal.php | 6 +- ...ech_Services_Domain_Models_Cfe_xml_Det.php | 4 +- ...ch_Services_Domain_Models_Cfe_xml_Emit.php | 2 +- ...Services_Domain_Models_Cfe_xml_Imposto.php | 12 +- ..._Services_Domain_Models_Cfe_xml_InfCFe.php | 16 +- ...ch_Services_Domain_Models_Cfe_xml_Prod.php | 2 +- ...Tech_Api_Resources_AddressResourceItem.php | 29 - ...urces_TaxCoupon_CouponDeliveryResource.php | 16 - ...fe_CouponAdditionalInformationResource.php | 21 - ..._Domain_Models_Cfe_CouponBuyerResource.php | 18 - ...ain_Models_Cfe_CouponCofinsTaxResource.php | 25 - ...ain_Models_Cfe_CouponICMSTotalResource.php | 28 - ..._Domain_Models_Cfe_CouponISSQNResource.php | 27 - ...in_Models_Cfe_CouponISSQNTotalResource.php | 24 - ...omain_Models_Cfe_CouponIcmsTaxResource.php | 23 - ...Domain_Models_Cfe_CouponIssuerResource.php | 28 - ...s_Domain_Models_Cfe_CouponItemResource.php | 38 - ...omain_Models_Cfe_CouponItemTaxResource.php | 23 - ...Models_Cfe_CouponPaymentDetailResource.php | 21 - ...omain_Models_Cfe_CouponPaymentResource.php | 20 - ...Domain_Models_Cfe_CouponPisTaxResource.php | 25 - ...omain_Models_Cfe_CouponTaxBaseResource.php | 20 - ...e_CouponTaxReferencedDocumentsResource.php | 17 - ..._Domain_Models_Cfe_CouponTotalResource.php | 22 - ..._Domain_Models_Cfe_FiscoFieldsResource.php | 20 - ...es_Domain_Models_Cfe_TaxCouponResource.php | 35 - ...ech_Services_Domain_Models_Cfe_xml_CFe.php | 19 - ...rvices_Domain_Models_Cfe_xml_CFeCOFINS.php | 19 - ...es_Domain_Models_Cfe_xml_CFeCOFINSBase.php | 14 - ...ices_Domain_Models_Cfe_xml_CFeCOFINSST.php | 23 - ...Services_Domain_Models_Cfe_xml_CFeICMS.php | 19 - ...ices_Domain_Models_Cfe_xml_CFeICMSBase.php | 14 - ...vices_Domain_Models_Cfe_xml_CFeICMSTot.php | 26 - ...ervices_Domain_Models_Cfe_xml_CFeISSQN.php | 27 - ...ices_Domain_Models_Cfe_xml_CFeISSQNTot.php | 24 - ..._Services_Domain_Models_Cfe_xml_CFePIS.php | 19 - ...vices_Domain_Models_Cfe_xml_CFePISBase.php | 14 - ...ervices_Domain_Models_Cfe_xml_CFePISST.php | 23 - ...ervices_Domain_Models_Cfe_xml_CFeTotal.php | 23 - ...ices_Domain_Models_Cfe_xml_DescAcrEntr.php | 20 - ...ch_Services_Domain_Models_Cfe_xml_Dest.php | 21 - ...ech_Services_Domain_Models_Cfe_xml_Det.php | 21 - ...ch_Services_Domain_Models_Cfe_xml_Emit.php | 27 - ...rvices_Domain_Models_Cfe_xml_EnderEmit.php | 21 - ...Services_Domain_Models_Cfe_xml_Entrega.php | 24 - ...ech_Services_Domain_Models_Cfe_xml_Ide.php | 33 - ...Services_Domain_Models_Cfe_xml_Imposto.php | 25 - ...Services_Domain_Models_Cfe_xml_InfAdic.php | 20 - ..._Services_Domain_Models_Cfe_xml_InfCFe.php | 31 - ...Tech_Services_Domain_Models_Cfe_xml_MP.php | 21 - ...ervices_Domain_Models_Cfe_xml_ObsFisco.php | 20 - ...ices_Domain_Models_Cfe_xml_ObsFiscoDet.php | 20 - ...ch_Services_Domain_Models_Cfe_xml_Pgto.php | 20 - ...ch_Services_Domain_Models_Cfe_xml_Prod.php | 34 - ...taTech_Services_Domain_Models_CityBase.php | 17 - ...Tech_TaxPayers_Domain_Entities_Address.php | 2 +- ...ch_TaxPayers_Resources_AddressResource.php | 2 +- ..._Resources_CertificateMetadataResource.php | 2 +- ...ources_CertificateMetadataResourceItem.php | 2 +- ...xPayers_Resources_CompanyCertificateV1.php | 2 +- ..._Resources_CompanyCollectionResourceV1.php | 2 +- ...ch_TaxPayers_Resources_CompanyResource.php | 2 +- ...axPayers_Resources_CompanyResourceItem.php | 6 +- ..._TaxPayers_Resources_CompanyResourceV1.php | 20 +- ...yers_Resources_CompanySingleResourceV1.php | 2 +- ...Payers_Resources_CreateCompanyResource.php | 2 +- ...rs_Resources_CreateCompanyResourceItem.php | 4 +- ...s_Resources_CreateMunicipalTaxResource.php | 2 +- ...sources_CreateMunicipalTaxResourceItem.php | 12 +- ...reateStateTaxProcessingDetailsResource.php | 2 +- ...ayers_Resources_CreateStateTaxResource.php | 2 +- ...s_Resources_CreateStateTaxResourceItem.php | 12 +- ...xPayers_Resources_MunicipalTaxResource.php | 2 +- ...ers_Resources_MunicipalTaxResourceItem.php | 16 +- ...Tech_TaxPayers_Resources_SerieResource.php | 2 +- ...h_TaxPayers_Resources_StateTaxResource.php | 2 +- ...xPayers_Resources_StateTaxResourceItem.php | 14 +- ...ources_StateTaxSwitchAuthorizerRequest.php | 2 +- ...urces_StateTaxSwitchAuthorizerResponse.php | 4 +- ...Payers_Resources_UpdateCompanyResource.php | 2 +- ...rs_Resources_UpdateCompanyResourceItem.php | 4 +- ...s_Resources_UpdateMunicipalTaxResource.php | 2 +- ...sources_UpdateMunicipalTaxResourceItem.php | 12 +- ...ayers_Resources_UpdateStateTaxResource.php | 2 +- ...s_Resources_UpdateStateTaxResourceItem.php | 12 +- ...icrosoft_OData_Edm_IEdmEntityContainer.php | 4 +- ...t_OData_Edm_IEdmEntityContainerElement.php | 4 +- .../Microsoft_OData_Edm_IEdmExpression.php | 2 +- .../Microsoft_OData_Edm_IEdmModel.php | 10 +- .../Microsoft_OData_Edm_IEdmSchemaElement.php | 2 +- .../Microsoft_OData_Edm_IEdmType.php | 2 +- .../Microsoft_OData_Edm_IEdmTypeReference.php | 2 +- ...rosoft_OData_Edm_Vocabularies_IEdmTerm.php | 4 +- ..._Vocabularies_IEdmVocabularyAnnotation.php | 6 +- .../Microsoft_OData_ODataEntitySetInfo.php | 2 +- ...icrosoft_OData_ODataFunctionImportInfo.php | 2 +- .../Microsoft_OData_ODataServiceDocument.php | 8 +- .../Microsoft_OData_ODataSingletonInfo.php | 2 +- src/Version.php | 2 +- tests/Generator/GeneratorSummaryTest.php | 84 + tests/Generator/LinterTest.php | 34 + tests/Generator/TypeMapperTest.php | 67 + 128 files changed, 500 insertions(+), 2652 deletions(-) delete mode 100644 openapi/consumer-invoice-v3.yaml create mode 100644 scripts/Generator/Linter.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Api_Resources_AddressResourceItem.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponAdditionalInformationResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponBuyerResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponCofinsTaxResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponICMSTotalResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponISSQNResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponISSQNTotalResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponIcmsTaxResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponIssuerResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponItemResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponItemTaxResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponPaymentDetailResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponPaymentResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponPisTaxResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponTaxBaseResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponTaxReferencedDocumentsResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_CouponTotalResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_FiscoFieldsResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_TaxCouponResource.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFe.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINSBase.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINSST.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMS.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMSBase.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMSTot.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeISSQN.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeISSQNTot.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFePIS.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFePISBase.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFePISST.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_CFeTotal.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_DescAcrEntr.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Dest.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Det.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Emit.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_EnderEmit.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Entrega.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Ide.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Imposto.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_InfAdic.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_InfCFe.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_MP.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_ObsFisco.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_ObsFiscoDet.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Pgto.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_Prod.php delete mode 100644 src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_CityBase.php create mode 100644 tests/Generator/GeneratorSummaryTest.php create mode 100644 tests/Generator/LinterTest.php create mode 100644 tests/Generator/TypeMapperTest.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 47a2f34..8f0a002 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,39 @@ e este projeto segue [Versionamento Semântico](https://semver.org/lang/pt-BR/sp ## [Unreleased] +## [3.4.1] — 2026-07-31 + +### Corrigido + +- **PHP inválido removido do pacote** (`harden-openapi-generator`): 79 arquivos de + `src/Generated/` em 4 namespaces (`ContribuintesV2`, `ConsultaNfConsumidorV3`, + `ConsumerInvoiceV3`, `ConsultaCteV2`) carregavam type-hints com ponto + (ex.: `?DFeTech.TaxPayers.Resources.MunicipalTaxResourceItem`) — erro de parse + fatal se qualquer autoload classmap-authoritative, `opcache.preload` ou análise + estática do consumidor tocasse as classes. Causa: `TypeMapper::resolveRef()` + devolvia o nome cru do schema; agora todo hint derivado de `$ref` (direto, em + union e em items de array) passa pela mesma sanitização de identificador do nome + da classe (`NameMapper::phpIdentifier()`), então classe e referência nunca + divergem. Nada em runtime usa `Nfe\Generated\*` — por isso patch. + +### Adicionado + +- **Lint sintático do código gerado**: `scripts/generate.php` valida cada arquivo + emitido (`token_get_all` com `TOKEN_PARSE`) e falha listando os ofensores — + tanto no generate quanto no `--check` do CI. A classe inteira do bug ("PHP + inválido embarcado no dist") agora é falha de build. +- **Fim do skip silencioso**: o generate imprime um sumário por spec com a + contagem de arquivos emitidos — specs Swagger 2.0 (fora do alcance do gerador, + que só lê `components.schemas`) são informativas; uma spec OpenAPI 3.x que + regredir a 0 schemas ganha aviso destacado. + +### Removido + +- `openapi/consumer-invoice-v3.yaml` — duplicata byte-idêntica de + `consulta-nf-consumidor-v3.yaml` (só 1 linha `x-displayName` diferia); com ela + saem os 49 arquivos duplicados de `src/Generated/ConsumerInvoiceV3/` (metade + era PHP inválido). Nenhum código referenciava o namespace. + ## [3.4.0] — 2026-07-30 ### Depreciado diff --git a/VERSION b/VERSION index 15a2799..47b322c 100755 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.3.0 +3.4.1 diff --git a/openapi/consumer-invoice-v3.yaml b/openapi/consumer-invoice-v3.yaml deleted file mode 100644 index c5e378b..0000000 --- a/openapi/consumer-invoice-v3.yaml +++ /dev/null @@ -1,1371 +0,0 @@ -openapi: 3.0.0 -info: - version: v1 - title: Consumer Invoices API - description:

Como utilizar esta documentação ?

Certifique-se que sua - chave da API está preenchida no topo desta página para este recurso - funcionar da maneira correta. Abaixo você poderá conferir a lista de - recursos que podem ser manipulados através da API. Clicando em cada um dos - métodos, você poderá verificar a lista de parâmetros, possíveis retornos e - também um formulário. Este formulário pode ser utilizado para efetuar - requisições reais na API.

-paths: - "/v1/consumerinvoices/coupon/{accessKey}": - get: - tags: - - Coupon - summary: Consulta de Cupom Fiscal Eletrônico por Chave de Acesso - description: Você precisará do APIKEY da Empresa - operationId: V1ConsumerinvoicesCouponByAccessKeyGet - parameters: - - name: accessKey - in: path - description: Chave de Acesso - required: true - schema: - type: string - responses: - "200": - description: Sucesso na requisição - content: - application/json: - schema: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.TaxCouponResour\ - ce" - "400": - description: Algum parametro informado não é válido - content: - application/json: - schema: - type: string - "401": - description: Não autorizado, verificar o cabeçalho do HTTP Authorization - "403": - description: Accesso proibido - "404": - description: Nota Fiscal não foi encontrada - content: - application/json: - schema: - type: string - "500": - description: Erro no processamento - content: - application/json: - schema: - type: string - security: - - Authorization_Header: - - apiKey - - Authorization_QueryParam: - - apiKey - "/v1/consumerinvoices/coupon/{accessKey}.xml": - get: - tags: - - Coupon - summary: Consulta de Cupom Fiscal Eletrônico por Chave de Acesso - description: Você precisará do APIKEY da Empresa - operationId: V1ConsumerinvoicesCouponByAccessKey}.xmlGet - parameters: - - name: accessKey - in: path - description: Chave de Acesso - required: true - schema: - type: string - responses: - "200": - description: Sucesso na requisição - content: - application/xml: - schema: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFe" - application/json: - schema: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFe" - "400": - description: Algum parametro informado não é válido - content: - application/xml: - schema: - type: string - application/json: - schema: - type: string - "401": - description: Não autorizado, verificar o cabeçalho do HTTP Authorization - "403": - description: Accesso proibido - "404": - description: Nota Fiscal não foi encontrada - content: - application/xml: - schema: - type: string - application/json: - schema: - type: string - "500": - description: Erro no processamento - content: - application/xml: - schema: - type: string - application/json: - schema: - type: string - security: - - Authorization_Header: - - apiKey - - Authorization_QueryParam: - - apiKey -security: - - Authorization_Header: [] - Authorization_QueryParam: [] -servers: - - url: //nfe.api.nfe.io -components: - securitySchemes: - Authorization_Header: - name: Authorization - in: header - type: apiKey - description: Autenticar usando o Cabeçalho HTTP Authorization com sua API Key - Authorization_QueryParam: - name: apikey - in: query - type: apiKey - description: 'Autenticar usando o Parametro na URL, exemplo: - "/?apikey={APIKEY_TOKEN}"' - schemas: - DataTech.Services.Domain.Models.Cfe.TaxCouponResource: - description: Cupom fiscal eletrônico (CFe) - type: object - properties: - currentStatus: - description: Situação Atual - enum: - - Unknown - - Authorized - - Canceled - type: string - number: - format: int64 - description: Número do Documento Fiscal (nNF) - type: integer - satSerie: - description: Número de Série do SAT (nserieSAT) - type: string - softwareVersion: - description: Versão do Software Básico (versaoSB) - type: string - softwareFederalTaxNumber: - format: int64 - description: CNPJ Software House (CNPJ) - type: integer - accessKey: - description: Chave de Acesso (Id) - type: string - cashier: - format: int64 - description: Número do Caixa (numeroCaixa) - type: integer - issuedOn: - format: date-time - description: "Data de emissão do Documento Fiscal\r - - \r - - \ Data e hora no formato UTC (Universal Coordinated - Time): AAAA-MM-DDThh:mm:ssTZD.\r - - " - type: string - createdOn: - format: date-time - description: "Data de consulta\r - - \r - - \ Data e hora no formato UTC (Universal Coordinated - Time): AAAA-MM-DDThh:mm:ssTZD.\r - - " - type: string - xmlVersion: - description: Versão do leiaute (versaoDadosEnt) - type: string - issuer: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponIssuerRes\ - ource" - buyer: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponBuyerReso\ - urce" - totals: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponTotalReso\ - urce" - delivery: - $ref: "#/components/schemas/DataTech.Api.Resources.TaxCoupon.CouponDeliveryReso\ - urce" - additionalInformation: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponAdditiona\ - lInformationResource" - items: - description: Detalhamento do produto (det) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponItemResou\ - rce" - payment: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponPaymentRe\ - source" - DataTech.Services.Domain.Models.Cfe.CouponIssuerResource: - description: Emitente (emit) - type: object - properties: - federalTaxNumber: - format: int64 - description: CNPJ do emitente (CNPJ) / CPF do remetente (CPF) - type: integer - type: - description: "Tipo da pessoa: Jurídica ou Física" - enum: - - Undefined - - NaturalPerson - - LegalEntity - type: string - name: - description: Razão Social ou Nome do emitente (xNome) - type: string - tradeName: - description: Nome fantasia (xFant) - type: string - address: - $ref: "#/components/schemas/DataTech.Api.Resources.AddressResourceItem" - stateTaxNumber: - description: Inscrição Estadual (IE) - type: string - taxRegime: - description: "Código de Regime Tributário (CRT)\r - - \r - - \ 1 - Simples Nacional (National_Simple)\r - - \ 2 - Simples Nacional, excesso sublimite de receita - bruta (National_Simple_Brute)\r - - \ 3 - Regime Normal (Normal_Regime)\r - - " - enum: - - National_Simple - - National_Simple_Brute - - Normal_Regime - type: string - municipalTaxNumber: - description: Inscrição Municipal do Prestador de Serviço (IM) - type: string - iss: - description: Regime Especial de Tributação do ISSQN (cRegTrib) - type: string - avarageIndicator: - description: Indicador de Rateio do Desconto Sobre Subtotal (indRatISSQN) - type: boolean - DataTech.Services.Domain.Models.Cfe.CouponBuyerResource: - type: object - properties: - pretectedPersonalInformation: - description: CNPJ do Destinantario (CNPJ) / CPF do destinatário (CPF) - Protegido - type: string - federalTaxNumber: - format: int64 - description: CNPJ do Destinantario (CNPJ) / CPF do destinatário (CPF) - type: integer - name: - description: Razão Social ou nome do destinatário (xNome) - type: string - DataTech.Services.Domain.Models.Cfe.CouponTotalResource: - description: Grupo de Valores Totais do CF-e - type: object - properties: - icms: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponICMSTotal\ - Resource" - issqn: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponISSQNTota\ - lResource" - totalAmount: - format: double - description: Valor dos Tributos Aproximado do CFe-SAT Lei12471/12 (vCFeLei12741) - type: number - couponAmount: - format: double - description: Valor Total do CF-e (vCFe) - type: number - DataTech.Api.Resources.TaxCoupon.CouponDeliveryResource: - type: object - properties: - address: - $ref: "#/components/schemas/DataTech.Api.Resources.AddressResourceItem" - DataTech.Services.Domain.Models.Cfe.CouponAdditionalInformationResource: - description: Informacoes Adicionais (infAdic) - type: object - properties: - taxpayer: - description: Informações Complementares de interesse do Contribuinte (infCpl) - type: string - fisco: - description: Informações Adicionais de Interesse do Fisco (obsFisco) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.FiscoFieldsReso\ - urce" - referencedDocuments: - description: Documentos Fiscais Referenciados - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponTaxRefere\ - ncedDocumentsResource" - DataTech.Services.Domain.Models.Cfe.CouponItemResource: - description: Produto (prod) - type: object - properties: - description: - description: Descrição do produto ou serviço (xProd) - type: string - quantity: - format: double - description: Quantidade Comercial (qCom) - type: number - unit: - description: Unidade Comercial (uCom) - type: string - code: - description: Código do produto ou serviço (cProd) - type: string - codeGTIN: - description: "GTIN (Global Trade Item Number) do produto, \r - - antigo código EAN ou código de barras (cEAN)" - type: string - ncm: - description: Código NCM com 8 dígitos ou 2 dígitos (gênero) (NCM) - type: string - cfop: - format: int64 - description: Código Fiscal de Operações e Prestações (CFOP) - type: integer - cest: - description: Código especificador da substituição tributária (CEST) - type: string - unitAmount: - format: double - description: Valor Unitário de Comercialização (vUnCom) - type: number - discountAmount: - format: double - description: Valor do Desconto (vDesc) - type: number - othersAmount: - format: double - description: Outras despesas acessórias (vOutro) - type: number - additionalInformation: - description: Informações Adicionais do Produto (infAdProd) - type: string - itemNumberOrderBuy: - format: int32 - description: Item do Pedido de Compra (nItem) - type: integer - netAmount: - format: double - description: Valor Líquido (vItem) - type: number - grossAmount: - format: double - description: Valor Bruto (vProd) - type: number - rule: - description: "Indicador da regra de cálculo utilizada para Valor Bruto dos - Produtos e Serviços\r - - \ A - ArredondamentoT - - Truncamento" - type: string - apportionmentDiscountAmount: - format: double - description: Rateio desconto (vRatDesc) - type: number - apportionmentAmount: - format: double - description: Rateio acréscimo (vRatAcr) - type: number - fisco: - description: Observação fisco (obsFiscoDet) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.FiscoFieldsReso\ - urce" - tax: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponItemTaxRe\ - source" - DataTech.Services.Domain.Models.Cfe.CouponPaymentResource: - description: Grupo de Formas de Pagamento (pgto) - type: object - properties: - payBack: - format: double - description: Valor do troco (vTroco) - type: number - paymentDetails: - description: Grupo Detalhamento da Forma de Pagamento (MP) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponPaymentDe\ - tailResource" - DataTech.Api.Resources.AddressResourceItem: - description: Endereço - type: object - properties: - state: - description: Estado - type: string - city: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.CityBase" - district: - description: Bairro - type: string - additionalInformation: - description: Informações adicionais - type: string - streetSuffix: - description: Sufixo da rua - type: string - street: - description: Nome da rua - type: string - number: - description: Número - type: string - numberMin: - type: string - numberMax: - type: string - postalCode: - description: CEP - type: string - country: - description: País - type: string - DataTech.Services.Domain.Models.Cfe.CouponICMSTotalResource: - description: Grupo de Valores Totais referentes ao ICMS (ICMSTot) - type: object - properties: - productAmount: - format: double - description: Valor Total dos produtos e serviços (vProd) - type: number - discountAmount: - format: double - description: Valor Total do Desconto (vDesc) - type: number - othersAmount: - format: double - description: Outras Despesas acessórias (vOutro) - type: number - icmsAmount: - format: double - description: Valor total de ICMS (vICMS) - type: number - inputDiscountAmount: - format: double - description: Valor de Entrada de desconto sobre subtotal (vDescSubtot) - type: number - inputAdditionAmount: - format: double - description: Valor de Entrada de acréscimo sobre subtotal (vAcresSubtot) - type: number - pisAmount: - format: double - description: Valor do PIS (vPIS) - type: number - cofinsAmount: - format: double - description: Valor do COFINS (vCOFINS) - type: number - pisstAmount: - format: double - description: Valor do PIS ST (vPISST) - type: number - cofinsstAmount: - format: double - description: Valor do COFINS ST (vCOFINSST) - type: number - DataTech.Services.Domain.Models.Cfe.CouponISSQNTotalResource: - description: Grupo de Valores Totais referentes ao ISSQN (ISSQNtot) - type: object - properties: - baseAmount: - format: double - description: Base de Cálculo do ISSQN (vBC) - type: number - issAmount: - format: double - description: Valor total de ISSQN (vISS) - type: number - pisAmount: - format: double - description: Valor do PIS (vPIS) - type: number - cofinsAmount: - format: double - description: Valor do COFINS (vCOFINS) - type: number - pisstAmount: - format: double - description: Valor do PIS ST (vPISST) - type: number - cofinsstAmount: - format: double - description: Valor do COFINS ST (vCOFINSST) - type: number - DataTech.Services.Domain.Models.Cfe.FiscoFieldsResource: - description: Observação fisco (obsFiscoDet) - type: object - properties: - key: - description: Campo (xCampoDet) - type: string - value: - description: Texto (xTextoDet) - type: string - DataTech.Services.Domain.Models.Cfe.CouponTaxReferencedDocumentsResource: - type: object - properties: - accessKey: - description: Chave de Acesso (refNFe) - type: string - order: - format: int32 - description: Número da ordem - type: integer - DataTech.Services.Domain.Models.Cfe.CouponItemTaxResource: - description: Tributos incidentes no Produto ou Serviço (imposto) - type: object - properties: - totalTax: - format: double - description: Valor aproximado total de tributos federais, estaduais e - municipais. (vItem12741) - type: number - icms: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponIcmsTaxRe\ - source" - pis: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponPisTaxRes\ - ource" - cofins: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponCofinsTax\ - Resource" - issqn: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponISSQNReso\ - urce" - DataTech.Services.Domain.Models.Cfe.CouponPaymentDetailResource: - description: Grupo Detalhamento da Forma de Pagamento (MP) - type: object - properties: - method: - description: Código do meio de pagamento (cMP) - enum: - - Cash - - Cheque - - CreditCard - - DebitCard - - StoreCredict - - FoodVouchers - - MealVouchers - - GiftVouchers - - FuelVouchers - - CommercialDuplicate - - BankSlip - - BankDeposit - - InstantPayment - - WireTransfer - - Cashback - - Unpaid - - Others - type: string - amount: - format: double - description: Valor do meio de pagamento (vMP) - type: number - card: - description: Grupo de Cartões (card) - type: string - DataTech.Services.Domain.Models.CityBase: - type: object - properties: - code: - description: Código do município (cMun) - type: string - name: - description: Nome do município (xMun) - type: string - DataTech.Services.Domain.Models.Cfe.CouponIcmsTaxResource: - description: Dados do ICMS Normal e ST (ICMS) - type: object - properties: - origin: - description: Origem da mercadoria (Orig) - type: string - cst: - description: Tributação do ICMS (CST) - type: string - csosn: - description: "101- Tributada pelo Simples Nacional com permissão de crédito. - (v.2.0) (CSOSN)\r - - Código de Situação da Operação – Simples Nacional" - type: string - amount: - format: double - description: "Valor do ICMS (vICMS)\r - - \r - - O valor do ICMS desonerado será informado apenas nas - operações:\r - - a) com produtos beneficiados com a desoneração - condicional do ICMS.\r - - b) destinadas à SUFRAMA, informando-se o valor que seria - devido se não houvesse isenção.\r - - c) de venda a órgãos da administração pública direta e - suas fundações e\r - - autarquias com isenção do ICMS. (NT 2011/004)" - type: number - rate: - format: double - description: Alíquota do imposto (pICMS) - type: number - DataTech.Services.Domain.Models.Cfe.CouponPisTaxResource: - description: Grupo PIS (PIS) - type: object - properties: - cst: - description: Código de Situação Tributária do PIS (CST) - type: string - st: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponTaxBaseRe\ - source" - baseTax: - format: double - description: Valor da Base de Cálculo (vBC) - type: number - rate: - format: double - description: Alíquota do (em percentual) (pPIS) - type: number - amount: - format: double - description: Valor - type: number - rateAmount: - format: double - description: Alíquota (em reais) (vAliqProd) - type: number - quantity: - format: double - description: Quantidade Vendida (qBCProd) - type: number - DataTech.Services.Domain.Models.Cfe.CouponCofinsTaxResource: - description: Grupo COFINS (COFINS) - type: object - properties: - cst: - description: "Código de Situação Tributária da COFINS\r - - Obs: 01 – Operação Tributável (base de cálculo = - valor da operação \r - - alíquota normal (cumulativo/não cumulativo));\r - - 02 - Operação Tributável (base de cálculo = valor da - operação (alíquota diferenciada)); (CST)" - type: string - st: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.CouponTaxBaseRe\ - source" - baseTax: - format: double - description: Valor da Base de Cálculo (vBC) - type: number - rate: - format: double - description: Alíquota do (em percentual) (pPIS) - type: number - amount: - format: double - description: Valor - type: number - rateAmount: - format: double - description: Alíquota (em reais) (vAliqProd) - type: number - quantity: - format: double - description: Quantidade Vendida (qBCProd) - type: number - DataTech.Services.Domain.Models.Cfe.CouponISSQNResource: - description: Grupo Imposto Sobre Serviço de Qualquer Natureza (ISSQN) - type: object - properties: - deductionsAmount: - format: double - description: Valor dedução para redução da Base de Cálculo (vDeducISSQN) - type: number - baseTax: - format: double - description: Valor da Base de Cálculo do ISSQN (vBC) - type: number - rate: - format: double - description: Alíquota do ISSQN (vAliq) - type: number - amount: - format: double - description: Valor do ISSQN (vISSQN) - type: number - federalServiceCode: - description: Item da Lista de Serviços (cListServ) - type: string - cityServiceCode: - description: Código do serviço prestado dentro do município (cServTribMun) - type: string - cityCode: - format: int64 - description: Código do Município do Fato Gerador do ISSQN (cMunFG) - type: integer - taxIncentive: - description: Incentivo Fiscal do ISSQN (indIncFisc) - enum: - - Yes - - No - type: string - operationNature: - description: Natureza de operação do ISSQN (cNatOp) - type: string - DataTech.Services.Domain.Models.Cfe.CouponTaxBaseResource: - type: object - properties: - baseTax: - format: double - description: Valor da Base de Cálculo (vBC) - type: number - rate: - format: double - description: Alíquota do (em percentual) (pPIS) - type: number - amount: - format: double - description: Valor - type: number - rateAmount: - format: double - description: Alíquota (em reais) (vAliqProd) - type: number - quantity: - format: double - description: Quantidade Vendida (qBCProd) - type: number - DataTech.Services.Domain.Models.Cfe.xml.CFe: - description: Cupom fiscal eletrônico (CFe) - type: object - properties: - infCFe: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.InfCFe" - DataTech.Services.Domain.Models.Cfe.xml.InfCFe: - type: object - properties: - ide: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Ide" - emit: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Emit" - dest: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Dest" - det: - description: Detalhamento do produto (det) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Det" - total: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeTotal" - pgto: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Pgto" - infAdic: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.InfAdic" - entrega: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Entrega" - versaoSB: - description: Versão do Software Básico (versaoSB) - type: string - versaoDadosEnt: - description: Versão do leiaute (versaoDadosEnt) - type: string - versao: - description: Versão (versao) - type: string - id: - description: Chave de Acesso (Id) - type: string - chCanc: - description: Chave de acesso do CF-e a ser cancelado (chCanc) - type: string - DataTech.Services.Domain.Models.Cfe.xml.Ide: - description: Grupo das informações de identificação do CF-e (ide) - type: object - properties: - cUF: - format: int32 - description: Código da UF do emitente do Documento Fiscal. Utilizar a Tabela do - IBGE. (cUF) - type: integer - cNF: - description: Código numérico que compõe a Chave de Acesso. Número aleatório - gerado pelo emitente para cada NF-e. (cNF) - type: string - mod: - description: Código do Modelo do documento fiscal (mod) - type: string - nserieSAT: - description: Número de Série do SAT (nserieSAT) - type: string - nCFe: - description: Número do Documento Fiscal (nNF) - type: string - dEmi: - format: date-time - type: string - proxydEmi: - description: Proxy para dEmi no formato AAAAMMDD (dEmi) - type: string - hEmi: - type: string - proxyHEmi: - description: Proxy para hEmi no formato HHMMSS (hEmi) - type: string - cDV: - format: int32 - description: Digito Verificador da Chave de Acesso da NF-e (cDV) - type: integer - tpAmb: - description: Identificação do Ambiente (tpAmb) - enum: - - Producao - - Homologacao - type: string - cnpj: - description: CNPJ Software House (CNPJ) - type: string - signAC: - description: Assinatura do aplicativo comercial (signAC) - type: string - assinaturaQRCODE: - description: Assinatura digital para uso em QRCODE(assinaturaQRCODE) - type: string - numeroCaixa: - description: Número do Caixa (numeroCaixa) - type: string - DataTech.Services.Domain.Models.Cfe.xml.Emit: - description: Emitente (emit) - type: object - properties: - cnpj: - description: CNPJ do emitente (CNPJ) - type: string - xNome: - description: Razão Social ou Nome do emitente (xNome) - type: string - xFant: - description: Nome fantasia (xFant) - type: string - enderEmit: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.EnderEmit" - ie: - description: Inscrição Estadual (IE) - type: string - im: - description: Inscrição Municipal do Prestador de Serviço (IM) - type: string - cRegTrib: - description: "Código de Regime Tributário (CRT)\r - - \r - - \ 1 - Simples Nacional (National_Simple)\r - - \ 2 - Simples Nacional, excesso sublimite de receita - bruta (National_Simple_Brute)\r - - \ 3 - Regime Normal (Normal_Regime)\r - - " - enum: - - SimplesNacional - - SimplesNacionalExcessoSublimite - - RegimeNormal - type: string - cRegTribISSQN: - description: Regime Especial de Tributação do ISSQN (cRegTrib) - type: string - indRatISSQN: - description: Indicador de Rateio do Desconto Sobre Subtotal (indRatISSQN) - type: string - DataTech.Services.Domain.Models.Cfe.xml.Dest: - description: Destinatario (dest) - type: object - properties: - cnpj: - description: CNPJ do Destinantario (CNPJ) - type: string - cpf: - description: CPF do destinatário (CPF) - type: string - xNome: - description: Razão Social ou nome do destinatário (xNome) - type: string - DataTech.Services.Domain.Models.Cfe.xml.Det: - description: Detalhamento do produto (det) - type: object - properties: - prod: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Prod" - imposto: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.Imposto" - nItem: - format: int32 - description: Item do Pedido de Compra (nItem) - type: integer - DataTech.Services.Domain.Models.Cfe.xml.CFeTotal: - description: Grupo de Valores Totais (total) - type: object - properties: - icmsTot: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeICMSTot" - issqNtot: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeISSQNTot" - descAcrEntr: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.DescAcrEntr" - vCFe: - format: double - description: Valor Total do CF-e (vCFe) - type: number - vCFeLei12741: - format: double - description: Valor dos Tributos Aproximado do CFe-SAT Lei12471/12 (vCFeLei12741) - type: number - DataTech.Services.Domain.Models.Cfe.xml.Pgto: - description: Grupo de Formas de Pagamento (pgto) - type: object - properties: - mp: - description: Grupo Detalhamento da Forma de Pagamento (MP) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.MP" - vTroco: - format: double - description: Valor do troco (vTroco) - type: number - DataTech.Services.Domain.Models.Cfe.xml.InfAdic: - description: Informacoes Adicionais (infAdic) - type: object - properties: - infCpl: - description: Informações Complementares de interesse do Contribuinte (infCpl) - type: string - obsFisco: - description: Informações Adicionais de Interesse do Fisco (obsFisco) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.ObsFisco" - DataTech.Services.Domain.Models.Cfe.xml.Entrega: - description: Dados do Local da Entrega (entrega) - type: object - properties: - uf: - description: Estado (UF) - type: string - xLgr: - description: Logradouro do Endereco (xLgr) - type: string - nro: - description: Número (nro) - type: string - xCpl: - description: Complemento (xCpl) - type: string - xBairro: - description: Bairro (xBairro) - type: string - xMun: - description: Município (xMun) - type: string - DataTech.Services.Domain.Models.Cfe.xml.EnderEmit: - type: object - properties: - cep: - description: Código do CEP (CEP) - type: string - xLgr: - description: Logradouro do Endereco (xLgr) - type: string - nro: - description: Número (nro) - type: string - xCpl: - description: Complemento (xCpl) - type: string - xBairro: - description: Bairro (xBairro) - type: string - xMun: - description: Município (xMun) - type: string - DataTech.Services.Domain.Models.Cfe.xml.Prod: - type: object - properties: - cProd: - description: Código do produto ou serviço (cProd) - type: string - cEAN: - description: "GTIN (Global Trade Item Number) do produto, \r - - antigo código EAN ou código de barras (cEAN)" - type: string - xProd: - description: Descrição do produto ou serviço (xProd) - type: string - ncm: - description: Código NCM com 8 dígitos ou 2 dígitos (gênero) (NCM) - type: string - cfop: - format: int32 - description: Código Fiscal de Operações e Prestações (CFOP) - type: integer - uCom: - description: Unidade Comercial (uCom) - type: string - qCom: - format: double - description: Quantidade Comercial (qCom) - type: number - vUnCom: - format: double - description: Valor Unitário de Comercialização (vUnCom) - type: number - vProd: - format: double - description: Valor Bruto (vProd) - type: number - indRegra: - description: "Indicador da regra de cálculo utilizada para Valor Bruto dos - Produtos e Serviços\r - - \ A - ArredondamentoT - - Truncamento" - type: string - vDesc: - format: double - description: Valor do Desconto (vDesc) - type: number - vOutro: - format: double - description: Outras despesas acessórias (vOutro) - type: number - vItem: - format: double - description: Valor Líquido (vItem) - type: number - vRatDesc: - format: double - description: Rateio desconto (vRatDesc) - type: number - vRatAcr: - format: double - description: Rateio acréscimo (vRatAcr) - type: number - obsFiscoDet: - description: Observação fisco (obsFiscoDet) - type: array - items: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.ObsFiscoDet" - DataTech.Services.Domain.Models.Cfe.xml.Imposto: - description: Tributos incidentes no Produto ou Serviço (imposto) - type: object - properties: - vItem12741: - format: double - description: Valor aproximado total de tributos federais, estaduais e - municipais. (vItem12741) - type: number - icms: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeICMS" - pis: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFePIS" - cofins: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINS" - cofinsst: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINSST" - pisst: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFePISST" - issqn: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeISSQN" - DataTech.Services.Domain.Models.Cfe.xml.CFeICMSTot: - description: Grupo de Valores Totais referentes ao ICMS (ICMSTot) - type: object - properties: - vICMS: - format: double - description: Valor total de ICMS (vICMS) - type: number - vProd: - format: double - description: Valor Total dos produtos e serviços (vProd) - type: number - vDesc: - format: double - description: Valor Total do Desconto (vDesc) - type: number - vPIS: - format: double - description: Valor do PIS (vPIS) - type: number - vCOFINS: - format: double - description: Valor do COFINS (vCOFINS) - type: number - vPISST: - format: double - description: Valor do PIS ST (vPISST) - type: number - vCOFINSST: - format: double - description: Valor do COFINS ST (vCOFINSST) - type: number - vOutro: - format: double - description: Outras Despesas acessórias (vOutro) - type: number - DataTech.Services.Domain.Models.Cfe.xml.CFeISSQNTot: - description: Grupo de Valores Totais referentes ao ISSQN (ISSQNtot) - type: object - properties: - vBC: - format: double - description: Base de Cálculo do ISSQN (vBC) - type: number - vISS: - format: double - description: Valor total de ISSQN (vISS) - type: number - vPIS: - format: double - description: Valor do PIS (vPIS) - type: number - vCOFINS: - format: double - description: Valor do COFINS (vCOFINS) - type: number - vPISST: - format: double - description: Valor do PIS ST (vPISST) - type: number - vCOFINSST: - format: double - description: Valor do COFINS ST (vCOFINSST) - type: number - DataTech.Services.Domain.Models.Cfe.xml.DescAcrEntr: - description: Grupo de valores de entrada de Desconto/Acréscimo sobre Subtotal - (DescAcrEntr) - type: object - properties: - vDescSubtot: - format: double - description: Valor de Entrada de Desconto sobre Subtotal - type: number - vAcresSubtot: - format: double - description: Valor de Entrada de Acréscimo sobre Subtotal - type: number - DataTech.Services.Domain.Models.Cfe.xml.MP: - description: Grupo Detalhamento da Forma de Pagamento (MP) - type: object - properties: - cMP: - description: Código do meio de pagamento (cMP) - enum: - - fpDinheiro - - fpCheque - - fpCartaoCredito - - fpCartaoDebito - - fpCreditoLoja - - fpValeAlimentacao - - fpValeRefeicao - - fpValePresente - - fpValeCombustivel - - fpDuplicataMercantil - - fpBoletoBancario - - fpSemPagamento - - fpOutro - - fpDepositoBancario - - fpPagamentoInstantaneoPIX - - fpTransferenciabancaria - - fpProgramadefidelidade - type: string - vMP: - format: double - description: Valor do meio de pagamento (vMP) - type: number - cAdmc: - description: Credenciadora de cartão de débito ou crédito (cAmd) - type: string - DataTech.Services.Domain.Models.Cfe.xml.ObsFisco: - description: Informações Adicionais de Interesse do Fisco (obsFisco) - type: object - properties: - xTexto: - description: Texto (xTexto) - type: string - xCampo: - description: Campo (xCampo) - type: string - DataTech.Services.Domain.Models.Cfe.xml.ObsFiscoDet: - description: Observação fisco (obsFiscoDet) - type: object - properties: - xTextoDet: - description: Texto (xTextoDet) - type: string - xCampoDet: - description: Campo (xCampoDet) - type: string - DataTech.Services.Domain.Models.Cfe.xml.CFeICMS: - description: Dados do ICMS Normal (ICMS) - type: object - properties: - tipo: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeICMSBase" - DataTech.Services.Domain.Models.Cfe.xml.CFePIS: - description: Grupo PIS (PIS) - type: object - properties: - tipo: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFePISBase" - DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINS: - description: Grupo COFINS (COFINS) - type: object - properties: - tipo: - $ref: "#/components/schemas/DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINSBa\ - se" - DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINSST: - description: Grupo COFINS Substituição Tributária (COFINSST) - type: object - properties: - vBC: - format: double - description: Valor da Base de Cálculo da COFINS (vBC) - type: number - pCOFINS: - format: double - description: Alíquota da COFINS (em percentual) (pCOFINS) - type: number - qBCProd: - format: double - description: Quantidade Vendida (qBCProd) - type: number - vAliqProd: - format: double - description: Alíquota da COFINS (em reais) (vAliqProd) - type: number - vCOFINS: - format: double - description: Valor da COFINS (vCOFINS) - type: number - DataTech.Services.Domain.Models.Cfe.xml.CFePISST: - description: Grupo PIS Substituição Tributária (PISST) - type: object - properties: - vBC: - format: double - description: Valor da Base de Cálculo do PIS (vBC) - type: number - pPIS: - format: double - description: Alíquota do PIS (em percentual) (pPIS) - type: number - qBCProd: - format: double - description: Quantidade Vendida (qBCProd) - type: number - vAliqProd: - format: double - description: Alíquota do PIS (em reais) (vAliqProd) - type: number - vPIS: - format: double - description: Valor do PIS (vPIS) - type: number - DataTech.Services.Domain.Models.Cfe.xml.CFeISSQN: - description: Grupo Imposto Sobre Serviço de Qualquer Natureza (ISSQN) - type: object - properties: - vDeducISSQN: - format: double - description: Valor dedução para redução da Base de Cálculo (vDeducISSQN) - type: number - vBC: - format: double - description: Valor da Base de Cálculo do ISSQN (vBC) - type: number - vAliq: - format: double - description: Alíquota do ISSQN (vAliq) - type: number - vISSQN: - format: double - description: Valor do ISSQN (vISSQN) - type: number - cMunFG: - format: int64 - description: Código do Município do Fato Gerador do ISSQN (cMunFG) - type: integer - cListServ: - description: Item da Lista de Serviços (cListServ) - type: string - cServTribMun: - description: Código do serviço prestado dentro do município (cServTribMun) - type: string - cNatOp: - description: Natureza de operação do ISSQN (cNatOp) - type: string - indIncentivo: - description: Incentivo Fiscal do ISSQN (indIncFisc) - enum: - - iiSim - - iiNao - type: string - DataTech.Services.Domain.Models.Cfe.xml.CFeICMSBase: - type: object - properties: {} - DataTech.Services.Domain.Models.Cfe.xml.CFePISBase: - type: object - properties: {} - DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINSBase: - type: object - properties: {} diff --git a/scripts/Generator/CheckMode.php b/scripts/Generator/CheckMode.php index 28b0214..dfc8a23 100644 --- a/scripts/Generator/CheckMode.php +++ b/scripts/Generator/CheckMode.php @@ -13,11 +13,12 @@ final class CheckMode { /** + * @param array|null $expected Precomputed {@see Generator::generate()} output, to avoid regenerating. * @return array{ok: bool, added: list, removed: list, changed: list} */ - public static function diff(Generator $generator, string $outputRoot): array + public static function diff(Generator $generator, string $outputRoot, ?array $expected = null): array { - $expected = $generator->generate(); + $expected ??= $generator->generate(); $actual = self::scanDir($outputRoot); $added = array_values(array_diff(array_keys($expected), array_keys($actual))); diff --git a/scripts/Generator/Generator.php b/scripts/Generator/Generator.php index 8530d04..8a3f333 100644 --- a/scripts/Generator/Generator.php +++ b/scripts/Generator/Generator.php @@ -64,11 +64,12 @@ public function generate(): array * * Returns the list of relative paths written. * + * @param array|null $files Precomputed {@see self::generate()} output, to avoid regenerating. * @return list */ - public function writeTo(string $outputRoot): array + public function writeTo(string $outputRoot, ?array $files = null): array { - $files = $this->generate(); + $files ??= $this->generate(); $written = []; // Clean the output root (we own the directory completely). @@ -91,6 +92,42 @@ public function writeTo(string $outputRoot): array return $written; } + /** + * Per-spec emission report: how many files each spec yields, and whether + * the spec is Swagger 2.0 (out of the generator's reach by design — it + * only reads `components.schemas`). Zero emissions from an OpenAPI 3.x + * spec is a possible sync regression and deserves a warning upstream. + * + * @param array|null $files Precomputed {@see self::generate()} output, to avoid regenerating. + * @return list + */ + public function specSummary(?array $files = null): array + { + $files ??= $this->generate(); + + $emittedByNs = []; + foreach (array_keys($files) as $rel) { + $ns = strstr($rel, '/', true); + if ($ns !== false) { + $emittedByNs[$ns] = ($emittedByNs[$ns] ?? 0) + 1; + } + } + + $summary = []; + foreach ($this->discoverSpecs() as $specPath) { + $loader = SpecLoader::fromFile($specPath); + $ns = NameMapper::namespaceFromSpec($specPath); + + $summary[] = [ + 'spec' => basename($specPath), + 'emitted' => $emittedByNs[$ns] ?? 0, + 'swagger2' => isset($loader->raw['swagger']), + ]; + } + + return $summary; + } + /** * @return list */ diff --git a/scripts/Generator/Linter.php b/scripts/Generator/Linter.php new file mode 100644 index 0000000..d031d42 --- /dev/null +++ b/scripts/Generator/Linter.php @@ -0,0 +1,36 @@ + $files Map of relative path => PHP source. + * @return list Relative paths of files that fail to parse, with the parse error appended. + */ + public static function lint(array $files): array + { + $errors = []; + + foreach ($files as $rel => $source) { + try { + token_get_all($source, TOKEN_PARSE); + } catch (CompileError $e) { + $errors[] = "{$rel}: {$e->getMessage()}"; + } + } + + return $errors; + } +} diff --git a/scripts/Generator/NameMapper.php b/scripts/Generator/NameMapper.php index e8736de..4ccf110 100644 --- a/scripts/Generator/NameMapper.php +++ b/scripts/Generator/NameMapper.php @@ -41,7 +41,19 @@ public static function namespaceFromSpec(string $specFilename): string */ public static function className(string $schemaName): string { - $clean = preg_replace('/[^A-Za-z0-9_]/', '_', $schemaName) ?? $schemaName; + return self::phpIdentifier($schemaName); + } + + /** + * Turn an arbitrary schema name into a valid PHP identifier. + * + * Single source of truth for both emitted class names and $ref-derived + * type-hints, so a schema name and every reference to it always agree + * (e.g., "DFeTech.TaxPayers.Resources.X" -> "DFeTech_TaxPayers_Resources_X"). + */ + public static function phpIdentifier(string $name): string + { + $clean = preg_replace('/[^A-Za-z0-9_]/', '_', $name) ?? $name; // If it starts with a digit, prefix with underscore (PHP requirement). if ($clean !== '' && ctype_digit($clean[0])) { diff --git a/scripts/Generator/TypeMapper.php b/scripts/Generator/TypeMapper.php index 77a582a..4ba3ac2 100644 --- a/scripts/Generator/TypeMapper.php +++ b/scripts/Generator/TypeMapper.php @@ -116,10 +116,15 @@ private static function mapUnion(array $alternatives, string $namespace, bool $n /** * "#/components/schemas/Borrower" -> "Borrower" + * + * The resolved name goes through the same identifier sanitisation as the + * emitted class name, so dotted schema names ("DFeTech.TaxPayers.X") + * produce valid PHP type-hints that match the class actually generated. */ private static function resolveRef(string $ref): string { $pos = strrpos($ref, '/'); - return $pos === false ? $ref : substr($ref, $pos + 1); + $name = $pos === false ? $ref : substr($ref, $pos + 1); + return NameMapper::phpIdentifier($name); } } diff --git a/scripts/generate.php b/scripts/generate.php index 34fec84..632e016 100644 --- a/scripts/generate.php +++ b/scripts/generate.php @@ -19,6 +19,7 @@ use Nfe\Build\CheckMode; use Nfe\Build\Generator; +use Nfe\Build\Linter; $repoRoot = dirname(__DIR__); $specsDir = $repoRoot . '/openapi'; @@ -31,8 +32,36 @@ outputRoot: $outputRoot, ); +$files = $generator->generate(); + +// Per-spec summary: no spec is skipped silently. Swagger 2.0 specs are +// expected to emit nothing; an OpenAPI 3.x spec emitting nothing is a +// possible sync regression and gets a highlighted warning (but not a +// failure — the syntactic lint below is what fails builds). +fwrite(STDOUT, "Specs:\n"); +foreach ($generator->specSummary($files) as $row) { + if ($row['emitted'] === 0 && $row['swagger2']) { + fwrite(STDOUT, sprintf(" %-40s 0 schemas (Swagger 2.0 — out of the generator's reach)\n", $row['spec'])); + } elseif ($row['emitted'] === 0) { + fwrite(STDOUT, sprintf(" %-40s ⚠ WARNING: OpenAPI 3.x spec emitted 0 schemas (possible sync regression)\n", $row['spec'])); + } else { + fwrite(STDOUT, sprintf(" %-40s %d schema file(s)\n", $row['spec'], $row['emitted'])); + } +} + +// Syntactic lint: every emitted file must parse. This is the hard gate that +// keeps invalid PHP (e.g., unsanitised dotted type-hints) out of the dist. +$lintErrors = Linter::lint($files); +if ($lintErrors !== []) { + fwrite(STDERR, "✗ Generator emitted syntactically invalid PHP:\n"); + foreach ($lintErrors as $error) { + fwrite(STDERR, " {$error}\n"); + } + exit(1); +} + if ($checkMode) { - $diff = CheckMode::diff($generator, $outputRoot); + $diff = CheckMode::diff($generator, $outputRoot, $files); if ($diff['ok']) { fwrite(STDOUT, "✓ src/Generated/ is in sync with openapi/\n"); exit(0); @@ -52,6 +81,6 @@ exit(1); } -$written = $generator->writeTo($outputRoot); +$written = $generator->writeTo($outputRoot, $files); fwrite(STDOUT, "✓ Generated " . count($written) . " file(s) under src/Generated/\n"); exit(0); diff --git a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_EnableInboundProductInvoiceResource.php b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_EnableInboundProductInvoiceResource.php index ff1b72f..30ca0d5 100644 --- a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_EnableInboundProductInvoiceResource.php +++ b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_EnableInboundProductInvoiceResource.php @@ -13,6 +13,6 @@ public function __construct( public ?int $startFromNsu = null, public ?string $startFromDate = null, - public ?DFe.NetCore.Domain.Resources.ManifestAutomaticRulesResource $automaticManifesting = null, + public ?DFe_NetCore_Domain_Resources_ManifestAutomaticRulesResource $automaticManifesting = null, ) {} } diff --git a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_MetadataResource.php b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_MetadataResource.php index bd9b8ad..6008971 100644 --- a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_MetadataResource.php +++ b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_MetadataResource.php @@ -9,7 +9,7 @@ namespace Nfe\Generated\ConsultaCteV2; /** - * @param list|null $productInvoices + * @param list|null $productInvoices */ final readonly class DFe_NetCore_Domain_Resources_MetadataResource { @@ -19,8 +19,8 @@ public function __construct( public ?string $accessKey = null, public ?string $parentAccessKey = null, public ?array $productInvoices = null, - public ?DFe.NetCore.Domain.Resources.CompanyResource $company = null, - public ?DFe.NetCore.Domain.Enums.MetadataResourceType $type = null, + public ?DFe_NetCore_Domain_Resources_CompanyResource $company = null, + public ?DFe_NetCore_Domain_Enums_MetadataResourceType $type = null, public ?int $nsu = null, public ?string $issuedOn = null, public ?string $description = null, diff --git a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_ProductInvoiceInboundResource.php b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_ProductInvoiceInboundResource.php index e4808f2..c1b874d 100644 --- a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_ProductInvoiceInboundResource.php +++ b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_ProductInvoiceInboundResource.php @@ -13,9 +13,9 @@ public function __construct( public ?int $startFromNsu = null, public ?string $startFromDate = null, - public ?DFe.NetCore.Domain.Resources.ManifestAutomaticRulesResource $automaticManifesting = null, + public ?DFe_NetCore_Domain_Resources_ManifestAutomaticRulesResource $automaticManifesting = null, public ?string $companyId = null, - public ?DFe.NetCore.Domain.Enums.EntityStatus $status = null, + public ?DFe_NetCore_Domain_Enums_EntityStatus $status = null, public ?string $createdOn = null, public ?string $modifiedOn = null, ) {} diff --git a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_TransportationInvoiceInboundResource.php b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_TransportationInvoiceInboundResource.php index 396a14d..ca9d77a 100644 --- a/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_TransportationInvoiceInboundResource.php +++ b/src/Generated/ConsultaCteV2/DFe_NetCore_Domain_Resources_TransportationInvoiceInboundResource.php @@ -14,7 +14,7 @@ public function __construct( public ?int $startFromNsu = null, public ?string $startFromDate = null, public ?string $companyId = null, - public ?DFe.NetCore.Domain.Enums.EntityStatus $status = null, + public ?DFe_NetCore_Domain_Enums_EntityStatus $status = null, public ?string $createdOn = null, public ?string $modifiedOn = null, ) {} diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_AddressResourceItem.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_AddressResourceItem.php index f751221..cdfdf64 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_AddressResourceItem.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_AddressResourceItem.php @@ -15,7 +15,7 @@ { public function __construct( public ?string $state = null, - public ?DataTech.Services.Domain.Models.CityBase $city = null, + public ?DataTech_Services_Domain_Models_CityBase $city = null, public ?string $district = null, public ?string $additionalInformation = null, public ?string $streetSuffix = null, diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource.php index 16bb3d9..d6b6bce 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource.php @@ -11,6 +11,6 @@ final readonly class DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource { public function __construct( - public ?DataTech.Api.Resources.AddressResourceItem $address = null, + public ?DataTech_Api_Resources_AddressResourceItem $address = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponCofinsTaxResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponCofinsTaxResource.php index 02ad67c..ca04834 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponCofinsTaxResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponCofinsTaxResource.php @@ -15,7 +15,7 @@ { public function __construct( public ?string $cst = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponTaxBaseResource $st = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponTaxBaseResource $st = null, public ?float $baseTax = null, public ?float $rate = null, public ?float $amount = null, diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponIssuerResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponIssuerResource.php index be4aaac..9c49e64 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponIssuerResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponIssuerResource.php @@ -18,7 +18,7 @@ public function __construct( public ?string $type = null, public ?string $name = null, public ?string $tradeName = null, - public ?DataTech.Api.Resources.AddressResourceItem $address = null, + public ?DataTech_Api_Resources_AddressResourceItem $address = null, public ?string $stateTaxNumber = null, public ?string $taxRegime = null, public ?string $municipalTaxNumber = null, diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemResource.php index ead2218..823f92f 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemResource.php @@ -33,6 +33,6 @@ public function __construct( public ?float $apportionmentDiscountAmount = null, public ?float $apportionmentAmount = null, public ?array $fisco = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponItemTaxResource $tax = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponItemTaxResource $tax = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemTaxResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemTaxResource.php index 66da06e..7d9dcfa 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemTaxResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponItemTaxResource.php @@ -15,9 +15,9 @@ { public function __construct( public ?float $totalTax = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponIcmsTaxResource $icms = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponPisTaxResource $pis = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponCofinsTaxResource $cofins = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponISSQNResource $issqn = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponIcmsTaxResource $icms = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponPisTaxResource $pis = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponCofinsTaxResource $cofins = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponISSQNResource $issqn = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponPisTaxResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponPisTaxResource.php index 5a81e18..18aeb8e 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponPisTaxResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponPisTaxResource.php @@ -15,7 +15,7 @@ { public function __construct( public ?string $cst = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponTaxBaseResource $st = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponTaxBaseResource $st = null, public ?float $baseTax = null, public ?float $rate = null, public ?float $amount = null, diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponTotalResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponTotalResource.php index 782f6ce..3696324 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponTotalResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_CouponTotalResource.php @@ -14,8 +14,8 @@ final readonly class DataTech_Services_Domain_Models_Cfe_CouponTotalResource { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.CouponICMSTotalResource $icms = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponISSQNTotalResource $issqn = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponICMSTotalResource $icms = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponISSQNTotalResource $issqn = null, public ?float $totalAmount = null, public ?float $couponAmount = null, ) {} diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_TaxCouponResource.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_TaxCouponResource.php index f49b4d2..37ae924 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_TaxCouponResource.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_TaxCouponResource.php @@ -24,12 +24,12 @@ public function __construct( public ?string $issuedOn = null, public ?string $createdOn = null, public ?string $xmlVersion = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponIssuerResource $issuer = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponBuyerResource $buyer = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponTotalResource $totals = null, - public ?DataTech.Api.Resources.TaxCoupon.CouponDeliveryResource $delivery = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponAdditionalInformationResource $additionalInformation = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponIssuerResource $issuer = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponBuyerResource $buyer = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponTotalResource $totals = null, + public ?DataTech_Api_Resources_TaxCoupon_CouponDeliveryResource $delivery = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponAdditionalInformationResource $additionalInformation = null, public ?array $items = null, - public ?DataTech.Services.Domain.Models.Cfe.CouponPaymentResource $payment = null, + public ?DataTech_Services_Domain_Models_Cfe_CouponPaymentResource $payment = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFe.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFe.php index d4f183e..ac611a1 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFe.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFe.php @@ -14,6 +14,6 @@ final readonly class DataTech_Services_Domain_Models_Cfe_xml_CFe { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.InfCFe $infCFe = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_InfCFe $infCFe = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS.php index aa1337c..8e47b9b 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS.php @@ -14,6 +14,6 @@ final readonly class DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINSBase $tipo = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINSBase $tipo = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMS.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMS.php index ce606ec..0880a26 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMS.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeICMS.php @@ -14,6 +14,6 @@ final readonly class DataTech_Services_Domain_Models_Cfe_xml_CFeICMS { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeICMSBase $tipo = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeICMSBase $tipo = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFePIS.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFePIS.php index e78fe14..8b362b2 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFePIS.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFePIS.php @@ -14,6 +14,6 @@ final readonly class DataTech_Services_Domain_Models_Cfe_xml_CFePIS { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.CFePISBase $tipo = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFePISBase $tipo = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeTotal.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeTotal.php index 595f763..fded3f4 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeTotal.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_CFeTotal.php @@ -14,9 +14,9 @@ final readonly class DataTech_Services_Domain_Models_Cfe_xml_CFeTotal { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeICMSTot $icmsTot = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeISSQNTot $issqNtot = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.DescAcrEntr $descAcrEntr = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeICMSTot $icmsTot = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeISSQNTot $issqNtot = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_DescAcrEntr $descAcrEntr = null, public ?float $vCFe = null, public ?float $vCFeLei12741 = null, ) {} diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Det.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Det.php index 2af1431..028277b 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Det.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Det.php @@ -14,8 +14,8 @@ final readonly class DataTech_Services_Domain_Models_Cfe_xml_Det { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.Prod $prod = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Imposto $imposto = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Prod $prod = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Imposto $imposto = null, public ?int $nItem = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Emit.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Emit.php index 8d633e3..6b5011f 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Emit.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Emit.php @@ -17,7 +17,7 @@ public function __construct( public ?string $cnpj = null, public ?string $xNome = null, public ?string $xFant = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.EnderEmit $enderEmit = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_EnderEmit $enderEmit = null, public ?string $ie = null, public ?string $im = null, public ?string $cRegTrib = null, diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Imposto.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Imposto.php index 015d0ee..5300a4b 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Imposto.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Imposto.php @@ -15,11 +15,11 @@ { public function __construct( public ?float $vItem12741 = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeICMS $icms = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFePIS $pis = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINS $cofins = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeCOFINSST $cofinsst = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFePISST $pisst = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeISSQN $issqn = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeICMS $icms = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFePIS $pis = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINS $cofins = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeCOFINSST $cofinsst = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFePISST $pisst = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeISSQN $issqn = null, ) {} } diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_InfCFe.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_InfCFe.php index 34bc62b..022885f 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_InfCFe.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_InfCFe.php @@ -9,19 +9,19 @@ namespace Nfe\Generated\ConsultaNfConsumidorV3; /** - * @param list|null $det + * @param list|null $det */ final readonly class DataTech_Services_Domain_Models_Cfe_xml_InfCFe { public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.Ide $ide = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Emit $emit = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Dest $dest = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Ide $ide = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Emit $emit = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Dest $dest = null, public ?array $det = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeTotal $total = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Pgto $pgto = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.InfAdic $infAdic = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Entrega $entrega = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_CFeTotal $total = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Pgto $pgto = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_InfAdic $infAdic = null, + public ?DataTech_Services_Domain_Models_Cfe_xml_Entrega $entrega = null, public ?string $versaoSB = null, public ?string $versaoDadosEnt = null, public ?string $versao = null, diff --git a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Prod.php b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Prod.php index 7b36e27..0e57444 100644 --- a/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Prod.php +++ b/src/Generated/ConsultaNfConsumidorV3/DataTech_Services_Domain_Models_Cfe_xml_Prod.php @@ -9,7 +9,7 @@ namespace Nfe\Generated\ConsultaNfConsumidorV3; /** - * @param list|null $obsFiscoDet + * @param list|null $obsFiscoDet */ final readonly class DataTech_Services_Domain_Models_Cfe_xml_Prod { diff --git a/src/Generated/ConsumerInvoiceV3/DataTech_Api_Resources_AddressResourceItem.php b/src/Generated/ConsumerInvoiceV3/DataTech_Api_Resources_AddressResourceItem.php deleted file mode 100644 index 61dcc2b..0000000 --- a/src/Generated/ConsumerInvoiceV3/DataTech_Api_Resources_AddressResourceItem.php +++ /dev/null @@ -1,29 +0,0 @@ -|null $det - */ -final readonly class DataTech_Services_Domain_Models_Cfe_xml_InfCFe -{ - public function __construct( - public ?DataTech.Services.Domain.Models.Cfe.xml.Ide $ide = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Emit $emit = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Dest $dest = null, - public ?array $det = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.CFeTotal $total = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Pgto $pgto = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.InfAdic $infAdic = null, - public ?DataTech.Services.Domain.Models.Cfe.xml.Entrega $entrega = null, - public ?string $versaoSB = null, - public ?string $versaoDadosEnt = null, - public ?string $versao = null, - public ?string $id = null, - public ?string $chCanc = null, - ) {} -} diff --git a/src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_MP.php b/src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_MP.php deleted file mode 100644 index 6ed0f7c..0000000 --- a/src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_Cfe_xml_MP.php +++ /dev/null @@ -1,21 +0,0 @@ -|null $obsFiscoDet - */ -final readonly class DataTech_Services_Domain_Models_Cfe_xml_Prod -{ - public function __construct( - public ?string $cProd = null, - public ?string $cEAN = null, - public ?string $xProd = null, - public ?string $ncm = null, - public ?int $cfop = null, - public ?string $uCom = null, - public ?float $qCom = null, - public ?float $vUnCom = null, - public ?float $vProd = null, - public ?string $indRegra = null, - public ?float $vDesc = null, - public ?float $vOutro = null, - public ?float $vItem = null, - public ?float $vRatDesc = null, - public ?float $vRatAcr = null, - public ?array $obsFiscoDet = null, - ) {} -} diff --git a/src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_CityBase.php b/src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_CityBase.php deleted file mode 100644 index 25cc801..0000000 --- a/src/Generated/ConsumerInvoiceV3/DataTech_Services_Domain_Models_CityBase.php +++ /dev/null @@ -1,17 +0,0 @@ -|null $companies + * @param list|null $companies */ final readonly class DFeTech_TaxPayers_Resources_CompanyCollectionResourceV1 { diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResource.php index f0dbd72..b91f3ee 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResource.php @@ -14,6 +14,6 @@ final readonly class DFeTech_TaxPayers_Resources_CompanyResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.CompanyResourceItem $company = null, + public ?DFeTech_TaxPayers_Resources_CompanyResourceItem $company = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceItem.php index a4e205f..2cbf59b 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceItem.php @@ -16,15 +16,15 @@ public function __construct( public string $name, public int $federalTaxNumber, - public DFeTech.TaxPayers.Domain.Entities.TaxRegime $taxRegime, - public DFeTech.TaxPayers.Resources.AddressResource $address, + public DFeTech_TaxPayers_Domain_Entities_TaxRegime $taxRegime, + public DFeTech_TaxPayers_Resources_AddressResource $address, public ?string $accountId = null, public ?string $tradeName = null, public ?string $municipalTaxNumber = null, public ?string $id = null, public ?array $stateTaxes = null, public ?array $municipalTaxes = null, - public ?DFeTech.TaxPayers.Domain.Entities.Status $status = null, + public ?DFeTech_TaxPayers_Domain_Entities_Status $status = null, public ?string $createdOn = null, public ?string $modifiedOn = null, ) {} diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceV1.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceV1.php index e8f1af2..2fa0896 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceV1.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanyResourceV1.php @@ -16,11 +16,11 @@ public function __construct( public ?string $tradeName = null, public ?int $federalTaxNumber = null, public ?string $email = null, - public ?DFeTech.TaxPayers.Domain.Entities.Address $address = null, + public ?DFeTech_TaxPayers_Domain_Entities_Address $address = null, public ?string $openningDate = null, - public ?DFeTech.TaxPayers.Domain.Entities.TaxRegime $taxRegime = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, - public ?DFeTech.TaxPayers.Domain.Entities.LegalNature $legalNature = null, + public ?DFeTech_TaxPayers_Domain_Entities_TaxRegime $taxRegime = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, + public ?DFeTech_TaxPayers_Domain_Entities_LegalNature $legalNature = null, public ?int $companyRegistryNumber = null, public ?int $regionalTaxNumber = null, public ?string $municipalTaxNumber = null, @@ -28,16 +28,16 @@ public function __construct( public ?int $rpsNumber = null, public ?int $lastRpsSent = null, public ?float $issRate = null, - public ?DFeTech.TaxPayers.Domain.Entities.ApiEnvironment $environment = null, - public ?DFeTech.TaxPayers.Domain.Entities.MunicipalTaxFiscalStatus $fiscalStatus = null, - public ?DFeTech.TaxPayers.Domain.Entities.FederalTaxDeterminationBy $federalTaxDetermination = null, - public ?DFeTech.TaxPayers.Domain.Entities.MunicipalTaxDeterminationBy $municipalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_ApiEnvironment $environment = null, + public ?DFeTech_TaxPayers_Domain_Entities_MunicipalTaxFiscalStatus $fiscalStatus = null, + public ?DFeTech_TaxPayers_Domain_Entities_FederalTaxDeterminationBy $federalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_MunicipalTaxDeterminationBy $municipalTaxDetermination = null, public ?string $loginName = null, public ?string $loginPassword = null, public ?string $authIssueValue = null, - public ?DFeTech.TaxPayers.Resources.CompanyCertificateV1 $certificate = null, + public ?DFeTech_TaxPayers_Resources_CompanyCertificateV1 $certificate = null, public ?string $createdOn = null, public ?string $modifiedOn = null, - public ?DFeTech.TaxPayers.Domain.Entities.Status $status = null, + public ?DFeTech_TaxPayers_Domain_Entities_Status $status = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanySingleResourceV1.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanySingleResourceV1.php index 26e236e..ebb98f3 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanySingleResourceV1.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CompanySingleResourceV1.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_CompanySingleResourceV1 { public function __construct( - public ?DFeTech.TaxPayers.Resources.CompanyResourceV1 $companies = null, + public ?DFeTech_TaxPayers_Resources_CompanyResourceV1 $companies = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResource.php index 496ea72..6fc390a 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResource.php @@ -14,6 +14,6 @@ final readonly class DFeTech_TaxPayers_Resources_CreateCompanyResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.CreateCompanyResourceItem $company = null, + public ?DFeTech_TaxPayers_Resources_CreateCompanyResourceItem $company = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResourceItem.php index a29c458..f640282 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateCompanyResourceItem.php @@ -16,8 +16,8 @@ public function __construct( public string $name, public int $federalTaxNumber, - public DFeTech.TaxPayers.Domain.Entities.TaxRegime $taxRegime, - public DFeTech.TaxPayers.Resources.AddressResource $address, + public DFeTech_TaxPayers_Domain_Entities_TaxRegime $taxRegime, + public DFeTech_TaxPayers_Resources_AddressResource $address, public ?string $accountId = null, public ?string $tradeName = null, public ?string $municipalTaxNumber = null, diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResource.php index b1620b2..6742326 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResource.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_CreateMunicipalTaxResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.CreateMunicipalTaxResourceItem $municipalTax = null, + public ?DFeTech_TaxPayers_Resources_CreateMunicipalTaxResourceItem $municipalTax = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResourceItem.php index 795fa2b..06c17bd 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateMunicipalTaxResourceItem.php @@ -11,17 +11,17 @@ final readonly class DFeTech_TaxPayers_Resources_CreateMunicipalTaxResourceItem { public function __construct( - public ?DFeTech.TaxPayers.Domain.Entities.CityExtended $city = null, + public ?DFeTech_TaxPayers_Domain_Entities_CityExtended $city = null, public ?string $taxNumber = null, - public ?DFeTech.TaxPayers.Domain.Entities.ApiEnvironment $environment = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, + public ?DFeTech_TaxPayers_Domain_Entities_ApiEnvironment $environment = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, public ?string $email = null, - public ?DFeTech.TaxPayers.Domain.Entities.LegalNature $legalNature = null, + public ?DFeTech_TaxPayers_Domain_Entities_LegalNature $legalNature = null, public ?int $companyRegistryNumber = null, public ?int $regionalTaxNumber = null, public ?float $issRate = null, - public ?DFeTech.TaxPayers.Domain.Entities.FederalTaxDeterminationBy $federalTaxDetermination = null, - public ?DFeTech.TaxPayers.Domain.Entities.MunicipalTaxDeterminationBy $municipalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_FederalTaxDeterminationBy $federalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_MunicipalTaxDeterminationBy $municipalTaxDetermination = null, public ?string $loginName = null, public ?string $loginPassword = null, public ?string $authIssueValue = null, diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource.php index a30170a..c6833ae 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.StateTaxProcessingSwitchAuthorizerStrategyResource $switchAuthorizerStrategy = null, + public ?DFeTech_TaxPayers_Resources_StateTaxProcessingSwitchAuthorizerStrategyResource $switchAuthorizerStrategy = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResource.php index 413d788..1a7f546 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResource.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_CreateStateTaxResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.CreateStateTaxResourceItem $stateTax = null, + public ?DFeTech_TaxPayers_Resources_CreateStateTaxResourceItem $stateTax = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResourceItem.php index 6864fc5..a432cb4 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_CreateStateTaxResourceItem.php @@ -11,14 +11,14 @@ final readonly class DFeTech_TaxPayers_Resources_CreateStateTaxResourceItem { public function __construct( - public DFeTech.TaxPayers.Domain.Entities.StateCode $code, + public DFeTech_TaxPayers_Domain_Entities_StateCode $code, public string $taxNumber, - public DFeTech.TaxPayers.Domain.Entities.StateTaxType $type, - public ?DFeTech.TaxPayers.Domain.Entities.EnvironmentType $environmentType = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, + public DFeTech_TaxPayers_Domain_Entities_StateTaxType $type, + public ?DFeTech_TaxPayers_Domain_Entities_EnvironmentType $environmentType = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, public ?int $serie = null, public ?int $number = null, - public ?DFeTech.TaxPayers.Domain.Entities.SecurityCredential $securityCredential = null, - public ?DFeTech.TaxPayers.Resources.CreateStateTaxProcessingDetailsResource $processingDetails = null, + public ?DFeTech_TaxPayers_Domain_Entities_SecurityCredential $securityCredential = null, + public ?DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource $processingDetails = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResource.php index f4fdac6..9ecca76 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResource.php @@ -14,6 +14,6 @@ final readonly class DFeTech_TaxPayers_Resources_MunicipalTaxResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.MunicipalTaxResourceItem $municipalTax = null, + public ?DFeTech_TaxPayers_Resources_MunicipalTaxResourceItem $municipalTax = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResourceItem.php index 055d639..5c97887 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_MunicipalTaxResourceItem.php @@ -17,22 +17,22 @@ public function __construct( public ?string $id = null, public ?string $companyId = null, public ?string $accountId = null, - public ?DFeTech.TaxPayers.Domain.Entities.Status $status = null, - public ?DFeTech.TaxPayers.Domain.Entities.CityExtended $city = null, + public ?DFeTech_TaxPayers_Domain_Entities_Status $status = null, + public ?DFeTech_TaxPayers_Domain_Entities_CityExtended $city = null, public ?string $taxNumber = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, public ?string $email = null, - public ?DFeTech.TaxPayers.Domain.Entities.LegalNature $legalNature = null, + public ?DFeTech_TaxPayers_Domain_Entities_LegalNature $legalNature = null, public ?int $companyRegistryNumber = null, public ?int $regionalTaxNumber = null, public ?string $rpsSerialNumber = null, public ?int $rpsNumber = null, public ?int $lastRpsSent = null, public ?float $issRate = null, - public ?DFeTech.TaxPayers.Domain.Entities.ApiEnvironment $environment = null, - public ?DFeTech.TaxPayers.Domain.Entities.CompanyFiscalStatus $fiscalStatus = null, - public ?DFeTech.TaxPayers.Domain.Entities.FederalTaxDeterminationBy $federalTaxDetermination = null, - public ?DFeTech.TaxPayers.Domain.Entities.MunicipalTaxDeterminationBy $municipalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_ApiEnvironment $environment = null, + public ?DFeTech_TaxPayers_Domain_Entities_CompanyFiscalStatus $fiscalStatus = null, + public ?DFeTech_TaxPayers_Domain_Entities_FederalTaxDeterminationBy $federalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_MunicipalTaxDeterminationBy $municipalTaxDetermination = null, public ?string $loginName = null, public ?string $loginPassword = null, public ?string $authIssueValue = null, diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_SerieResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_SerieResource.php index 9429fcc..41eb0b8 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_SerieResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_SerieResource.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_SerieResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.SerieResourceItem $serie = null, + public ?DFeTech_TaxPayers_Resources_SerieResourceItem $serie = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResource.php index 33dd43b..30a9650 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResource.php @@ -14,6 +14,6 @@ final readonly class DFeTech_TaxPayers_Resources_StateTaxResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.StateTaxResourceItem $stateTax = null, + public ?DFeTech_TaxPayers_Resources_StateTaxResourceItem $stateTax = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResourceItem.php index 586d9f9..d141c7a 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxResourceItem.php @@ -14,19 +14,19 @@ final readonly class DFeTech_TaxPayers_Resources_StateTaxResourceItem { public function __construct( - public DFeTech.TaxPayers.Domain.Entities.StateCode $code, + public DFeTech_TaxPayers_Domain_Entities_StateCode $code, public string $taxNumber, - public DFeTech.TaxPayers.Domain.Entities.StateTaxType $type, - public ?DFeTech.TaxPayers.Domain.Entities.EnvironmentType $environmentType = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, + public DFeTech_TaxPayers_Domain_Entities_StateTaxType $type, + public ?DFeTech_TaxPayers_Domain_Entities_EnvironmentType $environmentType = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, public ?int $serie = null, public ?int $number = null, - public ?DFeTech.TaxPayers.Domain.Entities.SecurityCredential $securityCredential = null, - public ?DFeTech.TaxPayers.Resources.CreateStateTaxProcessingDetailsResource $processingDetails = null, + public ?DFeTech_TaxPayers_Domain_Entities_SecurityCredential $securityCredential = null, + public ?DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource $processingDetails = null, public ?string $id = null, public ?string $companyId = null, public ?string $accountId = null, - public ?DFeTech.TaxPayers.Domain.Entities.Status $status = null, + public ?DFeTech_TaxPayers_Domain_Entities_Status $status = null, public ?array $series = null, public ?string $createdOn = null, public ?string $modifiedOn = null, diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerRequest.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerRequest.php index 766b3da..bb6ddaf 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerRequest.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerRequest.php @@ -11,7 +11,7 @@ final readonly class DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerRequest { public function __construct( - public ?DFeTech.TaxPayers.Resources.StateTaxProcessingAuthorizerResource $authorizer = null, + public ?DFeTech_TaxPayers_Resources_StateTaxProcessingAuthorizerResource $authorizer = null, public ?string $reason = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerResponse.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerResponse.php index 06f4978..c74fe33 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerResponse.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerResponse.php @@ -11,8 +11,8 @@ final readonly class DFeTech_TaxPayers_Resources_StateTaxSwitchAuthorizerResponse { public function __construct( - public ?DFeTech.TaxPayers.Domain.Entities.StateTaxProcessingAuthorizer $fromAuthorizer = null, - public ?DFeTech.TaxPayers.Domain.Entities.StateTaxProcessingAuthorizer $toAuthorizer = null, + public ?DFeTech_TaxPayers_Domain_Entities_StateTaxProcessingAuthorizer $fromAuthorizer = null, + public ?DFeTech_TaxPayers_Domain_Entities_StateTaxProcessingAuthorizer $toAuthorizer = null, public ?string $reason = null, public ?string $modifiedOn = null, ) {} diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResource.php index bd1fce3..4f1939b 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResource.php @@ -14,6 +14,6 @@ final readonly class DFeTech_TaxPayers_Resources_UpdateCompanyResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.UpdateCompanyResourceItem $company = null, + public ?DFeTech_TaxPayers_Resources_UpdateCompanyResourceItem $company = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResourceItem.php index 253101c..fe10c9d 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateCompanyResourceItem.php @@ -16,8 +16,8 @@ public function __construct( public string $name, public int $federalTaxNumber, - public DFeTech.TaxPayers.Domain.Entities.TaxRegime $taxRegime, - public DFeTech.TaxPayers.Resources.AddressResource $address, + public DFeTech_TaxPayers_Domain_Entities_TaxRegime $taxRegime, + public DFeTech_TaxPayers_Resources_AddressResource $address, public ?string $accountId = null, public ?string $tradeName = null, public ?string $municipalTaxNumber = null, diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResource.php index 2a11111..349393d 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResource.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.UpdateMunicipalTaxResourceItem $municipalTax = null, + public ?DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResourceItem $municipalTax = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResourceItem.php index 66b8212..02c6577 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResourceItem.php @@ -11,22 +11,22 @@ final readonly class DFeTech_TaxPayers_Resources_UpdateMunicipalTaxResourceItem { public function __construct( - public ?DFeTech.TaxPayers.Domain.Entities.CityExtended $city = null, + public ?DFeTech_TaxPayers_Domain_Entities_CityExtended $city = null, public ?string $taxNumber = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, public ?string $email = null, - public ?DFeTech.TaxPayers.Domain.Entities.LegalNature $legalNature = null, + public ?DFeTech_TaxPayers_Domain_Entities_LegalNature $legalNature = null, public ?int $companyRegistryNumber = null, public ?int $regionalTaxNumber = null, public ?int $rpsNumber = null, public ?int $lastRpsSent = null, public ?float $issRate = null, - public ?DFeTech.TaxPayers.Domain.Entities.FederalTaxDeterminationBy $federalTaxDetermination = null, - public ?DFeTech.TaxPayers.Domain.Entities.MunicipalTaxDeterminationBy $municipalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_FederalTaxDeterminationBy $federalTaxDetermination = null, + public ?DFeTech_TaxPayers_Domain_Entities_MunicipalTaxDeterminationBy $municipalTaxDetermination = null, public ?string $loginName = null, public ?string $loginPassword = null, public ?string $authIssueValue = null, - public ?DFeTech.TaxPayers.Domain.Entities.ApiEnvironment $environment = null, + public ?DFeTech_TaxPayers_Domain_Entities_ApiEnvironment $environment = null, public ?string $rpsSerialNumber = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResource.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResource.php index a775acc..ad16325 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResource.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResource.php @@ -11,6 +11,6 @@ final readonly class DFeTech_TaxPayers_Resources_UpdateStateTaxResource { public function __construct( - public ?DFeTech.TaxPayers.Resources.UpdateStateTaxResourceItem $stateTax = null, + public ?DFeTech_TaxPayers_Resources_UpdateStateTaxResourceItem $stateTax = null, ) {} } diff --git a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResourceItem.php b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResourceItem.php index e113940..b452d76 100644 --- a/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResourceItem.php +++ b/src/Generated/ContribuintesV2/DFeTech_TaxPayers_Resources_UpdateStateTaxResourceItem.php @@ -11,14 +11,14 @@ final readonly class DFeTech_TaxPayers_Resources_UpdateStateTaxResourceItem { public function __construct( - public DFeTech.TaxPayers.Domain.Entities.StateCode $code, + public DFeTech_TaxPayers_Domain_Entities_StateCode $code, public string $taxNumber, - public DFeTech.TaxPayers.Domain.Entities.StateTaxType $type, - public ?DFeTech.TaxPayers.Domain.Entities.EnvironmentType $environmentType = null, - public ?DFeTech.TaxPayers.Domain.Entities.SpecialTaxRegime $specialTaxRegime = null, + public DFeTech_TaxPayers_Domain_Entities_StateTaxType $type, + public ?DFeTech_TaxPayers_Domain_Entities_EnvironmentType $environmentType = null, + public ?DFeTech_TaxPayers_Domain_Entities_SpecialTaxRegime $specialTaxRegime = null, public ?int $serie = null, public ?int $number = null, - public ?DFeTech.TaxPayers.Domain.Entities.SecurityCredential $securityCredential = null, - public ?DFeTech.TaxPayers.Resources.CreateStateTaxProcessingDetailsResource $processingDetails = null, + public ?DFeTech_TaxPayers_Domain_Entities_SecurityCredential $securityCredential = null, + public ?DFeTech_TaxPayers_Resources_CreateStateTaxProcessingDetailsResource $processingDetails = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainer.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainer.php index 1f81dd4..5787f45 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainer.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainer.php @@ -9,13 +9,13 @@ namespace Nfe\Generated\ContribuintesV2; /** - * @param list|null $elements + * @param list|null $elements */ final readonly class Microsoft_OData_Edm_IEdmEntityContainer { public function __construct( public ?string $name = null, - public ?Microsoft.OData.Edm.EdmSchemaElementKind $schemaElementKind = null, + public ?Microsoft_OData_Edm_EdmSchemaElementKind $schemaElementKind = null, public ?string $namespace = null, public ?array $elements = null, ) {} diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainerElement.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainerElement.php index 084d527..f4368e6 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainerElement.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmEntityContainerElement.php @@ -12,7 +12,7 @@ { public function __construct( public ?string $name = null, - public ?Microsoft.OData.Edm.EdmContainerElementKind $containerElementKind = null, - public ?Microsoft.OData.Edm.IEdmEntityContainer $container = null, + public ?Microsoft_OData_Edm_EdmContainerElementKind $containerElementKind = null, + public ?Microsoft_OData_Edm_IEdmEntityContainer $container = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmExpression.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmExpression.php index d7d7f78..f1502d7 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmExpression.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmExpression.php @@ -11,6 +11,6 @@ final readonly class Microsoft_OData_Edm_IEdmExpression { public function __construct( - public ?Microsoft.OData.Edm.EdmExpressionKind $expressionKind = null, + public ?Microsoft_OData_Edm_EdmExpressionKind $expressionKind = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmModel.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmModel.php index 7d68ae5..7e3bf08 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmModel.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmModel.php @@ -9,9 +9,9 @@ namespace Nfe\Generated\ContribuintesV2; /** - * @param list|null $schemaElements - * @param list|null $vocabularyAnnotations - * @param list|null $referencedModels + * @param list|null $schemaElements + * @param list|null $vocabularyAnnotations + * @param list|null $referencedModels * @param list|null $declaredNamespaces */ final readonly class Microsoft_OData_Edm_IEdmModel @@ -21,7 +21,7 @@ public function __construct( public ?array $vocabularyAnnotations = null, public ?array $referencedModels = null, public ?array $declaredNamespaces = null, - public ?Microsoft.OData.Edm.Vocabularies.IEdmDirectValueAnnotationsManager $directValueAnnotationsManager = null, - public ?Microsoft.OData.Edm.IEdmEntityContainer $entityContainer = null, + public ?Microsoft_OData_Edm_Vocabularies_IEdmDirectValueAnnotationsManager $directValueAnnotationsManager = null, + public ?Microsoft_OData_Edm_IEdmEntityContainer $entityContainer = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmSchemaElement.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmSchemaElement.php index 0bef5ad..05340d3 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmSchemaElement.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmSchemaElement.php @@ -12,7 +12,7 @@ { public function __construct( public ?string $name = null, - public ?Microsoft.OData.Edm.EdmSchemaElementKind $schemaElementKind = null, + public ?Microsoft_OData_Edm_EdmSchemaElementKind $schemaElementKind = null, public ?string $namespace = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmType.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmType.php index 6b9a01b..66b6190 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmType.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmType.php @@ -11,6 +11,6 @@ final readonly class Microsoft_OData_Edm_IEdmType { public function __construct( - public ?Microsoft.OData.Edm.EdmTypeKind $typeKind = null, + public ?Microsoft_OData_Edm_EdmTypeKind $typeKind = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmTypeReference.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmTypeReference.php index 37ccdbd..c02cbd2 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmTypeReference.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_IEdmTypeReference.php @@ -12,6 +12,6 @@ { public function __construct( public ?bool $isNullable = null, - public ?Microsoft.OData.Edm.IEdmType $definition = null, + public ?Microsoft_OData_Edm_IEdmType $definition = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmTerm.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmTerm.php index 9dd623e..a4443f7 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmTerm.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmTerm.php @@ -12,9 +12,9 @@ { public function __construct( public ?string $name = null, - public ?Microsoft.OData.Edm.EdmSchemaElementKind $schemaElementKind = null, + public ?Microsoft_OData_Edm_EdmSchemaElementKind $schemaElementKind = null, public ?string $namespace = null, - public ?Microsoft.OData.Edm.IEdmTypeReference $type = null, + public ?Microsoft_OData_Edm_IEdmTypeReference $type = null, public ?string $appliesTo = null, public ?string $defaultValue = null, ) {} diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmVocabularyAnnotation.php b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmVocabularyAnnotation.php index 8230843..0dfd279 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmVocabularyAnnotation.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_Edm_Vocabularies_IEdmVocabularyAnnotation.php @@ -12,9 +12,9 @@ { public function __construct( public ?string $qualifier = null, - public ?Microsoft.OData.Edm.Vocabularies.IEdmTerm $term = null, - public ?Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable $target = null, - public ?Microsoft.OData.Edm.IEdmExpression $value = null, + public ?Microsoft_OData_Edm_Vocabularies_IEdmTerm $term = null, + public ?Microsoft_OData_Edm_Vocabularies_IEdmVocabularyAnnotatable $target = null, + public ?Microsoft_OData_Edm_IEdmExpression $value = null, public ?bool $usesDefault = null, ) {} } diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_ODataEntitySetInfo.php b/src/Generated/ContribuintesV2/Microsoft_OData_ODataEntitySetInfo.php index 25ca55c..5de1ce3 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_ODataEntitySetInfo.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_ODataEntitySetInfo.php @@ -11,7 +11,7 @@ final readonly class Microsoft_OData_ODataEntitySetInfo { public function __construct( - public ?Microsoft.OData.ODataTypeAnnotation $typeAnnotation = null, + public ?Microsoft_OData_ODataTypeAnnotation $typeAnnotation = null, public ?string $url = null, public ?string $name = null, public ?string $title = null, diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_ODataFunctionImportInfo.php b/src/Generated/ContribuintesV2/Microsoft_OData_ODataFunctionImportInfo.php index c16fdb6..5779887 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_ODataFunctionImportInfo.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_ODataFunctionImportInfo.php @@ -11,7 +11,7 @@ final readonly class Microsoft_OData_ODataFunctionImportInfo { public function __construct( - public ?Microsoft.OData.ODataTypeAnnotation $typeAnnotation = null, + public ?Microsoft_OData_ODataTypeAnnotation $typeAnnotation = null, public ?string $url = null, public ?string $name = null, public ?string $title = null, diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_ODataServiceDocument.php b/src/Generated/ContribuintesV2/Microsoft_OData_ODataServiceDocument.php index 6024459..eca758d 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_ODataServiceDocument.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_ODataServiceDocument.php @@ -9,14 +9,14 @@ namespace Nfe\Generated\ContribuintesV2; /** - * @param list|null $entitySets - * @param list|null $singletons - * @param list|null $functionImports + * @param list|null $entitySets + * @param list|null $singletons + * @param list|null $functionImports */ final readonly class Microsoft_OData_ODataServiceDocument { public function __construct( - public ?Microsoft.OData.ODataTypeAnnotation $typeAnnotation = null, + public ?Microsoft_OData_ODataTypeAnnotation $typeAnnotation = null, public ?array $entitySets = null, public ?array $singletons = null, public ?array $functionImports = null, diff --git a/src/Generated/ContribuintesV2/Microsoft_OData_ODataSingletonInfo.php b/src/Generated/ContribuintesV2/Microsoft_OData_ODataSingletonInfo.php index 53d7714..895e56d 100644 --- a/src/Generated/ContribuintesV2/Microsoft_OData_ODataSingletonInfo.php +++ b/src/Generated/ContribuintesV2/Microsoft_OData_ODataSingletonInfo.php @@ -11,7 +11,7 @@ final readonly class Microsoft_OData_ODataSingletonInfo { public function __construct( - public ?Microsoft.OData.ODataTypeAnnotation $typeAnnotation = null, + public ?Microsoft_OData_ODataTypeAnnotation $typeAnnotation = null, public ?string $url = null, public ?string $name = null, public ?string $title = null, diff --git a/src/Version.php b/src/Version.php index ad4690b..c12409f 100644 --- a/src/Version.php +++ b/src/Version.php @@ -12,5 +12,5 @@ */ final class Version { - public const CURRENT = '3.4.0'; + public const CURRENT = '3.4.1'; } diff --git a/tests/Generator/GeneratorSummaryTest.php b/tests/Generator/GeneratorSummaryTest.php new file mode 100644 index 0000000..f2546e5 --- /dev/null +++ b/tests/Generator/GeneratorSummaryTest.php @@ -0,0 +1,84 @@ +tempRoot = sys_get_temp_dir() . '/nfe-sdk-summary-test-' . bin2hex(random_bytes(4)); + $this->specsDir = $this->tempRoot . '/openapi'; + mkdir($this->specsDir, 0o755, true); + + file_put_contents($this->specsDir . '/with-schemas-v1.yaml', <<<'YAML' + openapi: 3.0.1 + info: { title: With Schemas, version: "1.0" } + paths: {} + components: + schemas: + Borrower: + type: object + required: [name] + properties: + name: { type: string } + YAML); + + file_put_contents($this->specsDir . '/legacy-swagger-v1.yaml', <<<'YAML' + swagger: "2.0" + info: { title: Legacy, version: "1.0" } + paths: {} + YAML); + + file_put_contents($this->specsDir . '/empty-openapi3-v1.yaml', <<<'YAML' + openapi: 3.0.1 + info: { title: Empty, version: "1.0" } + paths: {} + YAML); +}); + +afterEach(function (): void { + foreach (glob($this->specsDir . '/*.yaml') ?: [] as $f) { + @unlink($f); + } + @rmdir($this->specsDir); + @rmdir($this->tempRoot); +}); + +it('reports every spec with its emitted count, flagging Swagger 2.0 as such', function (): void { + $generator = new Generator( + specsDir: $this->specsDir, + outputRoot: $this->tempRoot . '/out', + ); + + $summary = $generator->specSummary(); + $byName = array_column($summary, null, 'spec'); + + expect($byName)->toHaveCount(3); + + expect($byName['with-schemas-v1.yaml']['emitted'])->toBe(1); + expect($byName['with-schemas-v1.yaml']['swagger2'])->toBeFalse(); + + // Swagger 2.0: zero output is expected — informational, not a regression. + expect($byName['legacy-swagger-v1.yaml']['emitted'])->toBe(0); + expect($byName['legacy-swagger-v1.yaml']['swagger2'])->toBeTrue(); + + // OpenAPI 3.x with zero schemas: the summary must expose it (warning-worthy) + // while the generator itself still completes without error. + expect($byName['empty-openapi3-v1.yaml']['emitted'])->toBe(0); + expect($byName['empty-openapi3-v1.yaml']['swagger2'])->toBeFalse(); +}); + +it('accepts a precomputed file map and does not regenerate', function (): void { + $generator = new Generator( + specsDir: $this->specsDir, + outputRoot: $this->tempRoot . '/out', + ); + + $files = $generator->generate(); + $summary = $generator->specSummary($files); + + expect(array_column($summary, 'emitted', 'spec'))->toBe([ + 'empty-openapi3-v1.yaml' => 0, + 'legacy-swagger-v1.yaml' => 0, + 'with-schemas-v1.yaml' => 1, + ]); +}); diff --git a/tests/Generator/LinterTest.php b/tests/Generator/LinterTest.php new file mode 100644 index 0000000..0063c99 --- /dev/null +++ b/tests/Generator/LinterTest.php @@ -0,0 +1,34 @@ + "toBe([]); +}); + +it('flags a file with a dotted type-hint (the historical bug) as a parse failure', function (): void { + $files = [ + 'ContribuintesV2/Bad.php' => " "toHaveCount(1); + expect($errors[0])->toStartWith('ContribuintesV2/Bad.php: '); +}); + +it('lists every offending file, not just the first', function (): void { + $files = [ + 'A/One.php' => " "toHaveCount(2); +}); diff --git a/tests/Generator/TypeMapperTest.php b/tests/Generator/TypeMapperTest.php new file mode 100644 index 0000000..6fb2501 --- /dev/null +++ b/tests/Generator/TypeMapperTest.php @@ -0,0 +1,67 @@ + '#/components/schemas/DFeTech.TaxPayers.Resources.CompanyResourceItem'], + 'Nfe\\Generated\\ContribuintesV2', + ); + + expect($mapped['php'])->toBe('DFeTech_TaxPayers_Resources_CompanyResourceItem'); + expect($mapped['nullable'])->toBeFalse(); +}); + +it('sanitises a dotted schema name in a nullable $ref', function (): void { + $mapped = TypeMapper::map( + [ + '$ref' => '#/components/schemas/DFeTech.TaxPayers.Resources.MunicipalTaxResourceItem', + 'nullable' => true, + ], + 'Nfe\\Generated\\ContribuintesV2', + ); + + expect($mapped['php'])->toBe('?DFeTech_TaxPayers_Resources_MunicipalTaxResourceItem'); + expect($mapped['nullable'])->toBeTrue(); +}); + +it('sanitises dotted schema names inside a oneOf union', function (): void { + $mapped = TypeMapper::map( + [ + 'oneOf' => [ + ['$ref' => '#/components/schemas/DFeTech.TaxPayers.A'], + ['$ref' => '#/components/schemas/DFeTech.TaxPayers.B'], + ], + ], + 'Nfe\\Generated\\ContribuintesV2', + ); + + expect($mapped['php'])->toBe('DFeTech_TaxPayers_A|DFeTech_TaxPayers_B'); +}); + +it('sanitises dotted schema names used as array item types', function (): void { + $mapped = TypeMapper::map( + [ + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/DFeTech.TaxPayers.Resources.StateTaxResourceItem'], + ], + 'Nfe\\Generated\\ContribuintesV2', + ); + + expect($mapped['php'])->toBe('array'); + expect($mapped['doc'])->toBe('list'); +}); + +it('leaves already-valid ref names untouched', function (): void { + $mapped = TypeMapper::map(['$ref' => '#/components/schemas/Borrower'], 'Nfe\\Generated\\ContribuintesV2'); + + expect($mapped['php'])->toBe('Borrower'); +}); + +it('prefixes a ref name that starts with a digit', function (): void { + $mapped = TypeMapper::map(['$ref' => '#/components/schemas/123Thing'], 'Nfe\\Generated\\ContribuintesV2'); + + expect($mapped['php'])->toBe('_123Thing'); +});