Documentation
¶
Overview ¶
Package transform includes these cast functions to allow the project to accomplish two things:
- convert strings from the CSV files to other formats (e.g. int, float32, time.Time);
- differentiate empty values (such as 0 for int) from missing values.
This is achieved using pointers, so we have nil as a marker for missing value.
Since our use case involves serving this data in JSON format, this is crucial so we can use `null` when there is no value, and "0" when the value of an integer, for example, is 0.
Index ¶
Constants ¶
const ( // MaxParallelDBQueries is the default for maximum number of parallels save // queries sent to the database MaxParallelDBQueries = 8 // MaxParallelKVWrites is the default for maximum number of parallels // writes on the key-value storage (Badger) MaxParallelKVWrites = 1024 // BatchSize determines the size of the batches used to create the initial JSON // data in the database. BatchSize = 8192 )
Variables ¶
This section is empty.
Functions ¶
func CompanyJSONFields ¶
func CompanyJSONFields() []string
JSONFields lists the field names/paths for the JSON of a company.
func NationalTreasureFile ¶
NationalTreasureFilePath deals with backward compatibility: until May/2025 the file was named TABMUN.CSV. It returns the right file path testing if the file exist in lower case or in upper case.
func Transform ¶
Transform the downloaded files for company venues creating a database record per CNPJ
func ValidateIndexes ¶
Types ¶
type Company ��
type Company struct {
CNPJ string `json:"cnpj" bson:"cnpj"`
IdentificadorMatrizFilial *int `json:"identificador_matriz_filial" bson:"identificador_matriz_filial"`
DescricaoMatrizFilial *string `json:"descricao_identificador_matriz_filial" bson:"descricao_identificador_matriz_filial"`
NomeFantasia string `json:"nome_fantasia" bson:"nome_fantasia"`
SituacaoCadastral *int `json:"situacao_cadastral" bson:"situacao_cadastral"`
DescricaoSituacaoCadastral *string `json:"descricao_situacao_cadastral" bson:"descricao_situacao_cadastral"`
DataSituacaoCadastral *date `json:"data_situacao_cadastral" bson:"data_situacao_cadastral"`
MotivoSituacaoCadastral *int `json:"motivo_situacao_cadastral" bson:"motivo_situacao_cadastral"`
DescricaoMotivoSituacaoCadastral *string `json:"descricao_motivo_situacao_cadastral" bson:"descricao_motivo_situacao_cadastral"`
NomeCidadeNoExterior string `json:"nome_cidade_no_exterior" bson:"nome_cidade_no_exterior"`
CodigoPais *int `json:"codigo_pais" bson:"codigo_pais"`
Pais *string `json:"pais" bson:"pais"`
DataInicioAtividade *date `json:"data_inicio_atividade" bson:"data_inicio_atividade"`
CNAEFiscal *int `json:"cnae_fiscal" bson:"cnae_fiscal"`
CNAEFiscalDescricao *string `json:"cnae_fiscal_descricao" bson:"cnae_fiscal_descricao"`
DescricaoTipoDeLogradouro string `json:"descricao_tipo_de_logradouro" bson:"descricao_tipo_de_logradouro"`
Logradouro string `json:"logradouro" bson:"logradouro"`
Numero string `json:"numero" bson:"numero"`
Complemento string `json:"complemento" bson:"complemento"`
Bairro string `json:"bairro" bson:"bairro"`
CEP string `json:"cep" bson:"cep"`
UF string `json:"uf" bson:"uf"`
CodigoMunicipio *int `json:"codigo_municipio" bson:"codigo_municipio"`
CodigoMunicipioIBGE *int `json:"codigo_municipio_ibge" bson:"codigo_municipio_ibge"`
Municipio *string `json:"municipio" bson:"municipio"`
Telefone1 string `json:"ddd_telefone_1" bson:"ddd_telefone_1"`
Telefone2 string `json:"ddd_telefone_2" bson:"ddd_telefone_2"`
Fax string `json:"ddd_fax" bson:"ddd_fax"`
Email *string `json:"email" bson:"email"`
SituacaoEspecial string `json:"situacao_especial" bson:"situacao_especial"`
DataSituacaoEspecial *date `json:"data_situacao_especial" bson:"data_situacao_especial"`
OpcaoPeloSimples *bool `json:"opcao_pelo_simples" bson:"opcao_pelo_simples"`
DataOpcaoPeloSimples *date `json:"data_opcao_pelo_simples" bson:"data_opcao_pelo_simples"`
DataExclusaoDoSimples *date `json:"data_exclusao_do_simples" bson:"data_exclusao_do_simples"`
OpcaoPeloMEI *bool `json:"opcao_pelo_mei" bson:"opcao_pelo_mei"`
DataOpcaoPeloMEI *date `json:"data_opcao_pelo_mei" bson:"data_opcao_pelo_mei"`
DataExclusaoDoMEI *date `json:"data_exclusao_do_mei" bson:"data_exclusao_do_mei"`
RazaoSocial string `json:"razao_social" bson:"razao_social"`
CodigoNaturezaJuridica *int `json:"codigo_natureza_juridica" bson:"codigo_natureza_juridica"`
NaturezaJuridica *string `json:"natureza_juridica" bson:"natureza_juridica"`
QualificacaoDoResponsavel *int `json:"qualificacao_do_responsavel" bson:"qualificacao_do_responsavel"`
CapitalSocial *float32 `json:"capital_social" bson:"capital_social"`
CodigoPorte *int `json:"codigo_porte" bson:"codigo_porte"`
Porte *string `json:"porte" bson:"porte"`
EnteFederativoResponsavel string `json:"ente_federativo_responsavel" bson:"ente_federativo_responsavel"`
QuadroSocietario []PartnerData `json:"qsa" bson:"qsa"`
CNAESecundarios []CNAE `json:"cnaes_secundarios" bson:"cnaes_secundarios"`
RegimeTributario TaxRegimes `json:"regime_tributario" bson:"regime_tributario"`
}
type PartnerData ¶
type PartnerData struct {
IdentificadorDeSocio *int `json:"identificador_de_socio" bson:"identificador_de_socio"`
NomeSocio string `json:"nome_socio" bson:"nome_socio"`
CNPJCPFDoSocio string `json:"cnpj_cpf_do_socio" bson:"cnpj_cpf_do_socio"`
CodigoQualificacaoSocio *int `json:"codigo_qualificacao_socio" bson:"codigo_qualificacao_socio"`
QualificaoSocio *string `json:"qualificacao_socio" bson:"qualificacao_socio"`
DataEntradaSociedade *date `json:"data_entrada_sociedade" bson:"data_entrada_sociedade"`
CodigoPais *int `json:"codigo_pais" bson:"codigo_pais"`
Pais *string `json:"pais" bson:"pais"`
CPFRepresentanteLegal string `json:"cpf_representante_legal" bson:"cpf_representante_legal"`
NomeRepresentanteLegal string `json:"nome_representante_legal" bson:"nome_representante_legal"`
CodigoQualificacaoRepresentanteLegal *int `json:"codigo_qualificacao_representante_legal" bson:"codigo_qualificacao_representante_legal"`
QualificacaoRepresentanteLegal *string `json:"qualificacao_representante_legal" bson:"qualificacao_representante_legal"`
CodigoFaixaEtaria *int `json:"codigo_faixa_etaria" bson:"codigo_faixa_etaria"`
FaixaEtaria *string `json:"faixa_etaria" bson:"faixa_etaria"`
}
type TaxRegimes ¶
type TaxRegimes []TaxRegime
func (TaxRegimes) Len ¶
func (t TaxRegimes) Len() int
func (TaxRegimes) Less ¶
func (t TaxRegimes) Less(i, j int) bool
func (TaxRegimes) Swap ¶
func (t TaxRegimes) Swap(i, j int)