{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/chatinbox-net/json-schema/chatinbox-net-user-form-vm-schema.json",
  "title": "UserFormVM",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/chatinbox-net-openapi.yml#/components/schemas/UserFormVM",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int32"
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "surname": {
      "type": [
        "string",
        "null"
      ]
    },
    "username": {
      "type": [
        "string",
        "null"
      ]
    },
    "password": {
      "type": [
        "string",
        "null"
      ]
    },
    "campusID": {
      "type": "integer",
      "format": "int32"
    },
    "projectID": {
      "type": "integer",
      "format": "int32"
    },
    "groupID": {
      "type": "integer",
      "format": "int32"
    },
    "iconText": {
      "type": [
        "string",
        "null"
      ]
    },
    "email": {
      "type": [
        "string",
        "null"
      ]
    },
    "userMenus": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "isActive": {
      "type": "boolean"
    },
    "userRoleKey": {
      "type": [
        "string",
        "null"
      ]
    },
    "lang": {
      "type": [
        "string",
        "null"
      ]
    },
    "phoneViewPermission": {
      "type": "boolean"
    },
    "chatRole": {
      "type": "integer",
      "format": "int32"
    },
    "userRoleMenus": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/UserMenuCheckboxVM"
      }
    },
    "userSkills": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/SkillVM"
      }
    },
    "allSkills": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/SkillVM"
      }
    },
    "allMenus": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/UserMenuVM"
      }
    },
    "userMenuNames": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "allChatRoles": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/ChatRoleSelect"
      }
    },
    "newWorkGroups": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "userWorkGroupRelations": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/UserWorkGroupRelationVM"
      }
    },
    "newInstanceRelations": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "userInstanceRelations": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/UserInstanceRelationVM"
      }
    },
    "companyID": {
      "type": "integer",
      "format": "int32"
    },
    "channelManagementPermission": {
      "type": "boolean"
    },
    "customerMergePermission": {
      "type": "boolean"
    },
    "pbxExtensionNumber": {
      "type": [
        "string",
        "null"
      ]
    },
    "pbxExtensionPassword": {
      "type": [
        "string",
        "null"
      ]
    },
    "isTwoFactorEnabled": {
      "type": "boolean"
    },
    "isUserIpRestrictionEnabled": {
      "type": "boolean"
    },
    "phoneNumber": {
      "type": [
        "string",
        "null"
      ]
    },
    "twoFactorMethod": {
      "type": "integer",
      "format": "int32"
    },
    "userIpAddresses": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/UserIpAddressModel"
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "ChatRoleSelect": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "SkillVM": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "UserInstanceRelationVM": {
      "type": "object",
      "properties": {
        "instanceID": {
          "type": "integer",
          "format": "int32"
        },
        "userID": {
          "type": "integer",
          "format": "int32"
        },
        "instanceName": {
          "type": [
            "string",
            "null"
          ]
        },
        "isDisable": {
          "type": "boolean"
        },
        "chatCount": {
          "type": "integer",
          "format": "int32"
        }
      },
      "additionalProperties": false
    },
    "UserIpAddressModel": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "userID": {
          "type": "integer",
          "format": "int32"
        },
        "ip": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "isActive": {
          "type": "boolean"
        },
        "createDate": {
          "type": "string",
          "format": "date-time"
        },
        "updatedDate": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      },
      "additionalProperties": false
    },
    "UserMenuCheckboxVM": {
      "type": "object",
      "properties": {
        "userMenuID": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "isActive": {
          "type": "boolean"
        },
        "userRoleID": {
          "type": "integer",
          "format": "int32"
        },
        "userRoleName": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "UserMenuVM": {
      "type": "object",
      "properties": {
        "menuKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "urlAction": {
          "type": [
            "string",
            "null"
          ]
        },
        "urlController": {
          "type": [
            "string",
            "null"
          ]
        },
        "fontIcon": {
          "type": [
            "string",
            "null"
          ]
        },
        "sort": {
          "type": "integer",
          "format": "int32"
        },
        "id": {
          "type": "integer",
          "format": "int32"
        },
        "parentID": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "isPage": {
          "type": "boolean"
        },
        "menuLabel": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "UserWorkGroupRelationVM": {
      "type": "object",
      "properties": {
        "userWorkGroupRelationID": {
          "type": "integer",
          "format": "int32"
        },
        "workGroupName": {
          "type": [
            "string",
            "null"
          ]
        },
        "workGroupID": {
          "type": "integer",
          "format": "int32"
        },
        "userName": {
          "type": [
            "string",
            "null"
          ]
        },
        "userID": {
          "type": "integer",
          "format": "int32"
        },
        "isDisable": {
          "type": "boolean"
        },
        "chatCount": {
          "type": "integer",
          "format": "int32"
        }
      },
      "additionalProperties": false
    }
  }
}