from core.models.invoice import PaymentMethod from dataclasses import dataclass from datetime import datetime @dataclass class Invoice: billing_code: str status: str expires_at: datetime payment_methods: tuple[PaymentMethod] def is_new(self): return self.status == 'new' def is_rejected(self): return self.status == 'invalid' or self.status == 'expired' def is_processing(self): return self.status == 'processing' def is_settled(self): return self.status == 'settled'