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

1"""Schemas for Public Partner API (OAuth token exchange & partner loan actions).""" 

2 

3from __future__ import annotations 

4 

5from typing import Literal 

6from uuid import UUID 

7 

8from ninja import Schema 

9 

10 

11class PublicTokenRequest(Schema): 

12 client_id: str 

13 client_secret: str 

14 

15 

16class PublicTokenOut(Schema): 

17 access_token: str 

18 expires_in: int = 3600 

19 

20 

21class PublicBorrowerIn(Schema): 

22 first_name: str 

23 last_name: str 

24 email: str 

25 

26 

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 

33 

34 

35class PublicLoanCreatedOut(Schema): 

36 arive_loan_no: str 

37 guid: UUID 

38 

39 

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