# Models

## The CategoryNode object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"CategoryNode":{"type":"object","description":"Represents a category node in the product catalog hierarchy. Used in category node landing pages\nto display products from a specific category with merged category attributes and configuration.","required":["pk","name"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"menuitemmodel":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Menu item model UUID"},"absolute_url":{"type":"string","format":"uri"},"attributes":{"type":"object","description":"Merged category attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"Attribute configuration","additionalProperties":true},"localized_attributes":{"type":"object","description":"Localized attributes","additionalProperties":true},"localized_attributes_kwargs":{"type":"object","description":"Localized attribute configuration","additionalProperties":true},"sort_option":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Sort option identifier"},"prev_sibling":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Previous sibling category identifier"},"parent":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Parent category identifier"},"uuid":{"type":"string","format":"uuid"},"depth":{"type":"integer","description":"Category depth in tree"},"path":{"type":"string","description":"Category path"}}}}}}
```

## The LandingPageResponse object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"LandingPageResponse":{"type":"object","description":"Response from attribute-based landing page endpoint. Contains landing page data, merged attributes,\nattribute value information, paginated product results with search facets, sorters, and pagination metadata.\nProducts are filtered based on the landing page's attribute value.","required":["landing_page","attributes","attribute_value","pagination","facets","sorters","products"],"properties":{"landing_page":{"$ref":"#/components/schemas/LandingPage"},"attributes":{"type":"object","description":"Merged landing page attributes","additionalProperties":true},"attribute_value":{"$ref":"#/components/schemas/AttributeValue"},"pagination":{"type":"object","description":"Pagination information","properties":{"current_page":{"type":"integer"},"num_pages":{"type":"integer"},"page_size":{"type":"integer"},"total_count":{"type":"integer"}}},"facets":{"type":"array","description":"Search facets/widgets for filtering and navigation","items":{"type":"object","description":"Facet/widget configuration for product filtering","properties":{"name":{"type":"string","description":"Display name of the facet"},"key":{"type":"string","description":"Facet key identifier"},"search_key":{"type":"string","description":"Search key used in query parameters"},"widget_type":{"type":"string","description":"Type of widget used to render this facet"},"order":{"type":"integer","description":"Display order of the facet"},"extra_params":{"type":"object","description":"Additional parameters for facet configuration","additionalProperties":true},"data":{"type":"object","description":"Facet data and options","additionalProperties":true}}}},"sorters":{"type":"array","description":"Available sort options for product results","items":{"type":"object","description":"Sort option configuration","properties":{"label":{"type":"string","description":"Display label for the sort option"},"value":{"type":"string","description":"Sort value to use in query parameters"},"is_selected":{"type":"boolean","description":"Whether this sort option is currently selected"}}}},"search_text":{"type":"string","description":"Search query text"},"products":{"type":"array","description":"Paginated list of product results matching the landing page criteria","items":{"type":"object","description":"Product data object (structure depends on product type and configuration)","additionalProperties":true}}}},"LandingPage":{"type":"object","description":"Attribute-based landing page that displays products filtered by a specific attribute value.\nContains landing page metadata, template information, attributes, and pretty URL mappings for multi-language support.","required":["pk","is_active"],"properties":{"pk":{"type":"integer"},"url":{"type":"string"},"attribute_value":{"type":"integer","description":"Attribute value identifier"},"landing_page_type":{"type":"integer","description":"Landing page type identifier"},"template":{"type":"string"},"is_active":{"type":"boolean"},"attributes":{"type":"object","description":"Landing page attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"Attribute configuration","additionalProperties":true},"created_date":{"type":"string","format":"date-time"},"modified_date":{"type":"string","format":"date-time"},"name":{"type":"string"},"landingpageprettyurl_set":{"type":"array","description":"Pretty URL mappings","items":{"type":"object","properties":{"pk":{"type":"integer"},"url":{"type":"string"},"language":{"type":"string"}}}}}},"AttributeValue":{"type":"object","description":"Represents a product attribute value used to filter products on attribute-based landing pages.\nContains the attribute definition, value, and display value for presentation.","required":["pk"],"properties":{"pk":{"type":"integer"},"attribute":{"type":"object","description":"Attribute information","properties":{"pk":{"type":"integer"},"key":{"type":"string"},"name":{"type":"string"}}},"value":{"type":"string"},"display_value":{"type":"string"}}}}}}
```

