package app

import (
	"github.com/go-openapi/runtime"
)

// User is a fist-class object in the app package
type User struct {
	ID                      string
	AboutMe                 string
	AccountID               string
	Address                 *Address
	Alias                   string
	APIKey                  string
	Auth                    runtime.ClientAuthInfoWriter
	Auth0UserID             string
	CommunityNickname       string
	CompanyName             string
	ContactID               string
	CreatedByID             string
	CreatedDate             string
	DelegatedApproverID     string
	Department              string
	Division                string
	Email                   string
	EmployeeNumber          string
	EndOfDay                string
	Environment             string
	Extension               string
	FabricAPIKey            string
	Fax                     string
	FirstName               string
	ForecastEnabled         bool
	FullPhotoURL            string
	IsActive                bool
	IsPortalEnabled         bool
	IsProfilePhotoActive    bool
	IsSystemControlled      bool
	LastIP                  string
	LastLogin               string
	LastModifiedByID        string
	LastModifiedDate        string
	LastName                string
	LoginCount              int64
	ManagerID               string
	MobilePhone             string
	Name                    string
	OutOfOfficeMessage      string
	Phone                   string
	PortalRole              string
	ProfileID               string
	ReceivesAdminEmails     bool
	ReceivesAdminInfoEmails bool
	ReceivesInfoEmails      bool
	SenderEmail             string
	SenderName              string
	Signature               string
	SmallPhotoURL           string
	StartOfDay              string
	TaxnexusAccount         string
	TenantID                string
	TenantUsers             []*TenantUser
	TimeZone                string
	Title                   string
	Username                string
	UserRoles               []*UserRole
	UserRoleID              string
	UserType                string
}

// UserRole is a fist-class object in the app package
type UserRole struct {
	AccountID       string
	Auth0RoleID     string
	Auth0UserID     string
	CompanyName     string
	ContactID       string
	RoleDescription string
	RoleID          string
	RoleName        string
	TaxnexusAccount string
	UserEmail       string
	UserFullName    string
	UserID          string
	Username        string
}

// TenantUser is a fist-class object in the app package
type TenantUser struct {
	AccessLevel     string
	AccountID       string
	Auth0UserID     string
	CompanyName     string
	ContactID       string
	TaxnexusAccount string
	TenantActive    bool
	TenantID        string
	TenantName      string
	TenantStatus    string
	TenantType      string
	TenantVersion   string
	UserEmail       string
	UserFullName    string
	UserID          string
	Username        string
}

// Address is a fist-class object in the app package
type Address struct {
	City        string
	Country     string
	CountryCode string
	PostalCode  string
	State       string
	StateCode   string
	Street      string
}
