2026-03-12 06:34:56 +07:00
|
|
|
RuleDef:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
RuleID:
|
|
|
|
|
type: integer
|
2026-03-12 16:55:03 +07:00
|
|
|
RuleCode:
|
2026-03-12 06:34:56 +07:00
|
|
|
type: string
|
2026-03-12 16:55:03 +07:00
|
|
|
example: AUTO_SET_RESULT
|
|
|
|
|
RuleName:
|
|
|
|
|
type: string
|
|
|
|
|
example: Automatically Set Result
|
2026-03-12 06:34:56 +07:00
|
|
|
Description:
|
|
|
|
|
type: string
|
|
|
|
|
nullable: true
|
|
|
|
|
EventCode:
|
|
|
|
|
type: string
|
2026-03-12 16:55:03 +07:00
|
|
|
example: ORDER_CREATED
|
|
|
|
|
ConditionExpr:
|
2026-03-12 06:34:56 +07:00
|
|
|
type: string
|
|
|
|
|
nullable: true
|
2026-03-12 16:55:03 +07:00
|
|
|
description: Raw DSL expression (editable)
|
|
|
|
|
example: "if(sex('F') ? set_result(0.7) : set_result(1))"
|
|
|
|
|
ConditionExprCompiled:
|
2026-03-12 06:34:56 +07:00
|
|
|
type: string
|
|
|
|
|
nullable: true
|
2026-03-12 16:55:03 +07:00
|
|
|
description: Compiled JSON structure (auto-generated from ConditionExpr)
|
|
|
|
|
example: '{"conditionExpr":"order["Sex"] == \"F\"","valueExpr":"(order["Sex"] == \"F\") ? 0.7 : 1","then":{"type":"SET_RESULT","value":0.7,"valueExpr":"0.7"},"else":{"type":"SET_RESULT","value":1,"valueExpr":"1"}}'
|
2026-03-12 06:34:56 +07:00
|
|
|
CreateDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|
|
|
|
|
StartDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|
|
|
|
|
EndDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|
|
|
|
|
|
|
|
|
|
RuleAction:
|
|
|
|
|
type: object
|
|
|
|
|
properties:
|
|
|
|
|
RuleActionID:
|
|
|
|
|
type: integer
|
|
|
|
|
RuleID:
|
|
|
|
|
type: integer
|
|
|
|
|
ActionType:
|
|
|
|
|
type: string
|
|
|
|
|
example: SET_RESULT
|
|
|
|
|
ActionParams:
|
|
|
|
|
type: string
|
|
|
|
|
description: JSON string parameters
|
|
|
|
|
nullable: true
|
2026-03-12 16:55:03 +07:00
|
|
|
example: '{"testSiteID": 1, "value": "Normal"}'
|
2026-03-12 06:34:56 +07:00
|
|
|
CreateDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|
|
|
|
|
EndDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|
|
|
|
|
|
2026-03-12 16:55:03 +07:00
|
|
|
RuleWithDetails:
|
2026-03-12 06:34:56 +07:00
|
|
|
allOf:
|
|
|
|
|
- $ref: './rules.yaml#/RuleDef'
|
|
|
|
|
- type: object
|
|
|
|
|
properties:
|
|
|
|
|
actions:
|
|
|
|
|
type: array
|
|
|
|
|
items:
|
|
|
|
|
$ref: './rules.yaml#/RuleAction'
|
2026-03-12 16:55:03 +07:00
|
|
|
linkedTests:
|
|
|
|
|
type: array
|
|
|
|
|
items:
|
|
|
|
|
type: integer
|
|
|
|
|
description: Array of TestSiteIDs this rule is linked to. Rules are active only when attached to tests.
|
|
|
|
|
|
|
|
|
|
TestRule:
|
|
|
|
|
type: object
|
|
|
|
|
description: Mapping between a rule and a test site (testrule table). Rules are active when linked via this table.
|
|
|
|
|
properties:
|
|
|
|
|
TestRuleID:
|
|
|
|
|
type: integer
|
|
|
|
|
RuleID:
|
|
|
|
|
type: integer
|
|
|
|
|
TestSiteID:
|
|
|
|
|
type: integer
|
|
|
|
|
CreateDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|
|
|
|
|
EndDate:
|
|
|
|
|
type: string
|
|
|
|
|
format: date-time
|
|
|
|
|
nullable: true
|