from app.api import api
from app.models import ProFormaInvoice
from app.util import datetime_util


class ProFormaInvoiceAccessor:
    @classmethod
    def update_pro_forma_invoice(cls, application_id, merchant_slug, gst_number, center_name, customer_name,
                                 merchant_collected_advance, processing_fee_by_merchant, insurance_premium_applicable=0,
                                 insurance_premium_amount=0):
        time_now = datetime_util.get_now_ist_string()

        ProFormaInvoice.objects.update_or_create(
            application_id=application_id,
            defaults={
                "gst_number": gst_number,
                "center_name": center_name,
                "customer_name": customer_name,
                "loan_application_no": f"{merchant_slug}0{application_id}",
                "processing_fee_by_merchant": processing_fee_by_merchant,
                "insurance_premium_by_merchant": 0,
                "insurance_premium_applicable": insurance_premium_applicable,
                "insurance_premium_amount": insurance_premium_amount,
                "merchant_collected_advance_amount": merchant_collected_advance,
                "fldg_applied": 0,
                "liability_hold": 0,
                "fldg_applied_category": 0,
                "created_at": time_now,
                "updated_at": time_now
            }
        )

        return api.SUCCESS
    @classmethod
    def get_pro_forma_invoice(cls, application_id):
        return ProFormaInvoice.objects.filter(application_id=application_id).first()
    
