[{"data":1,"prerenderedAt":385},["ShallowReactive",2],{"navigation_docs":3,"-referencia-api-backend":132,"-referencia-api-backend-surround":380},[4,24,56,80,113],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fgetting-started","1.getting-started",[9,12,16,20],{"title":10,"path":6,"stem":11},"Primeros pasos","1.getting-started\u002Findex",{"title":13,"path":14,"stem":15},"Buscar servicios","\u002Fgetting-started\u002Fbuscar-servicios","1.getting-started\u002Fbuscar-servicios",{"title":17,"path":18,"stem":19},"Crear cuenta","\u002Fgetting-started\u002Fcrear-cuenta","1.getting-started\u002Fcrear-cuenta",{"title":21,"path":22,"stem":23},"Preguntas frecuentes","\u002Fgetting-started\u002Fpreguntas-frecuentes","1.getting-started\u002Fpreguntas-frecuentes",{"title":25,"path":26,"stem":27,"children":28},"Guias","\u002Fguias","2.guias",[29,32,36,40,44,48,52],{"title":30,"path":26,"stem":31},"Guías de uso","2.guias\u002Findex",{"title":33,"path":34,"stem":35},"Cuenta de empresa","\u002Fguias\u002Fcuenta-empresa","2.guias\u002Fcuenta-empresa",{"title":37,"path":38,"stem":39},"Favoritos","\u002Fguias\u002Ffavoritos","2.guias\u002Ffavoritos",{"title":41,"path":42,"stem":43},"Horarios","\u002Fguias\u002Fhorarios","2.guias\u002Fhorarios",{"title":45,"path":46,"stem":47},"Reviews y calificaciones","\u002Fguias\u002Freviews","2.guias\u002Freviews",{"title":49,"path":50,"stem":51},"Servicios","\u002Fguias\u002Fservicios","2.guias\u002Fservicios",{"title":53,"path":54,"stem":55},"Sucursales","\u002Fguias\u002Fsucursales","2.guias\u002Fsucursales",{"title":57,"path":58,"stem":59,"children":60},"Referencia","\u002Freferencia","3.referencia",[61,64,68,72,76],{"title":62,"path":58,"stem":63},"Referencia técnica","3.referencia\u002Findex",{"title":65,"path":66,"stem":67},"API del backend","\u002Freferencia\u002Fapi-backend","3.referencia\u002Fapi-backend",{"title":69,"path":70,"stem":71},"App mobile","\u002Freferencia\u002Fapp-mobile","3.referencia\u002Fapp-mobile",{"title":73,"path":74,"stem":75},"Arquitectura general","\u002Freferencia\u002Farquitectura","3.referencia\u002Farquitectura",{"title":77,"path":78,"stem":79},"Glosario","\u002Freferencia\u002Fglosario","3.referencia\u002Fglosario",{"title":81,"path":82,"stem":83,"children":84},"Changelog","\u002Fchangelog","4.changelog",[85,87,101],{"title":81,"path":82,"stem":86},"4.changelog\u002Findex",{"title":88,"path":89,"stem":90,"children":91},"Backend — Changelog","\u002Fchangelog\u002Fbackend","4.changelog\u002Fbackend\u002Findex",[92,93,97],{"title":88,"path":89,"stem":90},{"title":94,"path":95,"stem":96},"v0.0.1","\u002Fchangelog\u002Fbackend\u002Fv0.0.1","4.changelog\u002Fbackend\u002Fv0.0.1",{"title":98,"path":99,"stem":100},"v0.0.2","\u002Fchangelog\u002Fbackend\u002Fv0.0.2","4.changelog\u002Fbackend\u002Fv0.0.2",{"title":102,"path":103,"stem":104,"children":105},"Mobile — Changelog","\u002Fchangelog\u002Fmobile","4.changelog\u002Fmobile\u002Findex",[106,107,110],{"title":102,"path":103,"stem":104},{"title":94,"path":108,"stem":109},"\u002Fchangelog\u002Fmobile\u002Fv0.0.1","4.changelog\u002Fmobile\u002Fv0.0.1",{"title":98,"path":111,"stem":112},"\u002Fchangelog\u002Fmobile\u002Fv0.0.2","4.changelog\u002Fmobile\u002Fv0.0.2",{"title":114,"path":115,"stem":116,"children":117},"Empresa","\u002Fempresa","5.empresa",[118,120,124,128],{"title":114,"path":115,"stem":119},"5.empresa\u002Findex",{"title":121,"path":122,"stem":123},"Disclaimer","\u002Fempresa\u002Fdisclaimer","5.empresa\u002Fdisclaimer",{"title":125,"path":126,"stem":127},"Roadmap","\u002Fempresa\u002Froadmap","5.empresa\u002Froadmap",{"title":129,"path":130,"stem":131},"Sobre nosotros","\u002Fempresa\u002Fsobre-nosotros","5.empresa\u002Fsobre-nosotros",{"id":133,"title":65,"body":134,"description":373,"extension":374,"links":375,"meta":376,"navigation":377,"path":66,"seo":378,"stem":67,"__hash__":379},"docs\u002F3.referencia\u002Fapi-backend.md",{"type":135,"value":136,"toc":346},"minimark",[137,141,145,150,161,165,173,178,184,188,194,197,203,207,213,217,220,223,229,233,239,243,249,253,259,263,266,272,276,282,286,289,295,298,304,308,314,318,324,327,333,336],[138,139,65],"h1",{"id":140},"api-del-backend",[142,143,144],"p",{},"La API del backend está documentada con OpenAPI (Swagger). Esta guía ofrece una visión general de los principales endpoints disponibles.",[146,147,149],"h2",{"id":148},"base-url","Base URL",[151,152,157],"pre",{"className":153,"code":155,"language":156},[154],"language-text","https:\u002F\u002Fapi.serviciosapp.com\u002Fapi\n","text",[158,159,155],"code",{"__ignoreMap":160},"",[146,162,164],{"id":163},"autenticación","Autenticación",[142,166,167,168,172],{},"La API utiliza ",[169,170,171],"strong",{},"JWT (JSON Web Tokens)"," para autenticación. Los tokens se envían como cookies HTTP-only.",[174,175,177],"h3",{"id":176},"registro","Registro",[151,179,182],{"className":180,"code":181,"language":156},[154],"POST \u002Fauth\u002Fregister\nContent-Type: application\u002Fjson\n\n{\n  \"email\": \"usuario@correo.com\",\n  \"password\": \"mi-contraseña\",\n  \"firstName\": \"Juan\",\n  \"lastName\": \"Pérez\",\n  \"secondLastName\": \"García\",\n  \"municipalityId\": \"uuid-del-municipio\"\n}\n",[158,183,181],{"__ignoreMap":160},[174,185,187],{"id":186},"inicio-de-sesión","Inicio de sesión",[151,189,192],{"className":190,"code":191,"language":156},[154],"POST \u002Fauth\u002Flogin\nContent-Type: application\u002Fjson\n\n{\n  \"email\": \"usuario@correo.com\",\n  \"password\": \"mi-contraseña\"\n}\n",[158,193,191],{"__ignoreMap":160},[142,195,196],{},"También puedes iniciar sesión con número de teléfono:",[151,198,201],{"className":199,"code":200,"language":156},[154],"{\n  \"cellphone\": \"6671234567\",\n  \"password\": \"mi-contraseña\"\n}\n",[158,202,200],{"__ignoreMap":160},[174,204,206],{"id":205},"refrescar-token","Refrescar token",[151,208,211],{"className":209,"code":210,"language":156},[154],"POST \u002Fauth\u002Frefresh-access-token\n",[158,212,210],{"__ignoreMap":160},[146,214,216],{"id":215},"endpoints-públicos","Endpoints públicos",[142,218,219],{},"Estos endpoints no requieren autenticación:",[174,221,13],{"id":222},"buscar-servicios",[151,224,227],{"className":225,"code":226,"language":156},[154],"GET \u002Fpublic\u002Fservices\u002Fsearch?query=peluquería&categoryId=uuid&minPrice=10&maxPrice=100&minRating=4&page=0&size=20&sort=relevance\n",[158,228,226],{"__ignoreMap":160},[174,230,232],{"id":231},"buscar-categorías","Buscar categorías",[151,234,237],{"className":235,"code":236,"language":156},[154],"GET \u002Fpublic\u002Fcategories\u002Fsearch?query=salud\n",[158,238,236],{"__ignoreMap":160},[174,240,242],{"id":241},"buscar-subcategorías","Buscar subcategorías",[151,244,247],{"className":245,"code":246,"language":156},[154],"GET \u002Fpublic\u002Fcategories\u002F{parentId}\u002Fsubcategories?query=belleza\n",[158,248,246],{"__ignoreMap":160},[174,250,252],{"id":251},"ver-sucursales-de-un-servicio","Ver sucursales de un servicio",[151,254,257],{"className":255,"code":256,"language":156},[154],"GET \u002Fpublic\u002Fservices\u002F{serviceId}\u002Fbranches?userLat=25.0&userLng=-100.0\n",[158,258,256],{"__ignoreMap":160},[146,260,262],{"id":261},"endpoints-autenticados-usuario","Endpoints autenticados (usuario)",[174,264,37],{"id":265},"favoritos",[151,267,270],{"className":268,"code":269,"language":156},[154],"GET  \u002Ffavorite-services?page=0&size=20          # Listar favoritos\nPOST \u002Ffavorite-services                         # Agregar favorito\nDELETE \u002Ffavorite-services\u002F{serviceId}           # Eliminar favorito\nGET  \u002Ffavorite-services\u002F{serviceId}\u002Fstatus      # Ver estado del favorito\n",[158,271,269],{"__ignoreMap":160},[174,273,275],{"id":274},"reviews","Reviews",[151,277,280],{"className":278,"code":279,"language":156},[154],"POST   \u002Fcompany-service-reviews                 # Crear review\nDELETE \u002Fcompany-service-reviews\u002F{reviewId}       # Eliminar review\nGET    \u002Fcompany-service-reviews\u002F{serviceId}\u002Flimit-status  # Ver límite\n",[158,281,279],{"__ignoreMap":160},[146,283,285],{"id":284},"endpoints-autenticados-empresa","Endpoints autenticados (empresa)",[174,287,114],{"id":288},"empresa",[151,290,293],{"className":291,"code":292,"language":156},[154],"POST   \u002Fcompanies                              # Crear empresa\nPUT    \u002Fcompanies                              # Actualizar empresa\nGET    \u002Fcompanies\u002F{id}                         # Obtener empresa\nGET    \u002Fcompanies\u002Factive-counts                # Contar sucursales y servicios activos\n",[158,294,292],{"__ignoreMap":160},[174,296,53],{"id":297},"sucursales",[151,299,302],{"className":300,"code":301,"language":156},[154],"POST   \u002Fcompanies\u002Fbranches                     # Crear sucursal\nPUT    \u002Fcompanies\u002Fbranches                     # Actualizar sucursal\nGET    \u002Fcompanies\u002Fbranches                     # Listar sucursales\nGET    \u002Fcompanies\u002Fbranches\u002F{id}                # Obtener sucursal por ID\nDELETE \u002Fcompanies\u002Fbranches\u002F{id}                # Eliminar sucursal\nPOST   \u002Fcompanies\u002Fbranches\u002F{id}\u002Fdeactivate     # Desactivar sucursal\nPOST   \u002Fcompanies\u002Fbranches\u002F{id}\u002Freactivate     # Reactivar sucursal\nPOST   \u002Fcompanies\u002Fbranches\u002Fwith-images         # Crear sucursal con imágenes\nPUT    \u002Fcompanies\u002Fbranches\u002Fwith-images         # Actualizar sucursal con imágenes\n",[158,303,301],{"__ignoreMap":160},[174,305,307],{"id":306},"servicios-de-empresa","Servicios de empresa",[151,309,312],{"className":310,"code":311,"language":156},[154],"POST   \u002Fcompanies\u002Fservices                     # Crear servicio\nPUT    \u002Fcompanies\u002Fservices                     # Actualizar servicio\nGET    \u002Fcompanies\u002Fservices                     # Listar servicios de la empresa\nGET    \u002Fcompanies\u002Fservices\u002F{id}                # Obtener servicio por ID\nGET    \u002Fcompanies\u002Fservices\u002Fby-branch\u002F{branchId} # Servicios por sucursal\nPOST   \u002Fcompanies\u002Fservices\u002F{id}\u002Factivate       # Activar servicio\nPOST   \u002Fcompanies\u002Fservices\u002F{id}\u002Fdeactivate     # Desactivar servicio\nDELETE \u002Fcompanies\u002Fservices                     # Eliminar servicio\n",[158,313,311],{"__ignoreMap":160},[174,315,317],{"id":316},"canales-de-servicio","Canales de servicio",[151,319,322],{"className":320,"code":321,"language":156},[154],"POST   \u002Fcompanies\u002Fservice-channels             # Crear canal\nPUT    \u002Fcompanies\u002Fservice-channels             # Actualizar canal\nDELETE \u002Fcompanies\u002Fservice-channels\u002F{id}        # Eliminar canal\nGET    \u002Fcompanies\u002Fservice-channels\u002F{id}        # Obtener canal por ID\nPOST   \u002Fcompanies\u002Fservice-channels\u002F{id}\u002Factivate\nPOST   \u002Fcompanies\u002Fservice-channels\u002F{id}\u002Fdeactivate\n",[158,323,321],{"__ignoreMap":160},[174,325,41],{"id":326},"horarios",[151,328,331],{"className":329,"code":330,"language":156},[154],"# Horarios de sucursal\nPOST   \u002Fcompanies\u002Fbranch-schedules             # Crear horario\nPUT    \u002Fcompanies\u002Fbranch-schedules             # Actualizar horario\nDELETE \u002Fcompanies\u002Fbranch-schedules\u002F{id}        # Eliminar horario\nPOST   \u002Fcompanies\u002Fbranch-schedules\u002Fsync        # Sincronizar horarios\n\n# Horarios de canal de servicio\nPOST   \u002Fcompanies\u002Fservice-channel-schedules    # Crear horario de canal\nDELETE \u002Fcompanies\u002Fservice-channel-schedules\u002F{id} # Eliminar horario de canal\n",[158,332,330],{"__ignoreMap":160},[334,335],"hr",{},[142,337,338,342,343],{},[339,340,341],"a",{"href":58},"← Volver a referencia"," · ",[339,344,345],{"href":70},"Siguiente: App mobile →",{"title":160,"searchDepth":347,"depth":347,"links":348},2,[349,350,356,362,366],{"id":148,"depth":347,"text":149},{"id":163,"depth":347,"text":164,"children":351},[352,354,355],{"id":176,"depth":353,"text":177},3,{"id":186,"depth":353,"text":187},{"id":205,"depth":353,"text":206},{"id":215,"depth":347,"text":216,"children":357},[358,359,360,361],{"id":222,"depth":353,"text":13},{"id":231,"depth":353,"text":232},{"id":241,"depth":353,"text":242},{"id":251,"depth":353,"text":252},{"id":261,"depth":347,"text":262,"children":363},[364,365],{"id":265,"depth":353,"text":37},{"id":274,"depth":353,"text":275},{"id":284,"depth":347,"text":285,"children":367},[368,369,370,371,372],{"id":288,"depth":353,"text":114},{"id":297,"depth":353,"text":53},{"id":306,"depth":353,"text":307},{"id":316,"depth":353,"text":317},{"id":326,"depth":353,"text":41},"Endpoints y autenticación de la API de ServiciosApp","md",null,{},true,{"title":65,"description":373},"i_hjPjJ-UVppS2nrzeuBVVbJ1m8NvR9SKvTHiwVp8RM",[381,383],{"title":62,"path":58,"stem":63,"description":382,"children":-1},"Documentación técnica de ServiciosApp",{"title":69,"path":70,"stem":71,"description":384,"children":-1},"Arquitectura y estructura de la aplicación móvil de ServiciosApp",1783141866474]