# Models

## The ConfigResponse object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ConfigResponse":{"type":"object","description":"Storefront configuration payload","required":["active_currency","available_currencies","country","user_phone_regex","user_phone_format"],"properties":{"active_currency":{"type":"string","description":"ISO currency code currently active for the session"},"available_currencies":{"type":"array","description":"Currency codes enabled for the storefront","items":{"type":"string"}},"country":{"$ref":"#/components/schemas/Country"},"user_phone_regex":{"type":"string","description":"Regular expression used for phone validation"},"user_phone_format":{"type":"string","description":"Suggested phone format for UI display"}}},"Country":{"type":"object","description":"Country metadata extracted from dynamic settings","required":["pk","name","code"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}}
```

## The Country object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"Country":{"type":"object","description":"Country metadata extracted from dynamic settings","required":["pk","name","code"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"code":{"type":"string"}}}}}}
```

## The EmailSubscriptionRequest object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"EmailSubscriptionRequest":{"type":"object","description":"Input payload for marketing subscriptions","required":["email"],"properties":{"email":{"type":"string","format":"email"},"first_name":{"anyOf":[{"type":"string","maxLength":50}]},"last_name":{"anyOf":[{"type":"string","maxLength":50}]},"gender":{"anyOf":[{"type":"string"}],"description":"Value from `omnicore.users.enums.GenderType`"}}}}}}
```

## The GoogleLoginTokenRequest object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"GoogleLoginTokenRequest":{"type":"object","description":"JSON payload forwarded to Google token verifier","required":["access_token"],"properties":{"access_token":{"type":"string","description":"OAuth access token issued by Google"}}}}}}
```

## The SetLanguageRequest object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"SetLanguageRequest":{"type":"object","description":"Form payload used by `set_language`","required":["language"],"properties":{"language":{"type":"string","description":"Language code defined in Django `LANGUAGES`"},"next":{"anyOf":[{"type":"string"}],"description":"Optional redirect path after switching language"}}}}}}
```

## The LanguageListResponse object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"LanguageListResponse":{"type":"object","description":"Available language information","required":["active_language","default_language","available_languages"],"properties":{"active_language":{"type":"string","description":"Language currently active in session"},"default_language":{"type":"string","description":"Project default language"},"available_languages":{"type":"object","description":"Mapping of language code to human-readable name","additionalProperties":{"type":"string"}}}}}}}
```

