Documentation
¶
Overview ¶
Package validation implements validation algorithms for Australian PI types. It provides checksum validation for TFN, ABN, ACN, Medicare numbers, and other PI types using official Australian government algorithms to ensure detected values are structurally valid.
Index ¶
- func RegisterAdditionalValidators(registry *ValidatorRegistry)
- type ABNValidator
- type ACNValidator
- type ARBNValidator
- type BSBValidator
- type BankAccountValidator
- type CreditCardValidator
- type DriverLicenseValidator
- type MedicareValidator
- type PassportValidator
- type TFNValidator
- type Validator
- type ValidatorRegistry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterAdditionalValidators ¶
func RegisterAdditionalValidators(registry *ValidatorRegistry)
RegisterAdditionalValidators registers all additional validators
Types ¶
type ABNValidator ¶
type ABNValidator struct{}
ABNValidator validates Australian Business Numbers
func (*ABNValidator) Normalize ¶
func (v *ABNValidator) Normalize(value string) string
Normalize returns normalized ABN
type ACNValidator ¶
type ACNValidator struct{}
ACNValidator validates Australian Company Numbers
func (*ACNValidator) Normalize ¶
func (v *ACNValidator) Normalize(value string) string
Normalize returns normalized ACN
type ARBNValidator ¶
type ARBNValidator struct{}
ARBNValidator validates Australian Registered Body Numbers
func (*ARBNValidator) Normalize ¶
func (v *ARBNValidator) Normalize(value string) string
Normalize returns normalized ARBN
type BSBValidator ¶
type BSBValidator struct{}
BSBValidator validates Australian Bank State Branch codes
func (*BSBValidator) Normalize ¶
func (v *BSBValidator) Normalize(value string) string
Normalize returns normalized BSB in XXX-XXX format
type BankAccountValidator ¶
type BankAccountValidator struct{}
BankAccountValidator validates Australian bank account numbers
func (*BankAccountValidator) Normalize ¶
func (v *BankAccountValidator) Normalize(value string) string
Normalize returns normalized account number
func (*BankAccountValidator) Type ¶
func (v *BankAccountValidator) Type() string
Type returns the PI type
type CreditCardValidator ¶
type CreditCardValidator struct{}
CreditCardValidator validates credit card numbers using the Luhn algorithm
func NewCreditCardValidator ¶
func NewCreditCardValidator() *CreditCardValidator
NewCreditCardValidator creates a new credit card validator
func (*CreditCardValidator) GetCardType ¶
func (v *CreditCardValidator) GetCardType(number string) string
GetCardType returns the card type based on the number
func (*CreditCardValidator) IsTestCard ¶
func (v *CreditCardValidator) IsTestCard(number string) bool
IsTestCard checks if the card number is a known test card
func (*CreditCardValidator) Normalize ¶
func (v *CreditCardValidator) Normalize(value string) string
Normalize returns a normalized credit card number (digits only)
func (*CreditCardValidator) Type ¶
func (v *CreditCardValidator) Type() string
Type returns the PI type this validator handles
type DriverLicenseValidator ¶
type DriverLicenseValidator struct {
// contains filtered or unexported fields
}
DriverLicenseValidator validates Australian driver's licenses
func NewDriverLicenseValidator ¶
func NewDriverLicenseValidator() *DriverLicenseValidator
NewDriverLicenseValidator creates a new driver license validator
func (*DriverLicenseValidator) Normalize ¶
func (v *DriverLicenseValidator) Normalize(value string) string
Normalize returns normalized license number
func (*DriverLicenseValidator) Type ¶
func (v *DriverLicenseValidator) Type() string
Type returns the PI type
func (*DriverLicenseValidator) Validate ¶
func (v *DriverLicenseValidator) Validate(value string) (bool, error)
Validate checks if the license number is valid for any state
func (*DriverLicenseValidator) ValidateForState ¶
func (v *DriverLicenseValidator) ValidateForState(value, state string) (bool, error)
ValidateForState checks if the license is valid for a specific state
type MedicareValidator ¶
type MedicareValidator struct{}
MedicareValidator validates Australian Medicare numbers
func (*MedicareValidator) Normalize ¶
func (v *MedicareValidator) Normalize(value string) string
Normalize returns normalized Medicare number
type PassportValidator ¶
type PassportValidator struct{}
PassportValidator validates Australian passport numbers
func (*PassportValidator) Normalize ¶
func (v *PassportValidator) Normalize(value string) string
Normalize returns normalized passport number
type TFNValidator ¶
type TFNValidator struct{}
TFNValidator validates Australian Tax File Numbers
func (*TFNValidator) Normalize ¶
func (v *TFNValidator) Normalize(value string) string
Normalize returns normalized TFN
type Validator ¶
type Validator interface {
Validate(value string) (bool, error)
Type() string
Normalize(value string) string
}
Validator interface for all PI validators
type ValidatorRegistry ¶
type ValidatorRegistry struct {
// contains filtered or unexported fields
}
ValidatorRegistry holds all validators
func NewValidatorRegistry ¶
func NewValidatorRegistry() *ValidatorRegistry
NewValidatorRegistry creates a new validator registry
func (*ValidatorRegistry) Get ¶
func (r *ValidatorRegistry) Get(piType string) (Validator, bool)
Get returns a validator by type
func (*ValidatorRegistry) Register ¶
func (r *ValidatorRegistry) Register(v Validator)
Register adds a validator to the registry
func (*ValidatorRegistry) ValidateAll ¶
func (r *ValidatorRegistry) ValidateAll(value string) ([]string, bool)
ValidateAll validates a value against all validators and returns all matches