RuleEngine Domain

This page presents the ERD for each AggregateRoot, grouping related entities into domain boundaries. Each AggregateRoot enforces business rules, processes commands synchronously, and defines consistency borders within a single transactional scope. An indicative json schema is created to how the export of a aggregate root will approximitly look like

Script

Aggregate Root: Script

Represents business rule scripts with their versions for automated decision making and processing.

erDiagram
    "RuleEngine.ScriptVersions" {
        uniqueidentifier Id PK
        uniqueidentifier ScriptId FK
        bit Draft 
        nvarchar VersionString 
        nvarchar Comment 
        nvarchar ScriptValue 
        uniqueidentifier Tenant 
        datetimeoffset EntityCreatedDateTime 
        datetimeoffset EntityUpdatedDateTime 
        uniqueidentifier EntityCreatedAuthToken 
        uniqueidentifier EntityUpdatedAuthToken 
        bit Concealed 
    }

    "RuleEngine.Scripts" {
        uniqueidentifier Id PK
        nvarchar Name 
        nvarchar Description 
        uniqueidentifier Tenant 
        datetimeoffset EntityCreatedDateTime 
        datetimeoffset EntityUpdatedDateTime 
        uniqueidentifier EntityCreatedAuthToken 
        uniqueidentifier EntityUpdatedAuthToken 
        int ScriptType 
        bit Concealed 
    }

    "RuleEngine.ScriptVersions" }o--|| "RuleEngine.Scripts" : "ScriptId"
erDiagram
    "RuleEngine.ScriptVersions" {
        uniqueidentifier Id PK
        uniqueidentifier ScriptId FK
        bit Draft 
        nvarchar VersionString 
        nvarchar Comment 
        nvarchar ScriptValue 
        uniqueidentifier Tenant 
        datetimeoffset EntityCreatedDateTime 
        datetimeoffset EntityUpdatedDateTime 
        uniqueidentifier EntityCreatedAuthToken 
        uniqueidentifier EntityUpdatedAuthToken 
        bit Concealed 
    }

    "RuleEngine.Scripts" {
        uniqueidentifier Id PK
        nvarchar Name 
        nvarchar Description 
        uniqueidentifier Tenant 
        datetimeoffset EntityCreatedDateTime 
        datetimeoffset EntityUpdatedDateTime 
        uniqueidentifier EntityCreatedAuthToken 
        uniqueidentifier EntityUpdatedAuthToken 
        int ScriptType 
        bit Concealed 
    }

    "RuleEngine.ScriptVersions" }o--|| "RuleEngine.Scripts" : "ScriptId"
{
    "definitions":  {
                        "RuleEngine.Scripts":  {
                                                   "properties":  {
                                                                      "Concealed":  {
                                                                                        "type":  "boolean",
                                                                                        "description":  "bit"
                                                                                    },
                                                                      "EntityUpdatedAuthToken":  {
                                                                                                     "format":  "uuid",
                                                                                                     "description":  "uniqueidentifier",
                                                                                                     "type":  "string"
                                                                                                 },
                                                                      "Id":  {
                                                                                 "format":  "uuid",
                                                                                 "description":  "uniqueidentifier",
                                                                                 "type":  "string"
                                                                             },
                                                                      "ScriptType":  {
                                                                                         "type":  "integer",
                                                                                         "description":  "int"
                                                                                     },
                                                                      "Description":  {
                                                                                          "type":  "string",
                                                                                          "description":  "nvarchar"
                                                                                      },
                                                                      "EntityCreatedDateTime":  {
                                                                                                    "format":  "date-time",
                                                                                                    "description":  "datetimeoffset",
                                                                                                    "type":  "string"
                                                                                                },
                                                                      "Name":  {
                                                                                   "type":  "string",
                                                                                   "description":  "nvarchar"
                                                                               },
                                                                      "EntityUpdatedDateTime":  {
                                                                                                    "format":  "date-time",
                                                                                                    "description":  "datetimeoffset",
                                                                                                    "type":  "string"
                                                                                                },
                                                                      "EntityCreatedAuthToken":  {
                                                                                                     "format":  "uuid",
                                                                                                     "description":  "uniqueidentifier",
                                                                                                     "type":  "string"
                                                                                                 },
                                                                      "Tenant":  {
                                                                                     "format":  "uuid",
                                                                                     "description":  "uniqueidentifier",
                                                                                     "type":  "string"
                                                                                 }
                                                                  },
                                                   "type":  "object"
                                               },
                        "RuleEngine.ScriptVersions":  {
                                                          "properties":  {
                                                                             "ScriptId":  {
                                                                                              "type":  "string",
                                                                                              "description":  "FK to RuleEngine.Scripts"
                                                                                          },
                                                                             "VersionString":  {
                                                                                                   "type":  "string",
                                                                                                   "description":  "nvarchar"
                                                                                               },
                                                                             "EntityUpdatedAuthToken":  {
                                                                                                            "format":  "uuid",
                                                                                                            "description":  "uniqueidentifier",
                                                                                                            "type":  "string"
                                                                                                        },
                                                                             "Concealed":  {
                                                                                               "type":  "boolean",
                                                                                               "description":  "bit"
                                                                                           },
                                                                             "EntityCreatedAuthToken":  {
                                                                                                            "format":  "uuid",
                                                                                                            "description":  "uniqueidentifier",
                                                                                                            "type":  "string"
                                                                                                        },
                                                                             "EntityUpdatedDateTime":  {
                                                                                                           "format":  "date-time",
                                                                                                           "description":  "datetimeoffset",
                                                                                                           "type":  "string"
                                                                                                       },
                                                                             "ScriptValue":  {
                                                                                                 "type":  "string",
                                                                                                 "description":  "nvarchar"
                                                                                             },
                                                                             "Comment":  {
                                                                                             "type":  "string",
                                                                                             "description":  "nvarchar"
                                                                                         },
                                                                             "Tenant":  {
                                                                                            "format":  "uuid",
                                                                                            "description":  "uniqueidentifier",
                                                                                            "type":  "string"
                                                                                        },
                                                                             "Id":  {
                                                                                        "format":  "uuid",
                                                                                        "description":  "uniqueidentifier",
                                                                                        "type":  "string"
                                                                                    },
                                                                             "EntityCreatedDateTime":  {
                                                                                                           "format":  "date-time",
                                                                                                           "description":  "datetimeoffset",
                                                                                                           "type":  "string"
                                                                                                       },
                                                                             "Draft":  {
                                                                                           "type":  "boolean",
                                                                                           "description":  "bit"
                                                                                       }
                                                                         },
                                                          "type":  "object"
                                                      }
                    },
    "title":  "RuleEngine.Script",
    "$comment":  "Generated from Mermaid ERD with property-level descriptions",
    "$schema":  "http://json-schema.org/draft-07/schema#",
    "type":  "object"
}