Coverage for apps/accounts/setup_schemas.py: 100%

39 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-11-04 17:24 +0000

1"""Schemas for First-run Setup Installer API.""" 

2 

3from __future__ import annotations 

4 

5from ninja import Schema 

6 

7 

8class SetupStatusOut(Schema): 

9 provisioned: bool 

10 company: str | None = None 

11 user_count: int 

12 

13 

14class CompanyInput(Schema): 

15 name: str 

16 nmls_id: str = "" 

17 type: str = "Broker" 

18 

19 

20class AdminUserInput(Schema): 

21 name: str 

22 email: str 

23 password: str 

24 

25 

26class BranchInput(Schema): 

27 id: str 

28 label: str 

29 

30 

31class LicenseInput(Schema): 

32 state_code: str 

33 sponsored: bool = True 

34 

35 

36class LoanOfficerInput(Schema): 

37 name: str 

38 email: str 

39 password: str 

40 nmls_id: str = "" 

41 licenses: list[LicenseInput] = [] 

42 

43 

44class SetupInput(Schema): 

45 company: CompanyInput 

46 admin: AdminUserInput 

47 branches: list[BranchInput] = [] 

48 loan_officer: LoanOfficerInput | None = None 

49 clear_loans: bool = False 

50 

51 

52class SessionUserOut(Schema): 

53 id: int 

54 name: str 

55 role: str 

56 

57 

58class SetupResultOut(Schema): 

59 token: str 

60 user: SessionUserOut