## The SpecialPageResponse object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"SpecialPageResponse":{"type":"object","description":"Response from special page endpoint. Contains special page data, paginated product results from\nthe associated product collection, search facets, sorters, and pagination metadata.\nProducts are extracted from the special page's product collection using the configured extraction strategy.","required":["special_page","pagination","facets","sorters","products"],"properties":{"special_page":{"$ref":"#/components/schemas/SpecialPage"},"pagination":{"type":"object","description":"Pagination information","properties":{"current_page":{"type":"integer"},"num_pages":{"type":"integer"},"page_size":{"type":"integer"},"total_count":{"type":"integer"}}},"facets":{"type":"array","description":"Search facets/widgets for filtering and navigation","items":{"type":"object","description":"Facet/widget configuration for product filtering","properties":{"name":{"type":"string","description":"Display name of the facet"},"key":{"type":"string","description":"Facet key identifier"},"search_key":{"type":"string","description":"Search key used in query parameters"},"widget_type":{"type":"string","description":"Type of widget used to render this facet"},"order":{"type":"integer","description":"Display order of the facet"},"extra_params":{"type":"object","description":"Additional parameters for facet configuration","additionalProperties":true},"data":{"type":"object","description":"Facet data and options","additionalProperties":true}}}},"sorters":{"type":"array","description":"Available sort options for product results","items":{"type":"object","description":"Sort option configuration","properties":{"label":{"type":"string","description":"Display label for the sort option"},"value":{"type":"string","description":"Sort value to use in query parameters"},"is_selected":{"type":"boolean","description":"Whether this sort option is currently selected"}}}},"search_text":{"type":"string","description":"Search query text"},"products":{"type":"array","description":"Paginated list of product results from the product collection","items":{"type":"object","description":"Product data object (structure depends on product type and configuration)","additionalProperties":true}}}},"SpecialPage":{"type":"object","description":"Product collection page that displays products from a specific product collection. Contains banner images,\nproduct collection reference, template information, and pretty URL mappings. Supports video embedding\nand different product extraction strategies.","required":["pk","is_active"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"url":{"type":"string"},"template":{"type":"string"},"banner":{"type":"string","format":"uri","description":"Banner image URL"},"banner_url":{"type":"string","format":"uri","description":"Banner link URL"},"product_collection":{"type":"integer","description":"Product collection identifier"},"banner_description":{"type":"string","description":"Banner description text"},"is_active":{"type":"boolean"},"created_date":{"type":"string","format":"date-time"},"modified_date":{"type":"string","format":"date-time"},"video_embedded_code":{"type":"string","description":"Embedded video code"},"specialpageprettyurl_set":{"type":"array","description":"Pretty URL mappings","items":{"type":"object","properties":{"pk":{"type":"integer"},"url":{"type":"string"},"language":{"type":"string"}}}},"pretty_url":{"type":"object","description":"Pretty URL object","properties":{"url":{"type":"string"}}},"extraction_strategy":{"type":"string","description":"Product extraction strategy"},"banner_mobile":{"type":"string","format":"uri","description":"Mobile banner image URL"}}}}}}
```

## The LandingPage object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"LandingPage":{"type":"object","description":"Attribute-based landing page that displays products filtered by a specific attribute value.\nContains landing page metadata, template information, attributes, and pretty URL mappings for multi-language support.","required":["pk","is_active"],"properties":{"pk":{"type":"integer"},"url":{"type":"string"},"attribute_value":{"type":"integer","description":"Attribute value identifier"},"landing_page_type":{"type":"integer","description":"Landing page type identifier"},"template":{"type":"string"},"is_active":{"type":"boolean"},"attributes":{"type":"object","description":"Landing page attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"Attribute configuration","additionalProperties":true},"created_date":{"type":"string","format":"date-time"},"modified_date":{"type":"string","format":"date-time"},"name":{"type":"string"},"landingpageprettyurl_set":{"type":"array","description":"Pretty URL mappings","items":{"type":"object","properties":{"pk":{"type":"integer"},"url":{"type":"string"},"language":{"type":"string"}}}}}}}}}
```

