all_br_validations 1.0.1 copy "all_br_validations: ^1.0.1" to clipboard
all_br_validations: ^1.0.1 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
0
points
249
downloads

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

Topics

#validation #brazil #cpf #cnpj #zod

License

unknown (license)

Dependencies

all_result

More

Packages that depend on all_br_validations