Coverage for apps/core_los/public_schemas.py: 100%
37 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-11-04 17:24 +0000
« prev ^ index » next coverage.py v7.17.0, created at 2026-11-04 17:24 +0000
1"""Schemas for Public Partner API (OAuth token exchange & partner loan actions)."""
3from __future__ import annotations
5from typing import Literal
6from uuid import UUID
8from ninja import Schema
11class PublicTokenRequest(Schema):
12 client_id: str
13 client_secret: str
16class PublicTokenOut(Schema):
17 access_token: str
18 expires_in: int = 3600
21class PublicBorrowerIn(Schema):
22 first_name: str
23 last_name: str
24 email: str
27class PublicLoanInput(Schema):
28 loan_officer_id: int
29 state_code: str
30 occupancy: Literal["PrimaryResidence", "SecondHome", "Investment"] = "PrimaryResidence"
31 purpose: Literal["Purchase", "Refinance"] = "Purchase"
32 borrower: PublicBorrowerIn
35class PublicLoanCreatedOut(Schema):
36 arive_loan_no: str
37 guid: UUID
40class PublicLoanSummaryOut(Schema):
41 arive_loan_no: str
42 guid: str
43 borrower_name: str
44 state_code: str
45 county: str | None = None
46 stage: str
47 purpose: str
48 amount: float
49 ltv: float
50 rate: float | None = None
51 product: str | None = None
52 lock: Literal["Locked", "Not Locked"] = "Not Locked"
53 open_tasks: int = 0