## The PaginatedConversationList object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"PaginatedConversationList":{"type":"object","description":"Standard paginated response returned by conversation listings","required":["count","results"],"properties":{"count":{"type":"integer"},"next":{"type":"string","format":"uri"},"previous":{"type":"string","format":"uri"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Conversation"}}}},"Conversation":{"type":"object","description":"Conversation (question or review) resource","required":["id","user","message_set","conversation_type","is_public","is_answered"],"properties":{"id":{"type":"integer"},"subject":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"},"datasource":{"$ref":"#/components/schemas/DataSourceSummary"},"item_object":{"$ref":"#/components/schemas/ConversationItem"},"item_content":{"type":"string","description":"Content type label for the attached object"},"message_set":{"type":"array","items":{"$ref":"#/components/schemas/ConversationMessage"}},"conversation_type":{"type":"string"},"last_message_date":{"type":"string","format":"date-time"},"is_public":{"type":"boolean"},"is_answered":{"type":"boolean"}}},"UserSummary":{"type":"object","description":"Minimal user information exposed publicly","required":["id","first_name","last_name","email"],"properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"gender":{"type":"string"}}},"DataSourceSummary":{"type":"object","description":"Product datasource metadata (nullable)","required":["pk","name"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"supplier_code":{"type":"string"},"email":{"type":"string","format":"email"},"phone_number":{"type":"string"},"is_active":{"type":"boolean"}}},"ConversationItem":{"anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"$ref":"#/components/schemas/ConversationOrderItem"}]},"ConversationProduct":{"type":"object","description":"Product representation included in conversations","required":["pk","name","sku"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"absolute_url":{"type":"string","format":"uri"},"product_images":{"type":"array","items":{"$ref":"#/components/schemas/ConversationProductImage"}}}},"ConversationProductImage":{"type":"object","description":"Product image embedded within a conversation context","required":["pk","product","image"],"properties":{"pk":{"type":"integer"},"product":{"type":"integer"},"image":{"type":"string","format":"uri"},"order":{"type":"integer"},"image_path":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}}},"ConversationOrderItem":{"type":"object","description":"Order item wrapper when item_content is an order","required":["pk","status","order_number","product"],"properties":{"pk":{"type":"integer"},"product":{"$ref":"#/components/schemas/ConversationProduct"},"status":{"type":"string"},"order_number":{"type":"string"}}},"ConversationMessage":{"type":"object","description":"Message belonging to a conversation","required":["id","message_content","user_type","content_object","content_type","created_date"],"properties":{"id":{"type":"integer"},"message_content":{"type":"string"},"user_type":{"type":"string","description":"Enumeration from `omnicore.users.enums.UserType`"},"content_object":{"type":"object","additionalProperties":true},"content_type":{"type":"string"},"created_date":{"type":"string","format":"date-time"}}}}}}
```

## The Conversation object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"Conversation":{"type":"object","description":"Conversation (question or review) resource","required":["id","user","message_set","conversation_type","is_public","is_answered"],"properties":{"id":{"type":"integer"},"subject":{"type":"string"},"user":{"$ref":"#/components/schemas/UserSummary"},"datasource":{"$ref":"#/components/schemas/DataSourceSummary"},"item_object":{"$ref":"#/components/schemas/ConversationItem"},"item_content":{"type":"string","description":"Content type label for the attached object"},"message_set":{"type":"array","items":{"$ref":"#/components/schemas/ConversationMessage"}},"conversation_type":{"type":"string"},"last_message_date":{"type":"string","format":"date-time"},"is_public":{"type":"boolean"},"is_answered":{"type":"boolean"}}},"UserSummary":{"type":"object","description":"Minimal user information exposed publicly","required":["id","first_name","last_name","email"],"properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"gender":{"type":"string"}}},"DataSourceSummary":{"type":"object","description":"Product datasource metadata (nullable)","required":["pk","name"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"supplier_code":{"type":"string"},"email":{"type":"string","format":"email"},"phone_number":{"type":"string"},"is_active":{"type":"boolean"}}},"ConversationItem":{"anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"$ref":"#/components/schemas/ConversationOrderItem"}]},"ConversationProduct":{"type":"object","description":"Product representation included in conversations","required":["pk","name","sku"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"absolute_url":{"type":"string","format":"uri"},"product_images":{"type":"array","items":{"$ref":"#/components/schemas/ConversationProductImage"}}}},"ConversationProductImage":{"type":"object","description":"Product image embedded within a conversation context","required":["pk","product","image"],"properties":{"pk":{"type":"integer"},"product":{"type":"integer"},"image":{"type":"string","format":"uri"},"order":{"type":"integer"},"image_path":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}}},"ConversationOrderItem":{"type":"object","description":"Order item wrapper when item_content is an order","required":["pk","status","order_number","product"],"properties":{"pk":{"type":"integer"},"product":{"$ref":"#/components/schemas/ConversationProduct"},"status":{"type":"string"},"order_number":{"type":"string"}}},"ConversationMessage":{"type":"object","description":"Message belonging to a conversation","required":["id","message_content","user_type","content_object","content_type","created_date"],"properties":{"id":{"type":"integer"},"message_content":{"type":"string"},"user_type":{"type":"string","description":"Enumeration from `omnicore.users.enums.UserType`"},"content_object":{"type":"object","additionalProperties":true},"content_type":{"type":"string"},"created_date":{"type":"string","format":"date-time"}}}}}}
```

## The UserSummary object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"UserSummary":{"type":"object","description":"Minimal user information exposed publicly","required":["id","first_name","last_name","email"],"properties":{"id":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"gender":{"type":"string"}}}}}}
```

## The DataSourceSummary object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"DataSourceSummary":{"type":"object","description":"Product datasource metadata (nullable)","required":["pk","name"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"supplier_code":{"type":"string"},"email":{"type":"string","format":"email"},"phone_number":{"type":"string"},"is_active":{"type":"boolean"}}}}}}
```

