initial commit
This commit is contained in:
68
core/apps/banks/models/banks.py
Normal file
68
core/apps/banks/models/banks.py
Normal file
@@ -0,0 +1,68 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from core.utils.base_model import UUIDPrimaryKeyBaseModel
|
||||
|
||||
from core.apps.banks.validators.banks import (
|
||||
BankValidator, # used with BankModel.clean
|
||||
bic_validator, # validates bic
|
||||
name_validator, # validates bank name
|
||||
)
|
||||
|
||||
|
||||
class BankModel(UUIDPrimaryKeyBaseModel):
|
||||
|
||||
name = models.CharField(
|
||||
_("Name"),
|
||||
max_length=255,
|
||||
validators=[
|
||||
name_validator,
|
||||
],
|
||||
null=False,
|
||||
blank=False,
|
||||
unique=True,
|
||||
)
|
||||
|
||||
bic_code = models.CharField(
|
||||
_("BIC code"),
|
||||
validators=[
|
||||
bic_validator,
|
||||
],
|
||||
null=False,
|
||||
blank=False,
|
||||
unique=True,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@classmethod
|
||||
def _create_fake(cls):
|
||||
return cls.objects.create(
|
||||
name="Mock TBC Bank",
|
||||
bic_code="MOCKUZ22"
|
||||
)
|
||||
|
||||
def clean(self) -> None:
|
||||
super().clean()
|
||||
|
||||
validator = BankValidator(self)
|
||||
validator()
|
||||
|
||||
class Meta: # type: ignore
|
||||
db_table = "banks"
|
||||
|
||||
verbose_name = _("Bank")
|
||||
verbose_name_plural = _("Banks")
|
||||
|
||||
indexes = [
|
||||
models.Index(
|
||||
fields=["bic_code"],
|
||||
name="banks_bic_code_inx"
|
||||
),
|
||||
models.Index(
|
||||
fields=["name"],
|
||||
name="banks_name_inx"
|
||||
),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user