{"openapi":"3.0.0","paths":{"/products":{"get":{"operationId":"ProductsController_getProducts","parameters":[],"responses":{"200":{"description":""}}}},"/categories":{"get":{"operationId":"CategoriesController_getCategories","parameters":[],"responses":{"200":{"description":""}}}},"/users":{"get":{"operationId":"getUsers","summary":"","description":"List all users","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserDto"}}}}}},"tags":["users"]},"post":{"operationId":"createUser","summary":"","description":"Create a new user","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserDto"}}}},"responses":{"201":{"description":""}},"tags":["users"]}},"/users/{id}":{"get":{"operationId":"getUser","summary":"","description":"Get a user","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDto"}}}}},"tags":["users"]},"put":{"operationId":"updateUser","summary":"","description":"Update a user","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":""}},"tags":["users"]},"delete":{"operationId":"deleteUser","summary":"","description":"Delete a user","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["users"]}},"/users/me":{"get":{"operationId":"getLoggedInUser","summary":"","description":"Returns currently logged in user","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDto"}}}}},"tags":["users"],"security":[{"access-token":[]}]}},"/auth/login":{"post":{"operationId":"login","summary":"","description":"Login with email and password","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthDto"}}}}},"tags":["auth"]}},"/auth/register":{"post":{"operationId":"register","summary":"","description":"Register a new user","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthDto"}}}}},"tags":["auth"]}},"/auth/refresh":{"post":{"operationId":"refresh","summary":"","description":"Refresh access token","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthDto"}}}}},"tags":["auth"]}}},"info":{"title":"CleanSlice API","description":"","version":"1.0","contact":{}},"tags":[{"name":"cleanslice","description":""}],"servers":[{"url":"/"}],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"UserDto":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"},"email":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","name","email","createdAt","updatedAt"]},"CreateUserDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"}},"required":["name","email","password"]},"UpdateUserDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"}}},"LoginUserDto":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"deviceId":{"type":"string"}},"required":["email","password","deviceId"]},"AuthDto":{"type":"object","properties":{"id":{"type":"number"},"accessToken":{"type":"string"},"refreshToken":{"type":"string"}},"required":["id","accessToken","refreshToken"]},"RegisterUserDto":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"deviceId":{"type":"string"}},"required":["name","email","password","deviceId"]}}}}