Commit cdff72d6 by Javier

Conversor de Tarifas y Cuenta en SIP

parent f5340174
...@@ -15,6 +15,15 @@ class Rate(str, Enum): ...@@ -15,6 +15,15 @@ class Rate(str, Enum):
PLANA_2000 = "Plana2000" PLANA_2000 = "Plana2000"
PLANA_EUROPA_1000 = "PlanaEuropa1000" PLANA_EUROPA_1000 = "PlanaEuropa1000"
@staticmethod
def decode(plan_id: int, offer_id: int):
if plan_id == 1:
return Rate.ESTANDAR
elif plan_id == 2:
return Rate.EMPRESAS
elif plan_id == 4:
return Rate.PLANA_1000 if offer_id == 4 else Rate.PLANA_2000
class Tax(str, Enum): class Tax(str, Enum):
GENERAL = 'General' GENERAL = 'General'
...@@ -139,6 +148,10 @@ class UserDetails(BaseModel): ...@@ -139,6 +148,10 @@ class UserDetails(BaseModel):
class SipAccount(BaseModel): class SipAccount(BaseModel):
account: str = Body(
..., title='Cuenta de Facturación', description='Cuenta Principal del CLI'
)
trunk_name: str = Body( trunk_name: str = Body(
..., title='Trunk', description='Nombre de la Troncal' ..., title='Trunk', description='Nombre de la Troncal'
) )
...@@ -156,7 +169,8 @@ class SipAccount(BaseModel): ...@@ -156,7 +169,8 @@ class SipAccount(BaseModel):
) )
@staticmethod @staticmethod
def generate_from_automap(sip): def generate_from_automap(sip, account_name: str):
peer_details = PeerDetails( peer_details = PeerDetails(
username=sip.name, username=sip.name,
secret=sip.secret, secret=sip.secret,
...@@ -182,6 +196,7 @@ class SipAccount(BaseModel): ...@@ -182,6 +196,7 @@ class SipAccount(BaseModel):
) )
return SipAccount( return SipAccount(
account=account_name,
trunk_name=sip.name, trunk_name=sip.name,
peer_details=peer_details, peer_details=peer_details,
user_context='from-trunk', user_context='from-trunk',
...@@ -233,6 +248,18 @@ class User(BaseModel): ...@@ -233,6 +248,18 @@ class User(BaseModel):
default=0.0, title='Saldo', description='Balance del Cliente' default=0.0, title='Saldo', description='Balance del Cliente'
) )
sip_accounts: list[SipAccount] = Body( sip: list[str] = Body(
..., title='Cuentas SIP', description='Números Asociados a la Cuenta de Facturación' ..., title='Cuentas SIP', description='Cuentas de Telefonía asociadas a esta cuenta de Facturación'
) )
@staticmethod
def generate_from_automap(user, sip: list[str] = None):
return User(
username=user.username,
name=user.firstname,
surname=user.lastname,
rate=Rate.decode(user.id_plan, user.id_offer),
balance=user.credit,
sip=sip
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment