When a mental model has tags, refresh_mental_model hardcoded tags_match="all_strict", causing empty results when most memories are untagged. Add configurable tags_match and tag_groups fields to MentalModelTrigger so users can control refresh filtering. - Add tags_match (any/all/any_strict/all_strict) to override default - Add tag_groups for compound boolean tag expressions during refresh - Default behavior unchanged (all_strict when tags present) - Update both refresh paths (task-based and direct) - Add UI controls in Create/Update mental model dialogs - Regenerate OpenAPI spec and client SDKs
143 lines
3.2 KiB
Go
143 lines
3.2 KiB
Go
/*
|
|
Hindsight HTTP API
|
|
|
|
HTTP API for Hindsight
|
|
|
|
API version: 0.4.21
|
|
*/
|
|
|
|
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
|
|
|
|
package hindsight
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
|
|
// Not struct for Not
|
|
type Not struct {
|
|
TagGroupAndInput *TagGroupAndInput
|
|
TagGroupLeaf *TagGroupLeaf
|
|
TagGroupNotInput *TagGroupNotInput
|
|
TagGroupOrInput *TagGroupOrInput
|
|
}
|
|
|
|
// Unmarshal JSON data into any of the pointers in the struct
|
|
func (dst *Not) UnmarshalJSON(data []byte) error {
|
|
var err error
|
|
// try to unmarshal JSON data into TagGroupAndInput
|
|
err = json.Unmarshal(data, &dst.TagGroupAndInput);
|
|
if err == nil {
|
|
jsonTagGroupAndInput, _ := json.Marshal(dst.TagGroupAndInput)
|
|
if string(jsonTagGroupAndInput) == "{}" { // empty struct
|
|
dst.TagGroupAndInput = nil
|
|
} else {
|
|
return nil // data stored in dst.TagGroupAndInput, return on the first match
|
|
}
|
|
} else {
|
|
dst.TagGroupAndInput = nil
|
|
}
|
|
|
|
// try to unmarshal JSON data into TagGroupLeaf
|
|
err = json.Unmarshal(data, &dst.TagGroupLeaf);
|
|
if err == nil {
|
|
jsonTagGroupLeaf, _ := json.Marshal(dst.TagGroupLeaf)
|
|
if string(jsonTagGroupLeaf) == "{}" { // empty struct
|
|
dst.TagGroupLeaf = nil
|
|
} else {
|
|
return nil // data stored in dst.TagGroupLeaf, return on the first match
|
|
}
|
|
} else {
|
|
dst.TagGroupLeaf = nil
|
|
}
|
|
|
|
// try to unmarshal JSON data into TagGroupNotInput
|
|
err = json.Unmarshal(data, &dst.TagGroupNotInput);
|
|
if err == nil {
|
|
jsonTagGroupNotInput, _ := json.Marshal(dst.TagGroupNotInput)
|
|
if string(jsonTagGroupNotInput) == "{}" { // empty struct
|
|
dst.TagGroupNotInput = nil
|
|
} else {
|
|
return nil // data stored in dst.TagGroupNotInput, return on the first match
|
|
}
|
|
} else {
|
|
dst.TagGroupNotInput = nil
|
|
}
|
|
|
|
// try to unmarshal JSON data into TagGroupOrInput
|
|
err = json.Unmarshal(data, &dst.TagGroupOrInput);
|
|
if err == nil {
|
|
jsonTagGroupOrInput, _ := json.Marshal(dst.TagGroupOrInput)
|
|
if string(jsonTagGroupOrInput) == "{}" { // empty struct
|
|
dst.TagGroupOrInput = nil
|
|
} else {
|
|
return nil // data stored in dst.TagGroupOrInput, return on the first match
|
|
}
|
|
} else {
|
|
dst.TagGroupOrInput = nil
|
|
}
|
|
|
|
return fmt.Errorf("data failed to match schemas in anyOf(Not)")
|
|
}
|
|
|
|
// Marshal data from the first non-nil pointers in the struct to JSON
|
|
func (src *Not) MarshalJSON() ([]byte, error) {
|
|
if src.TagGroupAndInput != nil {
|
|
return json.Marshal(&src.TagGroupAndInput)
|
|
}
|
|
|
|
if src.TagGroupLeaf != nil {
|
|
return json.Marshal(&src.TagGroupLeaf)
|
|
}
|
|
|
|
if src.TagGroupNotInput != nil {
|
|
return json.Marshal(&src.TagGroupNotInput)
|
|
}
|
|
|
|
if src.TagGroupOrInput != nil {
|
|
return json.Marshal(&src.TagGroupOrInput)
|
|
}
|
|
|
|
return nil, nil // no data in anyOf schemas
|
|
}
|
|
|
|
|
|
type NullableNot struct {
|
|
value *Not
|
|
isSet bool
|
|
}
|
|
|
|
func (v NullableNot) Get() *Not {
|
|
return v.value
|
|
}
|
|
|
|
func (v *NullableNot) Set(val *Not) {
|
|
v.value = val
|
|
v.isSet = true
|
|
}
|
|
|
|
func (v NullableNot) IsSet() bool {
|
|
return v.isSet
|
|
}
|
|
|
|
func (v *NullableNot) Unset() {
|
|
v.value = nil
|
|
v.isSet = false
|
|
}
|
|
|
|
func NewNullableNot(val *Not) *NullableNot {
|
|
return &NullableNot{value: val, isSet: true}
|
|
}
|
|
|
|
func (v NullableNot) MarshalJSON() ([]byte, error) {
|
|
return json.Marshal(v.value)
|
|
}
|
|
|
|
func (v *NullableNot) UnmarshalJSON(src []byte) error {
|
|
v.isSet = true
|
|
return json.Unmarshal(src, &v.value)
|
|
}
|
|
|
|
|