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