from dataclasses import dataclass, field
[docs]
@dataclass
class Credentials:
"""Base credentials shared by all SymXchange credential types."""
processor_user: int = field(kw_only=True, default=0)
[docs]
@dataclass
class CardCredentials(Credentials):
"""Credentials that identify an account by card prefix and account number."""
card_prefix: str
account_number: str
@property
def card_number(self) -> str:
return self.card_prefix.strip() + self.account_number.zfill(10)
[docs]
@dataclass
class AdministrativeCredentials(Credentials):
"""Administrative credentials authenticated with a password."""
password: str
[docs]
@dataclass
class UserNumberCredentials(Credentials):
"""Credentials that identify a user by user number and password."""
user_number: int
password: str