{"openapi":"3.0.0","paths":{"/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequestDto"}}}},"responses":{"201":{"description":"User Logged In","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResponseDto"}}}},"401":{"description":"Invalid credentials"}},"tags":["Authentication"]}},"/order/create":{"post":{"operationId":"OrderController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderDto"}}}},"responses":{"201":{"description":"Create Order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]}},"/order/summary":{"post":{"operationId":"OrderController_summary","parameters":[],"responses":{"201":{"description":"Order Summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSummary"}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]}},"/order/{id}":{"put":{"operationId":"OrderController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderDto"}}}},"responses":{"201":{"description":"Update Order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]},"delete":{"operationId":"OrderController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"Delete Order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]}},"/order/payment":{"post":{"operationId":"OrderController_payDues","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayOrderDuesDto"}}}},"responses":{"201":{"description":"Order Payment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]}},"/order/applyDiscount":{"post":{"operationId":"OrderController_applyDiscount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyDiscountDto"}}}},"responses":{"201":{"description":"Apply Discount","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]}},"/order/filter":{"post":{"operationId":"OrderController_orderList","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFilterDto"}}}},"responses":{"201":{"description":"Order Filter","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderPopulated"}}}}},"401":{"description":"Unauthorized"}},"tags":["Orders"],"security":[{"bearer":[]}]}},"/product/list":{"post":{"operationId":"ProductController_list","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductFilterDto"}}}},"responses":{"201":{"description":"Product Filter","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Product"}}}}},"401":{"description":"Unauthorized"}},"tags":["Products"],"security":[{"bearer":[]}]}},"/product/create":{"post":{"operationId":"ProductController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductDto"}}}},"responses":{"201":{"description":"Create Product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"401":{"description":"Unauthorized"}},"tags":["Products"],"security":[{"bearer":[]}]}},"/product/generate-thumbnails":{"get":{"operationId":"ProductController_generateThumbnails","parameters":[],"responses":{"401":{"description":"Unauthorized"}},"tags":["Products"],"security":[{"bearer":[]}]}},"/product/{id}":{"delete":{"operationId":"ProductController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"Delete Product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"401":{"description":"Unauthorized"}},"tags":["Products"],"security":[{"bearer":[]}]},"get":{"operationId":"ProductController_getProduct","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"Get Product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"401":{"description":"Unauthorized"}},"tags":["Products"],"security":[{"bearer":[]}]},"patch":{"operationId":"ProductController_updateProduct","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductDto"}}}},"responses":{"201":{"description":"Update Product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}},"401":{"description":"Unauthorized"}},"tags":["Products"],"security":[{"bearer":[]}]}},"/user/list":{"post":{"operationId":"UserController_filter","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFilterDto"}}}},"responses":{"201":{"description":"User Filter","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserPopulated"}}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/filter-count":{"post":{"operationId":"UserController_filterCount","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserFilterDto"}}}},"responses":{"201":{"description":"User Count","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserFilterCount"}}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/count":{"get":{"operationId":"UserController_count","parameters":[],"responses":{"201":{"description":"User Count","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserCount"}}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/create":{"post":{"operationId":"UserController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserDto"}}}},"responses":{"201":{"description":"Create User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/create-bulk":{"post":{"operationId":"UserController_createBulk","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBulkUserDto"}}}},"responses":{"201":{"description":"Create Bulk User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/{id}":{"delete":{"operationId":"UserController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Delete User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]},"get":{"operationId":"UserController_getUser","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"Get User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]},"patch":{"operationId":"UserController_updateUser","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"201":{"description":"Update User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPopulated"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/me":{"get":{"operationId":"UserController_me","parameters":[],"responses":{"200":{"description":"Get My User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/statistics":{"post":{"operationId":"UserController_statistics","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatisticsFilterDto"}}}},"responses":{"200":{"description":"Users Statistics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatisticsResponseDto"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/reset-password/{id}":{"post":{"operationId":"UserController_resetPassword","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordDto"}}}},"responses":{"201":{"description":"Reset User Password","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/user/reset-password":{"post":{"operationId":"UserController_changePassword","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordDto"}}}},"responses":{"201":{"description":"Change User Password","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"401":{"description":"Unauthorized"}},"tags":["Users"],"security":[{"bearer":[]}]}},"/media/upload":{"post":{"operationId":"MediaController_upload","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"File Upload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUploadResponseDto"}}}}},"tags":["Media"],"security":[{"bearer":[]}]}},"/media/thumbnail/{filename}":{"get":{"operationId":"MediaController_getThumbnailFile","parameters":[{"name":"filename","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Media"]}},"/media/{filename}":{"get":{"operationId":"MediaController_getFile","parameters":[{"name":"filename","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Media"]}}},"info":{"title":"Aqua Stream API","description":"Aqua Stream","version":"1.0.3","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"LoginRequestDto":{"type":"object","properties":{"email":{"type":"string","example":"name@domain.com"},"password":{"type":"string"},"realm":{"type":"string","enum":["admin","expert","buyer"]}},"required":["email","password","realm"]},"GeoPoint":{"type":"object","properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"example":[0,0],"type":"array","items":{"type":"number"}}},"required":["type","coordinates"]},"Address":{"type":"object","properties":{"locality":{"type":"string"},"location":{"$ref":"#/components/schemas/GeoPoint"}},"required":["locality"]},"UserProduct":{"type":"object","properties":{"id":{"type":"string"},"product":{"type":"string"},"installationDate":{"format":"date-time","type":"string"},"servicedAt":{"format":"date-time","type":"string"},"nextServiceDate":{"format":"date-time","type":"string"},"warrantyExpired":{"format":"date-time","type":"string"},"postCarbonChangeDate":{"format":"date-time","type":"string"},"sn":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","product","installationDate","servicedAt","nextServiceDate","warrantyExpired","postCarbonChangeDate","sn","createdAt","updatedAt"]},"AuthResponseDto":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"phoneNumber":{"type":"string"},"address":{"$ref":"#/components/schemas/Address"},"roles":{"type":"array","items":{"type":"string","enum":["admin","expert","buyer"]}},"products":{"type":"array","items":{"$ref":"#/components/schemas/UserProduct"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"token":{"type":"string"}},"required":["id","firstName","lastName","email","phoneNumber","address","roles","products","createdAt","updatedAt","token"]},"CartDto":{"type":"object","properties":{"product":{"type":"string"},"quantity":{"type":"number"}},"required":["product","quantity"]},"CreateOrderDto":{"type":"object","properties":{"cart":{"type":"array","items":{"$ref":"#/components/schemas/CartDto"}},"buyer":{"type":"string"},"product":{"type":"string"}},"required":["cart","buyer","product"]},"Cart":{"type":"object","properties":{"product":{"type":"string"},"type":{"type":"string","enum":["installable","replaceable"]},"category":{"type":"string","enum":["installable","filters","post-carbon","minerals","accessories"]},"quantity":{"type":"number"},"price":{"type":"number"},"discountedPrice":{"type":"number"},"total":{"type":"number"},"discountedTotal":{"type":"number"}},"required":["product","type","category","quantity","price","discountedPrice","total","discountedTotal"]},"Transaction":{"type":"object","properties":{"id":{"type":"string"},"amount":{"type":"number"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","amount","createdAt","updatedAt"]},"User":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"phoneNumber":{"type":"string"},"address":{"$ref":"#/components/schemas/Address"},"roles":{"type":"array","items":{"type":"string","enum":["admin","expert","buyer"]}},"products":{"type":"array","items":{"$ref":"#/components/schemas/UserProduct"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","firstName","lastName","email","phoneNumber","address","roles","products","createdAt","updatedAt"]},"OrderPopulated":{"type":"object","properties":{"id":{"type":"string"},"cart":{"type":"array","items":{"$ref":"#/components/schemas/Cart"}},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/Transaction"}},"images":{"type":"array","items":{"type":"string"}},"buyer":{"$ref":"#/components/schemas/User"},"expert":{"$ref":"#/components/schemas/User"},"total":{"type":"number"},"discountedTotal":{"type":"number"},"payable":{"type":"number"},"specialDiscount":{"type":"number"},"paid":{"type":"number"},"pending":{"type":"number"},"status":{"type":"string","enum":["pending","completed"]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","cart","transactions","images","buyer","expert","total","discountedTotal","payable","specialDiscount","paid","pending","status","createdAt","updatedAt"]},"OrderSummary":{"type":"object","properties":{"paid":{"type":"number"},"pending":{"type":"number"}},"required":["paid","pending"]},"UpdateOrderDto":{"type":"object","properties":{"cart":{"type":"array","items":{"$ref":"#/components/schemas/CartDto"}},"images":{"type":"array","items":{"type":"string"}}},"required":["cart","images"]},"PayOrderDuesDto":{"type":"object","properties":{"id":{"type":"string"},"amount":{"type":"number"},"clear":{"type":"boolean"}},"required":["id","amount","clear"]},"ApplyDiscountDto":{"type":"object","properties":{"id":{"type":"string"},"specialDiscount":{"type":"number"}},"required":["id","specialDiscount"]},"NumberFilterDto":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}},"OrderFilterDto":{"type":"object","properties":{"status":{"type":"string","enum":["pending","completed"]},"buyer":{"type":"string"},"expert":{"type":"string"},"total":{"$ref":"#/components/schemas/NumberFilterDto"},"pending":{"$ref":"#/components/schemas/NumberFilterDto"}}},"ProductFilterDto":{"type":"object","properties":{"type":{"type":"array","items":{"type":"string","enum":["installable","replaceable"]}}},"required":["type"]},"Product":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"price":{"type":"number"},"warrantyPeriod":{"type":"number"},"discountedPrice":{"type":"number"},"type":{"type":"string","enum":["installable","replaceable"]},"category":{"type":"string","enum":["installable","filters","post-carbon","minerals","accessories"]},"deleted":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","title","images","description","price","warrantyPeriod","discountedPrice","type","category","deleted","createdAt","updatedAt"]},"CreateProductDto":{"type":"object","properties":{"title":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"price":{"type":"number"},"discountedPrice":{"type":"number"},"category":{"type":"string","enum":["installable","filters","post-carbon","minerals","accessories"]},"type":{"type":"string","enum":["installable","replaceable"]},"warrantyPeriod":{"type":"number"}},"required":["title","images","description","price","discountedPrice","category","type","warrantyPeriod"]},"UpdateProductDto":{"type":"object","properties":{"title":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"price":{"type":"number"},"discountedPrice":{"type":"number"},"warrantyPeriod":{"type":"number"},"type":{"type":"string","enum":["installable","replaceable"]}},"required":["images","warrantyPeriod"]},"DateFilterDto":{"type":"object","properties":{"from":{"format":"date-time","type":"string"},"to":{"format":"date-time","type":"string"}}},"Pagination":{"type":"object","properties":{"skip":{"type":"number"},"limit":{"type":"number"}},"required":["skip","limit"]},"UserFilterDto":{"type":"object","properties":{"search":{"type":"string"},"workStatus":{"type":"string","enum":["today","upcoming","pending","all"]},"today":{"$ref":"#/components/schemas/DateFilterDto"},"role":{"type":"array","items":{"type":"string","enum":["admin","expert","buyer"]}},"nextServiceDate":{"$ref":"#/components/schemas/DateFilterDto"},"installationDate":{"$ref":"#/components/schemas/DateFilterDto"},"postCarbonChangeDate":{"$ref":"#/components/schemas/DateFilterDto"},"servicedAt":{"$ref":"#/components/schemas/DateFilterDto"},"location":{"$ref":"#/components/schemas/GeoPoint"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["today","role"]},"UserProductPopulated":{"type":"object","properties":{"id":{"type":"string"},"product":{"$ref":"#/components/schemas/Product"},"installationDate":{"format":"date-time","type":"string"},"servicedAt":{"format":"date-time","type":"string"},"nextServiceDate":{"format":"date-time","type":"string"},"postCarbonChangeDate":{"format":"date-time","type":"string"},"warrantyExpired":{"format":"date-time","type":"string"},"sn":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","product","installationDate","servicedAt","nextServiceDate","postCarbonChangeDate","warrantyExpired","sn","createdAt","updatedAt"]},"UserPopulated":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"phoneNumber":{"type":"string"},"address":{"$ref":"#/components/schemas/Address"},"roles":{"type":"array","items":{"type":"string","enum":["admin","expert","buyer"]}},"products":{"type":"array","items":{"$ref":"#/components/schemas/UserProductPopulated"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","firstName","lastName","email","phoneNumber","address","roles","products","createdAt","updatedAt"]},"UserFilterCount":{"type":"object","properties":{"total":{"type":"number"},"pending":{"type":"number"},"today":{"type":"number"},"upcoming":{"type":"number"}},"required":["total","pending","today","upcoming"]},"UserCount":{"type":"object","properties":{"admin":{"type":"number"},"expert":{"type":"number"},"buyer":{"type":"number"}},"required":["admin","expert","buyer"]},"CreateUserDto":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","example":"name@domain.com"},"phoneNumber":{"type":"string","examples":["+92xxxxxxxxxx","03xxxxxxxxx"]},"password":{"type":"string"},"address":{"$ref":"#/components/schemas/Address"},"role":{"type":"string","enum":["admin","expert","buyer"]},"payment":{"type":"number"},"product":{"type":"string"},"sn":{"type":"string"},"installationDate":{"format":"date-time","type":"string"},"nextServiceDate":{"format":"date-time","type":"string"},"specialDiscount":{"type":"number"}},"required":["firstName","lastName","phoneNumber","password","role","payment","product","sn","installationDate","nextServiceDate","specialDiscount"]},"UserCsvData":{"type":"object","properties":{"name":{"type":"string"},"sn":{"type":"string"},"phoneNumber":{"type":"string"},"product":{"type":"string"},"installationDate":{"type":"string"},"warrantyExpired":{"type":"string"}},"required":["name","sn","phoneNumber","product","installationDate","warrantyExpired"]},"CreateBulkUserDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserCsvData"}}},"required":["data"]},"StatisticsFilterDto":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/DateFilterDto"}},"required":["timestamp"]},"StatisticsResponseDto":{"type":"object","properties":{"buyers":{"type":"number"},"pendingExpirePostCarbon":{"type":"number"},"pendingTasks":{"type":"number"},"upcomingTasks":{"type":"number"},"warrantyExpired":{"type":"number"},"totalTasks":{"type":"number"}},"required":["buyers","pendingExpirePostCarbon","pendingTasks","upcomingTasks","warrantyExpired","totalTasks"]},"UpdateUserProductDto":{"type":"object","properties":{"id":{"type":"string"},"sn":{"type":"string"},"installationDate":{"type":"string"},"postCarbonChangeDate":{"format":"date-time","type":"string"},"nextServiceDate":{"format":"date-time","type":"string"}},"required":["id","sn","installationDate","postCarbonChangeDate","nextServiceDate"]},"UpdateUserDto":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","example":"name@domain.com"},"phoneNumber":{"type":"string"},"address":{"$ref":"#/components/schemas/Address"},"products":{"type":"array","items":{"$ref":"#/components/schemas/UpdateUserProductDto"}}}},"ResetPasswordDto":{"type":"object","properties":{"password":{"type":"string"}},"required":["password"]},"ChangePasswordDto":{"type":"object","properties":{"previousPassword":{"type":"string"},"password":{"type":"string"}},"required":["previousPassword","password"]},"FileUploadResponseDto":{"type":"object","properties":{"name":{"type":"string"},"filename":{"type":"string"},"path":{"type":"string"},"mimetype":{"type":"string","example":"image/png"},"size":{"type":"number"}},"required":["name","filename","path","mimetype","size"]}}}}