package queries import ( "encoding/json" "strconv" "time" "github.com/lib/pq" ) func intToint32Ptr(i *int) *int32 { if i == nil { return nil } v := int32(*i) return &v } func Ptr[T any](v T) *T { return &v } func strPtrToInt32Ptr(s *string) *int32 { if s == nil { return nil } val, err := strconv.ParseInt(*s, 10, 32) if err != nil { return nil } result := int32(val) return &result } func intSliceToPQInt32Array(v *[]int) *pq.Int32Array { if v == nil { return nil } // Create the pq.Int32Array with the correct capacity arr := make(pq.Int32Array, len(*v)) for i, val := range *v { arr[i] = int32(val) } return &arr } func mapToJSONStrPtr(m *map[string]interface{}) *string { if m == nil { return nil } bytes, err := json.Marshal(m) if err != nil { return nil } str := string(bytes) return &str } func strPtrToTimePtrSilent(s *string) *time.Time { if s == nil { return nil } parsedTime, err := time.Parse(time.DateOnly, *s) if err != nil { return nil // Silently returns NULL to the DB if parsing fails } return &parsedTime }