## The SpecialPage object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"SpecialPage":{"type":"object","description":"Product collection page that displays products from a specific product collection. Contains banner images,\nproduct collection reference, template information, and pretty URL mappings. Supports video embedding\nand different product extraction strategies.","required":["pk","is_active"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"url":{"type":"string"},"template":{"type":"string"},"banner":{"type":"string","format":"uri","description":"Banner image URL"},"banner_url":{"type":"string","format":"uri","description":"Banner link URL"},"product_collection":{"type":"integer","description":"Product collection identifier"},"banner_description":{"type":"string","description":"Banner description text"},"is_active":{"type":"boolean"},"created_date":{"type":"string","format":"date-time"},"modified_date":{"type":"string","format":"date-time"},"video_embedded_code":{"type":"string","description":"Embedded video code"},"specialpageprettyurl_set":{"type":"array","description":"Pretty URL mappings","items":{"type":"object","properties":{"pk":{"type":"integer"},"url":{"type":"string"},"language":{"type":"string"}}}},"pretty_url":{"type":"object","description":"Pretty URL object","properties":{"url":{"type":"string"}}},"extraction_strategy":{"type":"string","description":"Product extraction strategy"},"banner_mobile":{"type":"string","format":"uri","description":"Mobile banner image URL"}}}}}}
```

## The AttributeValue object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"AttributeValue":{"type":"object","description":"Represents a product attribute value used to filter products on attribute-based landing pages.\nContains the attribute definition, value, and display value for presentation.","required":["pk"],"properties":{"pk":{"type":"integer"},"attribute":{"type":"object","description":"Attribute information","properties":{"pk":{"type":"integer"},"key":{"type":"string"},"name":{"type":"string"}}},"value":{"type":"string"},"display_value":{"type":"string"}}}}}}
```

## The DataSourceLandingPage object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"DataSourceLandingPage":{"type":"object","description":"Landing page associated with a data source. Contains widget and product collection widget slugs\nfor displaying content and products related to the data source. Used for data source-specific product pages.","required":["pk","is_active"],"properties":{"pk":{"type":"integer"},"data_source":{"type":"object","description":"Associated data source information","properties":{"pk":{"type":"integer","description":"Data source identifier"},"name":{"type":"string","description":"Data source name"},"slug":{"type":"string","description":"Data source slug identifier"},"title":{"type":"string","description":"Data source title"}}},"widget":{"type":"string","description":"Widget slug"},"product_collection_widget":{"type":"string","description":"Product collection widget slug"},"is_active":{"type":"boolean"}}}}}}
```

## The FlatPage object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"FlatPage":{"type":"object","description":"Static content page (flat page) returned in JSON format. Contains HTML content, title, URL,\ntemplate information, and optional shop flat page configuration. Can be returned as HTML or JSON\nbased on the Accept header.","required":["url","title","content"],"properties":{"url":{"type":"string"},"title":{"type":"string"},"content":{"type":"string","description":"HTML content"},"template_name":{"type":"string"},"shopflatpage":{"type":"object","description":"Shop flat page configuration","properties":{"attributes":{"type":"object","description":"Shop flat page attributes","additionalProperties":true},"type":{"type":"string","description":"Shop flat page type"},"config":{"type":"object","description":"Shop flat page configuration","additionalProperties":true}}}}}}}}
```

## The ShopFlatPage object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"ShopFlatPage":{"type":"object","description":"Shop-specific flat page with type and configuration. Extends the base flat page with shop-specific\nattributes, type classification, and configuration. Supports multi-language pretty URLs.","required":["pk","flat_page","type"],"properties":{"pk":{"type":"integer"},"flat_page":{"type":"object","description":"Flat page details","required":["pk","url","title","content"],"properties":{"pk":{"type":"integer"},"url":{"type":"string"},"title":{"type":"string"},"content":{"type":"string","description":"HTML content"},"template_name":{"type":"string"},"registration_required":{"type":"boolean"},"sites":{"type":"array","description":"Site identifiers","items":{"type":"integer"}},"flatpageprettyurl_set":{"type":"array","description":"Pretty URL mappings","items":{"type":"object","properties":{"pk":{"type":"integer"},"url":{"type":"string"},"language":{"type":"string"}}}},"type":{"type":"string","description":"Shop flat page type"}}},"type":{"type":"string","description":"Shop flat page type"}}}}}}
```

## The WidgetData object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"WidgetData":{"type":"object","description":"Widget template context data returned by the widget endpoint. Contains widget name, slug, template path,\nand attributes. The attributes structure depends on the widget type schema. Used for rendering widgets\nin pages and templates.","required":["name","slug","template","attributes"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"template":{"type":"string"},"attributes":{"type":"object","description":"Widget attributes (structure depends on widget type)","additionalProperties":true}}}}}}
```

