/* tslint:disable */ /* eslint-disable */ /** * Tandoor * Tandoor API Docs * * The version of the OpenAPI document: 0.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; import type { OpenDataCategoryRequest } from './OpenDataCategoryRequest'; import { OpenDataCategoryRequestFromJSON, OpenDataCategoryRequestFromJSONTyped, OpenDataCategoryRequestToJSON, } from './OpenDataCategoryRequest'; import type { OpenDataFoodPropertyRequest } from './OpenDataFoodPropertyRequest'; import { OpenDataFoodPropertyRequestFromJSON, OpenDataFoodPropertyRequestFromJSONTyped, OpenDataFoodPropertyRequestToJSON, } from './OpenDataFoodPropertyRequest'; import type { OpenDataUnitRequest } from './OpenDataUnitRequest'; import { OpenDataUnitRequestFromJSON, OpenDataUnitRequestFromJSONTyped, OpenDataUnitRequestToJSON, } from './OpenDataUnitRequest'; import type { OpenDataVersionRequest } from './OpenDataVersionRequest'; import { OpenDataVersionRequestFromJSON, OpenDataVersionRequestFromJSONTyped, OpenDataVersionRequestToJSON, } from './OpenDataVersionRequest'; /** * Moves `UniqueValidator`'s from the validation stage to the save stage. * It solves the problem with nested validation for unique fields on update. * * If you want more details, you can read related issues and articles: * https://github.com/beda-software/drf-writable-nested/issues/1 * http://www.django-rest-framework.org/api-guide/validators/#updating-nested-serializers * * Example of usage: * ``` * class Child(models.Model): * field = models.CharField(unique=True) * * * class Parent(models.Model): * child = models.ForeignKey('Child') * * * class ChildSerializer(UniqueFieldsMixin, serializers.ModelSerializer): * class Meta: * model = Child * * * class ParentSerializer(NestedUpdateMixin, serializers.ModelSerializer): * child = ChildSerializer() * * class Meta: * model = Parent * ``` * * Note: `UniqueFieldsMixin` must be applied only on the serializer * which has unique fields. * * Note: When you are using both mixins * (`UniqueFieldsMixin` and `NestedCreateMixin` or `NestedUpdateMixin`) * you should put `UniqueFieldsMixin` ahead. * @export * @interface OpenDataFoodRequest */ export interface OpenDataFoodRequest { /** * * @type {OpenDataVersionRequest} * @memberof OpenDataFoodRequest */ version: OpenDataVersionRequest; /** * * @type {string} * @memberof OpenDataFoodRequest */ slug: string; /** * * @type {string} * @memberof OpenDataFoodRequest */ name: string; /** * * @type {string} * @memberof OpenDataFoodRequest */ pluralName: string; /** * * @type {OpenDataCategoryRequest} * @memberof OpenDataFoodRequest */ storeCategory: OpenDataCategoryRequest; /** * * @type {OpenDataUnitRequest} * @memberof OpenDataFoodRequest */ preferredUnitMetric?: OpenDataUnitRequest; /** * * @type {OpenDataUnitRequest} * @memberof OpenDataFoodRequest */ preferredShoppingUnitMetric?: OpenDataUnitRequest; /** * * @type {OpenDataUnitRequest} * @memberof OpenDataFoodRequest */ preferredUnitImperial?: OpenDataUnitRequest; /** * * @type {OpenDataUnitRequest} * @memberof OpenDataFoodRequest */ preferredShoppingUnitImperial?: OpenDataUnitRequest; /** * * @type {Array} * @memberof OpenDataFoodRequest */ properties: Array | null; /** * * @type {number} * @memberof OpenDataFoodRequest */ propertiesFoodAmount?: number; /** * * @type {OpenDataUnitRequest} * @memberof OpenDataFoodRequest */ propertiesFoodUnit: OpenDataUnitRequest; /** * * @type {string} * @memberof OpenDataFoodRequest */ propertiesSource?: string; /** * * @type {string} * @memberof OpenDataFoodRequest */ fdcId: string; /** * * @type {string} * @memberof OpenDataFoodRequest */ comment?: string; /** * * @type {number} * @memberof OpenDataFoodRequest */ id?: number; } /** * Check if a given object implements the OpenDataFoodRequest interface. */ export function instanceOfOpenDataFoodRequest(value: object): boolean { if (!('version' in value)) return false; if (!('slug' in value)) return false; if (!('name' in value)) return false; if (!('pluralName' in value)) return false; if (!('storeCategory' in value)) return false; if (!('properties' in value)) return false; if (!('propertiesFoodUnit' in value)) return false; if (!('fdcId' in value)) return false; return true; } export function OpenDataFoodRequestFromJSON(json: any): OpenDataFoodRequest { return OpenDataFoodRequestFromJSONTyped(json, false); } export function OpenDataFoodRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): OpenDataFoodRequest { if (json == null) { return json; } return { 'version': OpenDataVersionRequestFromJSON(json['version']), 'slug': json['slug'], 'name': json['name'], 'pluralName': json['plural_name'], 'storeCategory': OpenDataCategoryRequestFromJSON(json['store_category']), 'preferredUnitMetric': json['preferred_unit_metric'] == null ? undefined : OpenDataUnitRequestFromJSON(json['preferred_unit_metric']), 'preferredShoppingUnitMetric': json['preferred_shopping_unit_metric'] == null ? undefined : OpenDataUnitRequestFromJSON(json['preferred_shopping_unit_metric']), 'preferredUnitImperial': json['preferred_unit_imperial'] == null ? undefined : OpenDataUnitRequestFromJSON(json['preferred_unit_imperial']), 'preferredShoppingUnitImperial': json['preferred_shopping_unit_imperial'] == null ? undefined : OpenDataUnitRequestFromJSON(json['preferred_shopping_unit_imperial']), 'properties': (json['properties'] == null ? null : (json['properties'] as Array).map(OpenDataFoodPropertyRequestFromJSON)), 'propertiesFoodAmount': json['properties_food_amount'] == null ? undefined : json['properties_food_amount'], 'propertiesFoodUnit': OpenDataUnitRequestFromJSON(json['properties_food_unit']), 'propertiesSource': json['properties_source'] == null ? undefined : json['properties_source'], 'fdcId': json['fdc_id'], 'comment': json['comment'] == null ? undefined : json['comment'], 'id': json['id'] == null ? undefined : json['id'], }; } export function OpenDataFoodRequestToJSON(value?: OpenDataFoodRequest | null): any { if (value == null) { return value; } return { 'version': OpenDataVersionRequestToJSON(value['version']), 'slug': value['slug'], 'name': value['name'], 'plural_name': value['pluralName'], 'store_category': OpenDataCategoryRequestToJSON(value['storeCategory']), 'preferred_unit_metric': OpenDataUnitRequestToJSON(value['preferredUnitMetric']), 'preferred_shopping_unit_metric': OpenDataUnitRequestToJSON(value['preferredShoppingUnitMetric']), 'preferred_unit_imperial': OpenDataUnitRequestToJSON(value['preferredUnitImperial']), 'preferred_shopping_unit_imperial': OpenDataUnitRequestToJSON(value['preferredShoppingUnitImperial']), 'properties': (value['properties'] == null ? null : (value['properties'] as Array).map(OpenDataFoodPropertyRequestToJSON)), 'properties_food_amount': value['propertiesFoodAmount'], 'properties_food_unit': OpenDataUnitRequestToJSON(value['propertiesFoodUnit']), 'properties_source': value['propertiesSource'], 'fdc_id': value['fdcId'], 'comment': value['comment'], 'id': value['id'], }; }