all_br_validations 1.0.2 copy "all_br_validations: ^1.0.2" to clipboard
all_br_validations: ^1.0.2 copied to clipboard

Reusable pure Dart core for Brazilian validations, BrZod schemas, contracts, formatters, geographic models, and validation results.

example/all_br_validations_example.dart

import 'package:all_br_validations/all_br_validations.dart';

void main() {
  const registration = <String, dynamic>{
    'name': 'Ana Souza',
    'email': 'Ana.Souza@Example.com',
    'cpf': '529.982.247-25',
    'phone': '(11) 91234-5678',
    'cep': '01310-100',
    'password': 'Segura@123',
  };

  final schemaResult = validateRegistration(registration);
  if (schemaResult.isNotValid) {
    print('Cadastro inválido: ${schemaResult.errorList.join(', ')}');
    return;
  }
  print('Cadastro válido');

  AllValidations.validateCPF(registration['cpf']! as String).fold(
    (error) => print('${error.property}: ${error.message}'),
    (cpf) => print('CPF normalizado: $cpf'),
  );

  AllValidations.validateEmail(registration['email']! as String).fold(
    (error) => print('${error.property}: ${error.message}'),
    (email) => print('E-mail normalizado: $email'),
  );

  final businessRules = validateBusinessRules(
    age: 28,
    acceptedTerms: true,
  );
  print('Regras de negócio válidas: ${businessRules.isValid}');

  print(
    'Contato: ${BrFormatter.formatPhone('11912345678')} · '
    'CEP: ${BrFormatter.formatCep('01310100')}',
  );

  const companyDocument = '12ABC34501DE35';
  print(
    'CNPJ alfanumérico: ${CnpjAlfanumerico.format(companyDocument)} · '
    'válido: ${CnpjAlfanumerico.isValid(companyDocument)}',
  );
}

/// Valida de uma vez o payload recebido por um formulário ou uma API.
BrZodResult validateRegistration(Map<String, dynamic> data) {
  return BrZod.validate(
    data: data,
    params: {
      'name': BrZod().required().min(3),
      'email': BrZod().required().email(),
      'cpf': BrZod().required().cpf(),
      'phone': BrZod().required().phone(),
      'cep': BrZod().required().cep(),
      'password': BrZod().required().password(),
    },
  );
}

/// Acumula regras de domínio para que a interface mostre todos os erros.
Contract validateBusinessRules({
  required int age,
  required bool acceptedTerms,
}) {
  final contract = Contract();
  contract
    ..isGreaterOrEqualsThan(
      age,
      18,
      'age',
      'É necessário ter pelo menos 18 anos.',
    )
    ..isTrue(
      acceptedTerms,
      'acceptedTerms',
      'É necessário aceitar os termos.',
    );
  return contract;
}
0
likes
160
points
249
downloads

Documentation

API reference

Publisher

verified publisheropensource.tatamemaster.com.br

Weekly Downloads

Reusable pure Dart core for Brazilian validations, BrZod schemas, contracts, formatters, geographic models, and validation results.

Repository (GitHub)
View/report issues
Contributing

Topics

#validation #brazil #cpf #cnpj #zod

License

MIT (license)

Dependencies

all_result

More

Packages that depend on all_br_validations