Projeto do Agent Contas ORACLE
This commit is contained in:
30
app/domain/contas/invoice_models.py
Normal file
30
app/domain/contas/invoice_models.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from decimal import Decimal
|
||||
from typing import Any, Literal, Optional
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class ResolvedInvoiceItem:
|
||||
canonical_name: str
|
||||
tool_category: Optional[Literal["cancelar_vas_avulso", "vas_estrategico", "pro_rata"]]
|
||||
item_type: Literal["avulso", "estrategico", "bundle", "plano", "out_of_scope"]
|
||||
msisdn: str
|
||||
value: Optional[Decimal]
|
||||
section: str
|
||||
charge_date: Optional[str] = None
|
||||
raw_entry: dict[str, Any] = field(default_factory=dict)
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class MentionedItem:
|
||||
desc: str
|
||||
msisdn: Optional[str] = None
|
||||
value: Optional[str] = None
|
||||
date: Optional[str] = None
|
||||
|
||||
|
||||
def is_period_range(period: Any) -> bool:
|
||||
text = str(period)
|
||||
return " a " in text or "~" in text
|
||||
Reference in New Issue
Block a user