{"openapi":"3.1.0","info":{"title":"API de Receitas Galegas","description":"\nAPI REST coas receitas tradicionais da **cociña galega**.\n\n### Idioma\nTodo o contido está en galego e castelán. Escóllese cun parámetro:\n\n* `?lang=gl` — galego (**por defecto**)\n* `?lang=es` — castelán\n\nTamén se respecta a cabeceira `Accept-Language` cando non se indica `lang`.\nOs *nomes dos campos* van sempre en galego: son o contrato estable da API.\n\n### Busca por ingredientes\n`/receitas/buscar-por-ingredientes?ingredientes=polbo,pataca` devolve as receitas\npuntuadas segundo canto da súa lista xa tes na despensa, e dille o que che falta.\nOs nomes de ingredientes recoñécense nos dous idiomas e tolerando acentos e plurais.\n\n### Racións e lista da compra\n`/receitas/{id}?racions=8` recalcula as cantidades. `POST /lista-da-compra` funde\nvarias receitas nunha soa lista, agrupada por seccións de despensa.\n\n### Fonte\nOs datos proveñen do caderno de NotebookLM **«Cocina gallega»**. Cada receita\ndeclara a fonte concreta da que saíu.\n","contact":{"name":"receitas-galegas-api"},"license":{"name":"MIT"},"version":"0.1.0"},"paths":{"/receitas":{"get":{"tags":["receitas"],"summary":"Listar e filtrar receitas","description":"Devolve as receitas que cumpren os filtros, paxinadas.","operationId":"listar_receitas_receitas_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Busca libre en nome, descrición e ingredientes.","title":"Q"},"description":"Busca libre en nome, descrición e ingredientes."},{"name":"categoria","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identificador de categoría.","title":"Categoria"},"description":"Identificador de categoría."},{"name":"dificultade","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Dificultade"},{"type":"null"}],"title":"Dificultade"}},{"name":"temporada","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Temporada"},{"type":"null"}],"title":"Temporada"}},{"name":"etiquetas","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Etiquetas separadas por comas.","title":"Etiquetas"},"description":"Etiquetas separadas por comas."},{"name":"tempo_maximo_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Tempo total máximo.","title":"Tempo Maximo Min"},"description":"Tempo total máximo."},{"name":"racions_minimas","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Racions Minimas"}},{"name":"sen_alerxenos","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Excluír receitas con estes alérxenos (separados por comas).","title":"Sen Alerxenos"},"description":"Excluír receitas con estes alérxenos (separados por comas)."},{"name":"excluir_ingredientes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Excluír receitas que leven estes ingredientes.","title":"Excluir Ingredientes"},"description":"Excluír receitas que leven estes ingredientes."},{"name":"orde","in":"query","required":false,"schema":{"$ref":"#/components/schemas/Orde","default":"nome"}},{"name":"limite","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Limite"}},{"name":"desprazamento","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Desprazamento"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Paxina_ReceitaResumo_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/receitas/buscar-por-ingredientes":{"get":{"tags":["receitas"],"summary":"Que podo cociñar co que teño?","description":"Puntúa cada receita segundo canto da súa lista de ingredientes xa tes.","operationId":"buscar_ingredientes_receitas_buscar_por_ingredientes_get","parameters":[{"name":"ingredientes","in":"query","required":true,"schema":{"type":"string","description":"Ingredientes dispoñibles, separados por comas. Acepta galego e castelán indistintamente: `polbo,pataca` ou `pulpo,patata`.","examples":["polbo,pataca,pemento"],"title":"Ingredientes"},"description":"Ingredientes dispoñibles, separados por comas. Acepta galego e castelán indistintamente: `polbo,pataca` ou `pulpo,patata`."},{"name":"modo","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ModoIngredientes","description":"`calquera`: receitas con algún dos ingredientes. `todos`: receitas que usan todos os que indicas. `despensa`: só o que podes cociñar sen mercar nada.","default":"calquera"},"description":"`calquera`: receitas con algún dos ingredientes. `todos`: receitas que usan todos os que indicas. `despensa`: só o que podes cociñar sen mercar nada."},{"name":"puntuacion_minima","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"default":0.0,"title":"Puntuacion Minima"}},{"name":"incluir_opcionais","in":"query","required":false,"schema":{"type":"boolean","description":"Contar tamén os ingredientes opcionais como necesarios.","default":false,"title":"Incluir Opcionais"},"description":"Contar tamén os ingredientes opcionais como necesarios."},{"name":"categoria","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categoria"}},{"name":"dificultade","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Dificultade"},{"type":"null"}],"title":"Dificultade"}},{"name":"temporada","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Temporada"},{"type":"null"}],"title":"Temporada"}},{"name":"etiquetas","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Etiquetas"}},{"name":"tempo_maximo_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Tempo Maximo Min"}},{"name":"racions_minimas","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Racions Minimas"}},{"name":"sen_alerxenos","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sen Alerxenos"}},{"name":"excluir_ingredientes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Excluir Ingredientes"}},{"name":"limite","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Limite"}},{"name":"desprazamento","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Desprazamento"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Paxina_Coincidencia_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/receitas/aleatoria":{"get":{"tags":["receitas"],"summary":"Unha receita ao chou","description":"Escolle unha receita ao azar entre as que cumpren os filtros.","operationId":"receita_aleatoria_receitas_aleatoria_get","parameters":[{"name":"categoria","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categoria"}},{"name":"dificultade","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Dificultade"},{"type":"null"}],"title":"Dificultade"}},{"name":"tempo_maximo_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Tempo Maximo Min"}},{"name":"racions","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Recalcula as cantidades dos ingredientes para este número de racións. Os ingredientes «ao gusto» non se tocan.","title":"Racions"},"description":"Recalcula as cantidades dos ingredientes para este número de racións. Os ingredientes «ao gusto» non se tocan."},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Receita"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/receitas/{id_receita}":{"get":{"tags":["receitas"],"summary":"Detalle dunha receita","description":"Devolve a receita completa: ingredientes, pasos e recomendacións.","operationId":"obter_receita_receitas__id_receita__get","parameters":[{"name":"id_receita","in":"path","required":true,"schema":{"type":"string","description":"Identificador da receita, p.ex. `polbo-a-feira`.","title":"Id Receita"},"description":"Identificador da receita, p.ex. `polbo-a-feira`."},{"name":"racions","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Recalcula as cantidades dos ingredientes para este número de racións. Os ingredientes «ao gusto» non se tocan.","title":"Racions"},"description":"Recalcula as cantidades dos ingredientes para este número de racións. Os ingredientes «ao gusto» non se tocan."},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Receita"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ingredientes":{"get":{"tags":["catálogo"],"summary":"Listar ingredientes do corpus","description":"Todos os ingredientes que aparecen nalgunha receita, co seu reconto.","operationId":"listar_ingredientes_ingredientes_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtro por texto no nome do ingrediente.","title":"Q"},"description":"Filtro por texto no nome do ingrediente."},{"name":"minimo_receitas","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Minimo Receitas"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResumoIngrediente"},"title":"Response Listar Ingredientes Ingredientes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/categorias":{"get":{"tags":["catálogo"],"summary":"Listar categorías","description":"Categorías presentes no corpus co número de receitas de cada unha.","operationId":"listar_categorias_categorias_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResumoCategoria"},"title":"Response Listar Categorias Categorias Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/etiquetas":{"get":{"tags":["catálogo"],"summary":"Listar etiquetas","description":"Etiquetas libres (`tradicional`, `entroido`, `sen-glute`...) co seu reconto.","operationId":"listar_etiquetas_etiquetas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"integer"},"type":"object","title":"Response Listar Etiquetas Etiquetas Get"}}}}}}},"/alerxenos":{"get":{"tags":["catálogo"],"summary":"Alérxenos soportados","description":"Vocabulario pechado de alérxenos aceptado por `sen_alerxenos`.","operationId":"listar_alerxenos_alerxenos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Listar Alerxenos Alerxenos Get"}}}}}}},"/temporadas":{"get":{"tags":["catálogo"],"summary":"Temporadas soportadas","operationId":"listar_temporadas_temporadas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Listar Temporadas Temporadas Get"}}}}}}},"/lista-da-compra":{"post":{"tags":["compra"],"summary":"Que teño que mercar para estas receitas","description":"Funde os ingredientes de varias receitas nunha lista ordenada por seccións.\n\nCada receita pode pedir un número distinto de racións. Súmase por ingrediente\ne unidade: 2 kg de patacas e 3 patacas soltas non se poden sumar, así que van\nen entradas separadas.","operationId":"lista_da_compra_lista_da_compra_post","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeticionCompra"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListaCompra"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/festas":{"get":{"tags":["festas"],"summary":"Calendario de festas gastronómicas","description":"Festas ordenadas por mes; filtrables por mes, provincia e prato.","operationId":"listar_festas_festas_get","parameters":[{"name":"mes","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":12,"minimum":1},{"type":"null"}],"description":"Mes de celebración.","title":"Mes"},"description":"Mes de celebración."},{"name":"provincia","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Provincia"},{"type":"null"}],"title":"Provincia"}},{"name":"prato","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filtra polas festas dun prato ou produto: `polbo`, `lamprea`…","title":"Prato"},"description":"Filtra polas festas dun prato ou produto: `polbo`, `lamprea`…"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Festa"},"title":"Response Listar Festas Festas Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/festas/{id_festa}":{"get":{"tags":["festas"],"summary":"Detalle dunha festa","operationId":"obter_festa_festas__id_festa__get","parameters":[{"name":"id_festa","in":"path","required":true,"schema":{"type":"string","description":"Identificador, p.ex. `festa-do-polbo-carballino`.","title":"Id Festa"},"description":"Identificador, p.ex. `festa-do-polbo-carballino`."},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Festa"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/saude":{"get":{"tags":["sistema"],"summary":"Estado do servizo","description":"Comprobación de vida e tamaño do corpus cargado.","operationId":"saude_saude_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Saude Saude Get"}}}}}}},"/info":{"get":{"tags":["sistema"],"summary":"Resumo do corpus","description":"Estatísticas xerais: cantas receitas, categorías e ingredientes hai.","operationId":"info_info_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Idioma"},{"type":"null"}],"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`.","title":"Lang"},"description":"Idioma do contido: `gl` (galego, por defecto) ou `es` (castelán). Se non se indica, úsase a cabeceira `Accept-Language`."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Info Info Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Alerxeno":{"type":"string","enum":["glute","crustaceos","ovos","peixe","cacahuetes","soxa","lacteos","froitos-de-casca","apio","mostaza","sesamo","sulfitos","altramuces","moluscos"],"title":"Alerxeno","description":"Alerxenos de declaracion obrigatoria (Regulamento UE 1169/2011)."},"ArtigoCompra":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"cantidade":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cantidade"},"unidade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unidade"},"opcional":{"type":"boolean","title":"Opcional","default":false},"receitas":{"items":{"type":"string"},"type":"array","title":"Receitas","description":"Ids das receitas que precisan este artigo."}},"type":"object","required":["id","nome","receitas"],"title":"ArtigoCompra","description":"Unha liña da lista da compra, xa agregada entre receitas."},"Coincidencia":{"properties":{"receita":{"$ref":"#/components/schemas/ReceitaResumo"},"puntuacion":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Puntuacion","description":"Fraccion dos ingredientes obrigatorios da receita que si tes."},"ingredientes_atopados":{"items":{"type":"string"},"type":"array","title":"Ingredientes Atopados"},"ingredientes_que_faltan":{"items":{"type":"string"},"type":"array","title":"Ingredientes Que Faltan"},"ingredientes_non_usados":{"items":{"type":"string"},"type":"array","title":"Ingredientes Non Usados","description":"Ingredientes que aportaches e esta receita non precisa."}},"type":"object","required":["receita","puntuacion","ingredientes_atopados","ingredientes_que_faltan"],"title":"Coincidencia","description":"Resultado dunha busca por ingredientes."},"Dificultade":{"type":"string","enum":["facil","media","dificil"],"title":"Dificultade"},"Festa":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"concello":{"type":"string","title":"Concello"},"provincia":{"$ref":"#/components/schemas/Provincia"},"mes":{"type":"integer","title":"Mes"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data"},"descricion":{"type":"string","title":"Descricion"},"produto":{"type":"string","title":"Produto"},"receitas_relacionadas":{"items":{"type":"string"},"type":"array","title":"Receitas Relacionadas"},"declaracion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declaracion"},"fonte":{"$ref":"#/components/schemas/Fonte"},"idioma":{"$ref":"#/components/schemas/Idioma"}},"type":"object","required":["id","nome","concello","provincia","mes","descricion","produto","fonte","idioma"],"title":"Festa"},"Fonte":{"properties":{"caderno":{"type":"string","title":"Caderno","default":"Cocina gallega"},"titulo":{"type":"string","title":"Titulo"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"additionalProperties":false,"type":"object","required":["titulo"],"title":"Fonte","description":"De onde sae unha receita.\n\nTodo o corpus ven do mesmo caderno, pero cada receita ten unha fonte\nconcreta dentro del. Sen isto non se pode auditar de onde saiu cada prato."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Idioma":{"type":"string","enum":["gl","es"],"title":"Idioma","description":"Idiomas soportados pola API."},"Ingrediente":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"cantidade":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cantidade"},"unidade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unidade"},"notas":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notas"},"opcional":{"type":"boolean","title":"Opcional","default":false},"grupo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grupo"}},"type":"object","required":["id","nome"],"title":"Ingrediente"},"ListaCompra":{"properties":{"idioma":{"$ref":"#/components/schemas/Idioma"},"receitas":{"items":{"type":"string"},"type":"array","title":"Receitas"},"seccions":{"items":{"$ref":"#/components/schemas/SeccionCompra"},"type":"array","title":"Seccions"},"sen_cantidade":{"items":{"$ref":"#/components/schemas/ArtigoCompra"},"type":"array","title":"Sen Cantidade","description":"Artigos que a receita pide 'ao gusto' e non se poden sumar."},"total_artigos":{"type":"integer","title":"Total Artigos"}},"type":"object","required":["idioma","receitas","seccions","total_artigos"],"title":"ListaCompra"},"ModoIngredientes":{"type":"string","enum":["todos","calquera","despensa"],"title":"ModoIngredientes","description":"Como combinar a lista de ingredientes pedida."},"Orde":{"type":"string","enum":["relevancia","nome","tempo","dificultade","ingredientes"],"title":"Orde"},"Paso":{"properties":{"orde":{"type":"integer","title":"Orde"},"texto":{"type":"string","title":"Texto"},"tempo_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tempo Min"},"consello":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Consello"}},"type":"object","required":["orde","texto"],"title":"Paso"},"Paxina_Coincidencia_":{"properties":{"total":{"type":"integer","title":"Total"},"limite":{"type":"integer","title":"Limite"},"desprazamento":{"type":"integer","title":"Desprazamento"},"idioma":{"$ref":"#/components/schemas/Idioma"},"resultados":{"items":{"$ref":"#/components/schemas/Coincidencia"},"type":"array","title":"Resultados"}},"type":"object","required":["total","limite","desprazamento","idioma","resultados"],"title":"Paxina[Coincidencia]"},"Paxina_ReceitaResumo_":{"properties":{"total":{"type":"integer","title":"Total"},"limite":{"type":"integer","title":"Limite"},"desprazamento":{"type":"integer","title":"Desprazamento"},"idioma":{"$ref":"#/components/schemas/Idioma"},"resultados":{"items":{"$ref":"#/components/schemas/ReceitaResumo"},"type":"array","title":"Resultados"}},"type":"object","required":["total","limite","desprazamento","idioma","resultados"],"title":"Paxina[ReceitaResumo]"},"PeticionCompra":{"properties":{"receitas":{"items":{"$ref":"#/components/schemas/ReceitaPedida"},"type":"array","maxItems":50,"minItems":1,"title":"Receitas"}},"type":"object","required":["receitas"],"title":"PeticionCompra"},"Provincia":{"type":"string","enum":["a-coruna","lugo","ourense","pontevedra"],"title":"Provincia"},"Receita":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"nomes_alternativos":{"items":{"type":"string"},"type":"array","title":"Nomes Alternativos"},"categoria":{"type":"string","title":"Categoria"},"descricion":{"type":"string","title":"Descricion"},"rexion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rexion"},"temporada":{"items":{"$ref":"#/components/schemas/Temporada"},"type":"array","title":"Temporada"},"dificultade":{"$ref":"#/components/schemas/Dificultade"},"tempo_preparacion_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tempo Preparacion Min"},"tempo_coccion_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tempo Coccion Min"},"tempo_total_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tempo Total Min"},"racions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Racions"},"racions_orixinais":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Racions Orixinais","description":"Racions da receita antes de escalala. `null` se non se escalou."},"ingredientes":{"items":{"$ref":"#/components/schemas/Ingrediente"},"type":"array","title":"Ingredientes"},"pasos":{"items":{"$ref":"#/components/schemas/Paso"},"type":"array","title":"Pasos"},"recomendacions":{"items":{"type":"string"},"type":"array","title":"Recomendacions"},"maridaxe":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maridaxe"},"utensilios":{"items":{"type":"string"},"type":"array","title":"Utensilios"},"alerxenos":{"items":{"$ref":"#/components/schemas/Alerxeno"},"type":"array","title":"Alerxenos"},"etiquetas":{"items":{"type":"string"},"type":"array","title":"Etiquetas"},"fonte":{"$ref":"#/components/schemas/Fonte"},"idioma":{"$ref":"#/components/schemas/Idioma"}},"type":"object","required":["id","nome","categoria","descricion","dificultade","ingredientes","pasos","fonte","idioma"],"title":"Receita"},"ReceitaPedida":{"properties":{"id":{"type":"string","title":"Id"},"racions":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Racions","description":"Racions a cociñar; por defecto, as da receita."}},"type":"object","required":["id"],"title":"ReceitaPedida","description":"Unha receita dentro dunha peticion de lista da compra."},"ReceitaResumo":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"categoria":{"type":"string","title":"Categoria"},"descricion":{"type":"string","title":"Descricion"},"dificultade":{"$ref":"#/components/schemas/Dificultade"},"tempo_total_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tempo Total Min"},"racions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Racions"},"temporada":{"items":{"$ref":"#/components/schemas/Temporada"},"type":"array","title":"Temporada"},"etiquetas":{"items":{"type":"string"},"type":"array","title":"Etiquetas"},"numero_ingredientes":{"type":"integer","title":"Numero Ingredientes"},"idioma":{"$ref":"#/components/schemas/Idioma"}},"type":"object","required":["id","nome","categoria","descricion","dificultade","numero_ingredientes","idioma"],"title":"ReceitaResumo","description":"Version lixeira para listaxes: sen pasos nin ingredientes detallados."},"ResumoCategoria":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"numero_receitas":{"type":"integer","title":"Numero Receitas"}},"type":"object","required":["id","nome","numero_receitas"],"title":"ResumoCategoria"},"ResumoIngrediente":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"numero_receitas":{"type":"integer","title":"Numero Receitas"}},"type":"object","required":["id","nome","numero_receitas"],"title":"ResumoIngrediente"},"SeccionCompra":{"properties":{"id":{"type":"string","title":"Id"},"nome":{"type":"string","title":"Nome"},"artigos":{"items":{"$ref":"#/components/schemas/ArtigoCompra"},"type":"array","title":"Artigos"}},"type":"object","required":["id","nome","artigos"],"title":"SeccionCompra"},"Temporada":{"type":"string","enum":["primavera","veran","outono","inverno","todo-o-ano"],"title":"Temporada"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"receitas","description":"Consulta e busca de receitas."},{"name":"catálogo","description":"Vocabularios: ingredientes, categorías, etiquetas."},{"name":"compra","description":"Lista da compra agregada a partir de varias receitas."},{"name":"festas","description":"Festas gastronómicas e os pratos que se comen nelas."},{"name":"sistema","description":"Estado do servizo."}]}