Source code for ABConnect.api.models.users

"""Users models for ABConnect API."""

from typing import List, Optional
from datetime import datetime
from pydantic import Field
from .base import ABConnectBaseModel, ActiveModel, IdentifiedModel, TimestampedModel


[docs] class PocUser(ABConnectBaseModel): """POC User model for GET /users/pocusers response. Simple model containing just id and name. """ id: Optional[int] = Field(None) name: Optional[str] = Field(None)
[docs] class CreateUserModel(ActiveModel): """CreateUserModel model""" login: str = Field(..., min_length=1) contact_id: int = Field(..., alias="contactId") full_name: str = Field(..., alias="fullName", min_length=1) email: str = Field(..., min_length=1) email_confirmed: Optional[bool] = Field(None, alias="emailConfirmed") password: str = Field(..., min_length=1) lockout_date_utc: Optional[datetime] = Field(None, alias="lockoutDateUtc") lockout_enabled: Optional[bool] = Field(None, alias="lockoutEnabled") company_id: Optional[str] = Field(None, alias="companyId") role: str = Field(..., min_length=1)
[docs] class UserInfo(IdentifiedModel): """UserInfo model""" login: Optional[str] = Field(None) full_name: Optional[str] = Field(None, alias="fullName") contact_id: Optional[int] = Field(None, alias="contactId") contact_display_id: Optional[str] = Field(None, alias="contactDisplayId") contact_company_name: Optional[str] = Field(None, alias="contactCompanyName") contact_company_id: Optional[str] = Field(None, alias="contactCompanyId") contact_company_display_id: Optional[str] = Field(None, alias="contactCompanyDisplayId") email: Optional[str] = Field(None) email_confirmed: Optional[bool] = Field(None, alias="emailConfirmed") contact_phone: Optional[str] = Field(None, alias="contactPhone") contact_email: Optional[str] = Field(None, alias="contactEmail") password: Optional[str] = Field(None) lockout_date_utc: Optional[datetime] = Field(None, alias="lockoutDateUtc") lockout_enabled: Optional[bool] = Field(None, alias="lockoutEnabled") role: Optional[str] = Field(None) is_active: Optional[bool] = Field(None, alias="isActive") legacy_id: Optional[str] = Field(None, alias="legacyId") additional_user_companies: Optional[List[str]] = Field(None, alias="additionalUserCompanies") additional_user_companies_names: Optional[List[str]] = Field(None, alias="additionalUserCompaniesNames") crm_contact_id: Optional[int] = Field(None, alias="crmContactId")
[docs] class Users(TimestampedModel): """Users model""" row_id: Optional[int] = Field(None, alias="rowId") total_rows: Optional[int] = Field(None, alias="totalRows") user_name: Optional[str] = Field(None, alias="userName") password: Optional[str] = Field(None) user_expiration_date: Optional[datetime] = Field(None, alias="userExpirationDate") dashboard_user_id: Optional[str] = Field(None, alias="dashboardUserId") company_id: Optional[str] = Field(None, alias="companyId") has_access: Optional[bool] = Field(None, alias="hasAccess") is_active: Optional[bool] = Field(None, alias="isActive") dashboard_id: Optional[str] = Field(None, alias="dashboardId") results: Optional[str] = Field(None) role_id: Optional[str] = Field(None, alias="roleId") user_company_id: Optional[str] = Field(None, alias="userCompanyId") company_type: Optional[str] = Field(None, alias="companyType") corporate_company_id: Optional[str] = Field(None, alias="corporateCompanyId") usersystem_log_id: Optional[int] = Field(None, alias="usersystemLogId") ip_address: Optional[str] = Field(None, alias="ipAddress") user_id: Optional[str] = Field(None, alias="userId") login_time: Optional[datetime] = Field(None, alias="loginTime") logout_time: Optional[datetime] = Field(None, alias="logoutTime") create_by: Optional[str] = Field(None, alias="createBy") company_name: Optional[str] = Field(None, alias="companyName") company_code: Optional[str] = Field(None, alias="companyCode") name: Optional[str] = Field(None) from_date: Optional[datetime] = Field(None, alias="fromDate") to_date: Optional[datetime] = Field(None, alias="toDate") sorting_direction: Optional[str] = Field(None, alias="sortingDirection") sorting_by: Optional[str] = Field(None, alias="sortingBy") page_size: Optional[int] = Field(None, alias="pageSize") page_number: Optional[int] = Field(None, alias="pageNumber") country_name: Optional[str] = Field(None, alias="countryName") pricing_to_use: Optional[str] = Field(None, alias="pricingToUse") parent_company_id: Optional[str] = Field(None, alias="parentCompanyId") crm_contact_id: Optional[int] = Field(None, alias="crmContactId")
__all__ = ['CreateUserModel', 'PocUser', 'UserInfo', 'Users']