## The WidgetType object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"WidgetType":{"type":"object","description":"Defines a widget type with its JSON schema for validating and configuring widget attributes.\nUsed to retrieve widget type information and understand what attributes a widget supports.\nThe schema defines the structure and validation rules for widget attributes.","required":["pk","name","schema"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"schema":{"type":"object","description":"JSON schema defining widget attributes","additionalProperties":true}}}}}}
```

## The Form object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"Form":{"type":"object","description":"Dynamic form with JSON schema defining field definitions, validation rules, and actions.\nUsed for generating form UIs and processing form submissions. Supports multi-language\ntranslations and pretty URLs. The schema defines input types, labels, and required fields.","required":["pk","schema","is_active"],"properties":{"pk":{"type":"integer"},"name":{"type":"string"},"url":{"type":"string"},"schema":{"type":"object","description":"Form field definitions","additionalProperties":true},"template":{"type":"string"},"is_active":{"type":"boolean"},"pretty_url":{"type":"object","description":"Primary pretty URL object for the form","properties":{"url":{"type":"string","description":"Pretty URL path"}}},"formprettyurl_set":{"type":"array","description":"Multi-language pretty URL mappings for the form","items":{"type":"object","description":"Pretty URL mapping for a specific language","properties":{"pk":{"type":"integer","description":"Pretty URL identifier"},"url":{"type":"string","description":"URL path for this language"},"language":{"type":"string","description":"Language code (e.g., 'en', 'tr')"}}}},"translations":{"type":"object","description":"Translated form fields and labels by language code","additionalProperties":true},"created_date":{"type":"string","format":"date-time"},"modified_date":{"type":"string","format":"date-time"}}}}}}
```

## The FormValidationError object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"FormValidationError":{"type":"object","description":"Error response returned when form submission validation fails. Contains field-level validation errors\nand the form schema for reference. Errors are organized by field name with arrays of error messages.","required":["errors","form_schema"],"properties":{"errors":{"type":"object","description":"Field-level validation errors","additionalProperties":{"type":"array","items":{"type":"string"}}},"form_schema":{"type":"object","description":"The form schema for reference","additionalProperties":true}}}}}}
```

## The Seo object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"Seo":{"type":"object","description":"SEO metadata for a specific URL path. Contains title, description, keywords, and additional attributes\nfor search engine optimization. Used to retrieve SEO information for any URL in the system.","required":["pk","url"],"properties":{"pk":{"type":"integer"},"url":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"keywords":{"type":"string"},"attributes":{"type":"object","description":"Additional SEO attributes","additionalProperties":true},"attributes_kwargs":{"type":"object","description":"SEO attribute configuration","additionalProperties":true},"created_date":{"type":"string","format":"date-time"},"modified_date":{"type":"string","format":"date-time"}}}}}}
```

## The CurrentUser object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"CurrentUser":{"type":"object","description":"Information about the currently authenticated user. Contains profile data (name, email, phone),\npreferences (email/SMS/call permissions), segment information (price list, stock list, currency),\nselected delivery address, and authentication status. Requires authenticated session cookie.","required":["pk"],"properties":{"pk":{"type":"integer"},"first_name":{"type":"string"},"last_name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"email_allowed":{"type":"boolean"},"sms_allowed":{"type":"boolean"},"call_allowed":{"type":"boolean"},"attributes":{"type":"object","description":"Additional user attributes","additionalProperties":true},"hashed_email":{"type":"string","description":"MD5 hash of the email address"},"date_joined":{"type":"string","format":"date-time"},"last_login":{"type":"string","format":"date-time"},"gender":{"type":"string","enum":["M","F","O"]},"date_of_birth":{"type":"string","format":"date"},"is_email_verified":{"type":"boolean","description":"Whether the user's email is verified"},"is_social_networks_connected":{"type":"boolean","description":"Whether the user has connected social accounts"},"segment":{"type":"object","description":"User's current segment information","properties":{"pk":{"type":"integer"},"price_list":{"type":"integer"},"stock_list":{"type":"integer"},"currency":{"type":"string"}}},"client_type":{"type":"string","description":"Client type identifier"},"selected_address":{"type":"object","description":"Currently selected delivery address","properties":{"pk":{"type":"integer"},"address_line_1":{"type":"string"},"address_line_2":{"type":"string"},"city":{"type":"string"},"postal_code":{"type":"string"},"country":{"type":"string"}}}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.1.0","info":{"title":"CMS API - Content Management & Pages","version":"1.0.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","description":"Standard error response format for API errors. Contains error detail message and optional error code.\nUsed for authentication errors and other API-level error responses.","required":["detail"],"properties":{"detail":{"type":"string","description":"Human-readable error message"},"code":{"type":"string","description":"Optional error code for programmatic error handling"}}}}}}
```
