diff --git a/nodes/S4DSMain/actions/customers/cloneUsername.json b/nodes/S4DSMain/actions/customers/cloneUsername.json new file mode 100644 index 0000000..b1d0471 --- /dev/null +++ b/nodes/S4DSMain/actions/customers/cloneUsername.json @@ -0,0 +1,18 @@ +{ + "name": "cloneUsername", + "method": "POST", + "endpoint": "/customer/cloneUsername", + "description": "Clone a username from one user to another.", + "parameters": [], + "requiresAuth": true, + "requestBody": { + "schema": "CloneUserDTO", + "required": true + }, + "response": { + "type": "object", + "properties": { + "result": "object" + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/customerInfo.json b/nodes/S4DSMain/actions/customers/customerInfo.json new file mode 100644 index 0000000..79129d3 --- /dev/null +++ b/nodes/S4DSMain/actions/customers/customerInfo.json @@ -0,0 +1,75 @@ +{ + "name": "customerInfo", + "method": "GET", + "endpoint": "/customer/info", + "description": "Get customer information.", + "parameters": [ + { + "name": "personId", + "in": "query", + "type": "array", + "required": false, + "description": "Person ID filter", + "items": { + "type": "string" + } + }, + { + "name": "documentId", + "in": "query", + "type": "array", + "required": false, + "description": "Document ID filter", + "items": { + "type": "string" + } + }, + { + "name": "documentType", + "in": "query", + "type": "array", + "required": false, + "description": "Document type filter", + "items": { + "type": "string" + } + }, + { + "name": "roles", + "in": "query", + "type": "array", + "required": false, + "description": "Roles filter", + "items": { + "type": "string" + } + }, + { + "name": "orderBy", + "in": "query", + "type": "string", + "required": false, + "description": "Order by field" + }, + { + "name": "quantity", + "in": "query", + "type": "integer", + "required": false, + "description": "Quantity limit (default: 100)", + "default": 100 + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "customers": { + "type": "array", + "items": { + "type": "object" + } + } + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/getAdvancedSearch.json b/nodes/S4DSMain/actions/customers/getAdvancedSearch.json new file mode 100644 index 0000000..f064a8b --- /dev/null +++ b/nodes/S4DSMain/actions/customers/getAdvancedSearch.json @@ -0,0 +1,34 @@ +{ + "name": "getAdvancedSearch", + "method": "GET", + "endpoint": "/customer/advancedSearch", + "description": "Perform advanced search for customers.", + "parameters": [ + { + "name": "query", + "in": "query", + "type": "string", + "required": false, + "description": "Search query" + }, + { + "name": "languaje", + "in": "query", + "type": "string", + "required": false, + "description": "Language preference" + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/getConsultantInformation.json b/nodes/S4DSMain/actions/customers/getConsultantInformation.json new file mode 100644 index 0000000..c1285cb --- /dev/null +++ b/nodes/S4DSMain/actions/customers/getConsultantInformation.json @@ -0,0 +1,35 @@ +{ + "name": "getConsultantInformation", + "method": "GET", + "endpoint": "/customer/balance", + "description": "Get consultant information and balance.", + "parameters": [ + { + "name": "documentId", + "in": "query", + "type": "array", + "required": false, + "description": "Document ID filter", + "items": { + "type": "string" + } + }, + { + "name": "documentType", + "in": "query", + "type": "array", + "required": false, + "description": "Document type filter", + "items": { + "type": "string" + } + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "balance": "object" + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/getDocumentIdByAutocomplete.json b/nodes/S4DSMain/actions/customers/getDocumentIdByAutocomplete.json new file mode 100644 index 0000000..6fcc587 --- /dev/null +++ b/nodes/S4DSMain/actions/customers/getDocumentIdByAutocomplete.json @@ -0,0 +1,27 @@ +{ + "name": "getDocumentIdByAutocomplete", + "method": "GET", + "endpoint": "/customer/search/{user}", + "description": "Get document ID by autocomplete user search.", + "parameters": [ + { + "name": "user", + "in": "path", + "type": "string", + "required": true, + "description": "User search term" + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/getOffSyncCustomers.json b/nodes/S4DSMain/actions/customers/getOffSyncCustomers.json new file mode 100644 index 0000000..d2f661f --- /dev/null +++ b/nodes/S4DSMain/actions/customers/getOffSyncCustomers.json @@ -0,0 +1,122 @@ +{ + "name": "getOffSyncCustomers", + "method": "GET", + "endpoint": "/customer/offSync", + "description": "Get customers that are out of sync.", + "parameters": [ + { + "name": "quantity", + "in": "query", + "type": "integer", + "required": false, + "description": "Number of customers to retrieve (default: 100)", + "default": 100 + }, + { + "name": "documentType", + "in": "query", + "type": "string", + "required": false, + "description": "Document type filter" + }, + { + "name": "documentId", + "in": "query", + "type": "string", + "required": false, + "description": "Document ID filter" + }, + { + "name": "country", + "in": "query", + "type": "string", + "required": false, + "description": "Country filter" + }, + { + "name": "internalCode", + "in": "query", + "type": "integer", + "required": false, + "description": "Internal code filter" + }, + { + "name": "registrationStartDate", + "in": "query", + "type": "string", + "required": false, + "description": "Registration start date filter" + }, + { + "name": "registrationEndDate", + "in": "query", + "type": "string", + "required": false, + "description": "Registration end date filter" + }, + { + "name": "campaign", + "in": "query", + "type": "integer", + "required": false, + "description": "Campaign filter" + }, + { + "name": "customerStatus", + "in": "query", + "type": "string", + "required": false, + "description": "Customer status filter" + }, + { + "name": "customerType", + "in": "query", + "type": "integer", + "required": false, + "description": "Customer type filter" + }, + { + "name": "sponsorDocument", + "in": "query", + "type": "string", + "required": false, + "description": "Sponsor document filter" + }, + { + "name": "sponsorDocumentType", + "in": "query", + "type": "string", + "required": false, + "description": "Sponsor document type filter" + }, + { + "name": "returnParamsList", + "in": "query", + "type": "array", + "required": false, + "description": "List of parameters to return", + "items": { + "type": "string" + } + }, + { + "name": "commercialStatus", + "in": "query", + "type": "string", + "required": false, + "description": "Commercial status filter" + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "customers": { + "type": "array", + "items": { + "type": "object" + } + } + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/getOrdersByCustomer.json b/nodes/S4DSMain/actions/customers/getOrdersByCustomer.json new file mode 100644 index 0000000..513ab41 --- /dev/null +++ b/nodes/S4DSMain/actions/customers/getOrdersByCustomer.json @@ -0,0 +1,76 @@ +{ + "name": "getOrdersByCustomer", + "method": "GET", + "endpoint": "/customer/orders", + "description": "Get orders by customer.", + "parameters": [ + { + "name": "documentId", + "in": "query", + "type": "string", + "required": false, + "description": "Document ID filter" + }, + { + "name": "documentType", + "in": "query", + "type": "string", + "required": false, + "description": "Document type filter" + }, + { + "name": "orderStardDate", + "in": "query", + "type": "string", + "required": false, + "description": "Order start date filter" + }, + { + "name": "orderEndDate", + "in": "query", + "type": "string", + "required": false, + "description": "Order end date filter" + }, + { + "name": "orderCampaign", + "in": "query", + "type": "integer", + "required": false, + "description": "Order campaign filter" + }, + { + "name": "quantity", + "in": "query", + "type": "string", + "required": false, + "description": "Quantity filter" + }, + { + "name": "orderStatus", + "in": "query", + "type": "string", + "required": false, + "description": "Order status filter" + }, + { + "name": "orderType", + "in": "query", + "type": "string", + "required": false, + "description": "Order type filter" + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "orders": { + "type": "array", + "items": { + "type": "object" + } + } + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/getUserByToken.json b/nodes/S4DSMain/actions/customers/getUserByToken.json new file mode 100644 index 0000000..4dae63f --- /dev/null +++ b/nodes/S4DSMain/actions/customers/getUserByToken.json @@ -0,0 +1,23 @@ +{ + "name": "getUserByToken", + "method": "GET", + "endpoint": "/customer/userByToken", + "description": "Get user information by token.", + "parameters": [ + { + "name": "userFromRequest", + "in": "query", + "type": "object", + "schema": "DsUserSession", + "required": true, + "description": "User session information" + } + ], + "requiresAuth": true, + "response": { + "type": "object", + "properties": { + "user": "object" + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/actions/customers/inactiveCustomer.json b/nodes/S4DSMain/actions/customers/inactiveCustomer.json new file mode 100644 index 0000000..7b7e2b8 --- /dev/null +++ b/nodes/S4DSMain/actions/customers/inactiveCustomer.json @@ -0,0 +1,18 @@ +{ + "name": "inactiveCustomer", + "method": "DELETE", + "endpoint": "/customer/deleteCustomer", + "description": "Deactivate/delete a customer.", + "parameters": [], + "requiresAuth": true, + "requestBody": { + "schema": "DeleteCustomerDTO", + "required": true + }, + "response": { + "type": "object", + "properties": { + "result": "object" + } + } +} \ No newline at end of file diff --git a/nodes/S4DSMain/api-definitions.json b/nodes/S4DSMain/api-definitions.json index 1c88076..4cf96da 100644 --- a/nodes/S4DSMain/api-definitions.json +++ b/nodes/S4DSMain/api-definitions.json @@ -28,6 +28,42 @@ { "name": "updateCustomer", "file": "actions/customers/updateCustomer.json" + }, + { + "name": "cloneUsername", + "file": "actions/customers/cloneUsername.json" + }, + { + "name": "getDocumentIdByAutocomplete", + "file": "actions/customers/getDocumentIdByAutocomplete.json" + }, + { + "name": "getOffSyncCustomers", + "file": "actions/customers/getOffSyncCustomers.json" + }, + { + "name": "getUserByToken", + "file": "actions/customers/getUserByToken.json" + }, + { + "name": "getOrdersByCustomer", + "file": "actions/customers/getOrdersByCustomer.json" + }, + { + "name": "customerInfo", + "file": "actions/customers/customerInfo.json" + }, + { + "name": "getConsultantInformation", + "file": "actions/customers/getConsultantInformation.json" + }, + { + "name": "inactiveCustomer", + "file": "actions/customers/inactiveCustomer.json" + }, + { + "name": "getAdvancedSearch", + "file": "actions/customers/getAdvancedSearch.json" } ] } diff --git a/nodes/S4DSMain/dto-definitions.json b/nodes/S4DSMain/dto-definitions.json index 7dbd3e9..05cad85 100644 --- a/nodes/S4DSMain/dto-definitions.json +++ b/nodes/S4DSMain/dto-definitions.json @@ -604,5 +604,68 @@ "required": false } } + }, + "CloneUserDTO": { + "type": "object", + "properties": { + "sourceUsername": { + "type": "string", + "description": "Source username to clone from", + "required": true + }, + "targetUsername": { + "type": "string", + "description": "Target username to clone to", + "required": true + } + } + }, + "DsUserSession": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID", + "required": false + }, + "username": { + "type": "string", + "description": "Username", + "required": false + }, + "token": { + "type": "string", + "description": "Session token", + "required": false + }, + "roles": { + "type": "array", + "description": "User roles", + "items": { + "type": "string" + }, + "required": false + } + } + }, + "DeleteCustomerDTO": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID of customer to delete", + "required": true + }, + "documentType": { + "type": "string", + "description": "Document type", + "required": true + }, + "reason": { + "type": "string", + "description": "Reason for deletion", + "required": false + } + } } } \ No newline at end of file