# Data structures/types

Struct: ***Configurations***

```swift
public struct Configurations {
    
    //chat viewcontroller
    var lookViewPriceFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var lookViewNameFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var itemViewPriceFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var itemViewNameFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var itemViewReviseItFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    
    var chatMessageTimestempFont: UIFont = UIFont.systemFont(ofSize: 14.0)
    var chatSectionHeaderFont: UIFont = UIFont.systemFont(ofSize: 14.0)
    var chatLoveItReStyleItFont: UIFont = UIFont.boldSystemFont(ofSize: 16)
    
    //match viewcontroller
    var matchActivityIndicatorFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var matchActivityIndicatorColor: UIColor = .black
    
    //--headerView
    var matchExpertNameFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var matchExpertNameColor: UIColor = .black
    var matchExpertCityNameFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var matchExpertCityNameColor: UIColor = .black
    
    //--looksCollectionCell
    var matchLooksCellTitleFont: UIFont = UIFont.systemFont(ofSize: 22.0)
    var matchLooksCellTitleColor: UIColor = .black
    
    //--lookCollectionCell
    var matchLookCellBorderColor: UIColor = .white
    
    //--infoCell
    var matchInfoCellHeaderFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var matchInfoCellHeaderColor: UIColor = .black
    var matchInfoCellTitleFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var matchInfoCellTitleColor: UIColor = .black
    
    //--reviewCell
    var matchReviewCellNameFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var matchReviewCellNameColor: UIColor = .black
    var matchReviewCellTitleFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var matchReviewCellTitleColor: UIColor = .black
    var matchReviewCellTextFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var matchReviewCellTextColor: UIColor = .black
    
    //quiz viewcontroller
    var quizCellTextFont: UIFont = UIFont.systemFont(ofSize: 14.0)
    var quizHeaderFont: UIFont = UIFont.systemFont(ofSize: 22.0)
    var quizHeaderColor: UIColor = .black
    var quizSubHeaderFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var quizSubHeaderColor: UIColor = .black
    var quizButtonFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var quizButtonColor: UIColor = .black
    var quizButtonBackgroundColor: UIColor = .black
    var quizButtonTextColor: UIColor = .white
    
    //--dropDownCollectionViewCell
    //--quizSelectAllCollectionViewCell
    //--imageTagCollectionViewCell
    //--checkboxCollectionViewCell
    //--singleImageCollectionViewCell
    //--tagCollectionViewCell
    //--growingFreeTextCell
    //--imageSelectionTableViewCell
    //--radioButtonCollectionViewCell
    var quizAnswerSelectedFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var quizAnswerUnselectedFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var quizAnswerLabelColor: UIColor = .black
    
    //--imageTagCollectionViewCell
    //--checkboxCollectionViewCell
    //--imageSelectionTableViewCell
    //--radioButtonCollectionViewCell
    var quizBorderSelectedColor: UIColor = .black
    var quizBorderUnselectedColor: UIColor = .lightGray
    
    //rate viewcontroller
    var rateTitleFont: UIFont = UIFont.systemFont(ofSize: 22.0)
    var rateTitleColor: UIColor = .black
    var rateTextiewFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var rateTextiewColor: UIColor = .black
    var ratePlaceholderFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var rateSubmitButtonFont: UIFont = UIFont.systemFont(ofSize: 14.0)
    var rateDoneButtonFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var rateAnswerTextCellFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var rateUnderscoreViewColor: UIColor = .black
    
    //tooltip view
    var tooltipTitleFont: UIFont = UIFont.systemFont(ofSize: 14.0)
    
    //upload viewcontroller
    var uploadBackgroundColor: UIColor = .darkGray
    var uploadDeleteImage: UIImage?
    var uploadPhotoButtonFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var uploadPhotoButtonColor: UIColor = .black
    
    //sdk navigation
    var navigationTitleFont: UIFont = UIFont.boldSystemFont(ofSize: 16.0)
    var navigationTitleColor: UIColor = .black
    var navigationSubTitleFont: UIFont = UIFont.systemFont(ofSize: 14.0)
    var navigationSubTitleColor: UIColor = .black

    //history / products view controler
    var historyProductsSectionHeaderFont: UIFont = UIFont.systemFont(ofSize: 16.0)
    var historyProductsSectionHeaderColor: UIColor = .black
    
    //images
    var deleteImage: UIImage?
    
    public init(configuration: [ConfigurationStyle: Any]) {
   ...
```

