feat: Add support for minutes in auto resolve feature (#11269)
### Summary - Converts conversation auto-resolution duration from days to minutes for more granular control - Updates validation to allow values from 10 minutes (minimum) to 999 days (maximum) - Implements smart messaging to show appropriate time units in activity messages ### Changes - Created migration to convert existing durations from days to minutes (x1440) - Updated conversation resolver to use minutes instead of days - Added dynamic translation key selection based on duration value - Updated related specs and documentation - Added support for displaying durations in days, hours, or minutes based on value ### Test plan - Verify account validation accepts new minute-based ranges - Confirm existing account settings are correctly migrated - Test auto-resolution works properly with minute values - Ensure proper time unit display in activity messages --------- Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
This commit is contained in:
@@ -56,6 +56,8 @@ class JsonSchemaValidator < ActiveModel::Validator
|
||||
|
||||
def format_and_append_error(error, record)
|
||||
return handle_required(error, record) if error['type'] == 'required'
|
||||
return handle_minimum(error, record) if error['type'] == 'minimum'
|
||||
return handle_maximum(error, record) if error['type'] == 'maximum'
|
||||
|
||||
type = error['type'] == 'object' ? 'hash' : error['type']
|
||||
|
||||
@@ -74,6 +76,16 @@ class JsonSchemaValidator < ActiveModel::Validator
|
||||
record.errors.add(data, "must be of type #{expected_type}")
|
||||
end
|
||||
|
||||
def handle_minimum(error, record)
|
||||
data = get_name_from_data_pointer(error)
|
||||
record.errors.add(data, "must be greater than or equal to #{error['schema']['minimum']}")
|
||||
end
|
||||
|
||||
def handle_maximum(error, record)
|
||||
data = get_name_from_data_pointer(error)
|
||||
record.errors.add(data, "must be less than or equal to #{error['schema']['maximum']}")
|
||||
end
|
||||
|
||||
def get_name_from_data_pointer(error)
|
||||
data = error['data_pointer']
|
||||
|
||||
|
||||
Reference in New Issue
Block a user