Source code for app.parsers
from datetime import datetime
from decimal import Decimal
from typing import Annotated, Any
from pydantic import BaseModel, Field
from app.models import BorrowerSize
[docs]
class BasicUser(BaseModel):
username: str
name: str | None = None
password: str
temp_password: str
[docs]
class ResetPassword(BaseModel):
username: str
[docs]
class SetupMFA(BaseModel):
temp_password: str
session: str
[docs]
class AwardUpdate(BaseModel):
source_contract_id: str | None = None
title: str | None = None
description: str | None = None
contracting_process_id: str | None = None
award_currency: str | None = None
award_amount: Decimal | None = None
award_date: datetime | None = None
payment_method: dict[str, Any] | None = None
buyer_name: str | None = None
source_url: str | None = None
entity_code: str | None = None
contract_status: str | None = None
contractperiod_startdate: datetime | None = None
contractperiod_enddate: datetime | None = None
procurement_method: str | None = None
procurement_category: str | None = None
[docs]
class LenderApprovedData(BaseModel):
compliant_checks_completed: bool
compliant_checks_passed: bool
disbursed_final_amount: Annotated[Decimal, Field(gt=0)]
[docs]
class BorrowerUpdate(BaseModel):
legal_name: str | None = None
email: str | None = None
address: str | None = None
legal_identifier: str | None = None
type: str | None = None
sector: str | None = None
size: BorrowerSize | None = None
[docs]
class UpdateDataField(BaseModel):
legal_name: bool | None = None
email: bool | None = None
address: bool | None = None
legal_identifier: bool | None = None
type: bool | None = None
[docs]
class LenderRejectedApplication(BaseModel):
compliance_checks_failed: bool
poor_credit_history: bool
risk_of_fraud: bool
other: bool
other_reason: str | None = None
[docs]
class ApplicationBase(BaseModel):
uuid: str
[docs]
class ConfirmNewEmail(ApplicationBase):
confirmation_email_token: str
[docs]
class ChangeEmail(ApplicationBase):
new_email: str
[docs]
class VerifyBorrowerDocument(BaseModel):
verified: bool
[docs]
class ApplicationCreditOptions(ApplicationBase):
borrower_size: BorrowerSize
amount_requested: Decimal
[docs]
class ApplicationSelectCreditProduct(ApplicationCreditOptions):
sector: str
annual_revenue: Decimal | None = None
credit_product_id: int
repayment_years: int | None = None
repayment_months: int | None = None
payment_start_date: datetime | None = None
[docs]
class UploadContractConfirmation(ApplicationBase):
contract_amount_submitted: Decimal | None = None
[docs]
class ApplicationEmailBorrower(BaseModel):
message: str
[docs]
class ApplicationDeclinePayload(ApplicationBase):
decline_this: bool
decline_all: bool
[docs]
class ApplicationDeclineFeedbackPayload(ApplicationBase):
dont_need_access_credit: bool
already_have_acredit: bool
preffer_to_go_to_bank: bool
dont_want_access_credit: bool
suspicious_email: bool
other: bool
other_comments: str