## The ConversationItem object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ConversationItem":{"anyOf":[{"$ref":"#/components/schemas/ConversationProduct"},{"$ref":"#/components/schemas/ConversationOrderItem"}]},"ConversationProduct":{"type":"object","description":"Product representation included in conversations","required":["pk","name","sku"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"absolute_url":{"type":"string","format":"uri"},"product_images":{"type":"array","items":{"$ref":"#/components/schemas/ConversationProductImage"}}}},"ConversationProductImage":{"type":"object","description":"Product image embedded within a conversation context","required":["pk","product","image"],"properties":{"pk":{"type":"integer"},"product":{"type":"integer"},"image":{"type":"string","format":"uri"},"order":{"type":"integer"},"image_path":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}}},"ConversationOrderItem":{"type":"object","description":"Order item wrapper when item_content is an order","required":["pk","status","order_number","product"],"properties":{"pk":{"type":"integer"},"product":{"$ref":"#/components/schemas/ConversationProduct"},"status":{"type":"string"},"order_number":{"type":"string"}}}}}}
```

## The ConversationProduct object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ConversationProduct":{"type":"object","description":"Product representation included in conversations","required":["pk","name","sku"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"absolute_url":{"type":"string","format":"uri"},"product_images":{"type":"array","items":{"$ref":"#/components/schemas/ConversationProductImage"}}}},"ConversationProductImage":{"type":"object","description":"Product image embedded within a conversation context","required":["pk","product","image"],"properties":{"pk":{"type":"integer"},"product":{"type":"integer"},"image":{"type":"string","format":"uri"},"order":{"type":"integer"},"image_path":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}}}}}}
```

## The ConversationOrderItem object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ConversationOrderItem":{"type":"object","description":"Order item wrapper when item_content is an order","required":["pk","status","order_number","product"],"properties":{"pk":{"type":"integer"},"product":{"$ref":"#/components/schemas/ConversationProduct"},"status":{"type":"string"},"order_number":{"type":"string"}}},"ConversationProduct":{"type":"object","description":"Product representation included in conversations","required":["pk","name","sku"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"sku":{"type":"string"},"absolute_url":{"type":"string","format":"uri"},"product_images":{"type":"array","items":{"$ref":"#/components/schemas/ConversationProductImage"}}}},"ConversationProductImage":{"type":"object","description":"Product image embedded within a conversation context","required":["pk","product","image"],"properties":{"pk":{"type":"integer"},"product":{"type":"integer"},"image":{"type":"string","format":"uri"},"order":{"type":"integer"},"image_path":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}}}}}}
```

## The ConversationProductImage object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ConversationProductImage":{"type":"object","description":"Product image embedded within a conversation context","required":["pk","product","image"],"properties":{"pk":{"type":"integer"},"product":{"type":"integer"},"image":{"type":"string","format":"uri"},"order":{"type":"integer"},"image_path":{"type":"string"},"height":{"type":"integer"},"width":{"type":"integer"}}}}}}
```

## The ConversationMessage object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ConversationMessage":{"type":"object","description":"Message belonging to a conversation","required":["id","message_content","user_type","content_object","content_type","created_date"],"properties":{"id":{"type":"integer"},"message_content":{"type":"string"},"user_type":{"type":"string","description":"Enumeration from `omnicore.users.enums.UserType`"},"content_object":{"type":"object","additionalProperties":true},"content_type":{"type":"string"},"created_date":{"type":"string","format":"date-time"}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","description":"Generic error payload","required":["detail"],"properties":{"detail":{"type":"string"},"code":{"type":"string"}}}}}}
```

## The ValidationErrorResponse object

```json
{"openapi":"3.1.0","info":{"title":"Users API - Public Endpoints","version":"1.0.0"},"components":{"schemas":{"ValidationErrorResponse":{"type":"object","description":"Validation error structure returned by DRF","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}
```


---

# 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://apidocs.akinon.com/commerce-openapis/users/module-1/models.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.