Struct: **ConfigurationStyle**

```swift
public enum ConfigurationStyle {
    //chat viewcontroller
    case lookViewPriceFont
    case lookViewNameFont
    case itemViewPriceFont
    case itemViewNameFont
    case itemViewReviseItFont
    case chatMessageTimestempFont
    case chatSectionHeaderFont
    case chatLoveItReStyleItFont
    
    //rate viewcontroller
    case rateTitleFont
    case rateTitleColor
    case rateTextiewFont
    case rateTextiewColor
    case ratePlaceholderFont
    case rateSubmitButtonFont
    case rateDoneButtonFont
    case rateAnswerTextCellFont
    case rateUnderscoreViewColor
    
    //match viewcontroller
    case matchActivityIndicatorFont
    case matchActivityIndicatorColor
    
    //--match headerView
    case matchExpertNameFont
    case matchExpertNameColor
    case matchExpertCityNameFont
    case matchExpertCityNameColor
    
    //--match looksCollectionCell
    case matchLooksCellTitleFont
    case matchLooksCellTitleColor
    
    //--match lookCollectionCell
    case matchLookCellBorderColor
    
    //--match infoCell
    case matchInfoCellHeaderFont
    case matchInfoCellHeaderColor
    
    case matchInfoCellTitleFont
    case matchInfoCellTitleColor
    
    //--match reviewCell
    case matchReviewCellNameFont
    case matchReviewCellNameColor
    case matchReviewCellTitleFont
    case matchReviewCellTitleColor
    case matchReviewCellTextFont
    case matchReviewCellTextColor
    
    //quizCollectionViewCell
    case quizAnswerSelectedFont
    case quizAnswerUnselectedFont
    case quizAnswerLabelColor
    case quizBorderUnselectedColor
    case quizBorderSelectedColor
    
    //upload viewcontroller
    case uploadBackgroundColor
    case uploadDeleteImage
    case uploadPhotoButtonFont
    case uploadPhotoButtonColor
    
    //sdk navigation
    case navigationTitleFont
    case navigationSubTitleFont
    case navigationTitleColor
    case navigationSubTitleColor
    
    //quiz
    case quizButtonFont
    case quizButtonColor
    case quizHeaderFont
    case quizSubHeaderFont
    case quizSubHeaderColor
    case quizHeaderColor
    case quizButtonTextColor
    
    //products view controler
    case historyProductsSectionHeaderFont
    case historyProductsSectionHeaderColor
    
    //tooltip
    case tooltipTitleFont
    
    //Images
    case deleteImage
}
```

Struct: ***ClientInfo***

```swift
struct ClientInfo {
    var firstName: String!
    var lastName: String!
    var email: String!
    var birthday: String?
    var phone: String?
    var gender: Gender?
    var currency: String?
    var country: String? 
}

enum Gender: String {
    case male = "male"
    case female = "female"
}
```

Struct: ***UserStatus***

{% code lineNumbers="true" %}

```swift
struct UserStatus {
    var lastMessage: Any?
    var messageCount: Int?
    var quizStep: String?
    var sessionStatus: String?
    var unreadMessageCount: Int?
}
enum SessionStatus: String {
    case quiz = 'quiz'
    case match = 'match'
    case styling = 'styling'
    case feedback = 'feedback'
}
```

{% endcode %}

Class: **WSQuiz**

```swift
class WSQuiz: NSObject {
    var questionId: Int = 0
    var type: String = ""
    var text: String = ""
    var title: String = ""
    var subtitle: String = ""
    var imageUrlString: String = ""
    var imageDescription: String = ""
    var isSkippable: Bool = false
    var includeAdditionalComments: Bool = false
    var answerNumber: Int = 0
    var maxNextQuestions: Int = 0
    var answersArray: [WSQuizAnswer] = [WSQuizAnswer]()
}
```

Class: **WSQuizAnswer**

```swift
class WSQuizAnswer: NSObject {
    var key: String = ""
    var text: String = ""
    var imageUrlString: String = ""
}
```

#### Class SDKError

```swift
public enum SDKError: Error {
    case sdkNotInitialized
    case missingClientInfoAndUserData
    case missingClientId
    case failToInitSDK
    case failToAuthenticate
    case failToGenerateToken
    case failToGetUserStatus
    case fail401UnAuthorized
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wishi.me/the-formal-stuff/ios-sdk/data-structures-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
