MiniappGoService/pkg/pgDB/stringArray.go

34 lines
804 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package pgDB
import (
"database/sql/driver"
"github.com/lib/pq"
)
// StringArray для swagger = []string, а для базы — pq.StringArray
// @swagger:type array,string
type StringArray []string
// Value преобразует []string → driver.Value (для INSERT/UPDATE)
func (t StringArray) Value() (driver.Value, error) {
return pq.Array([]string(t)).Value()
}
// Scan преобразует driver.Value → []string (для SELECT)
func (t *StringArray) Scan(src interface{}) error {
return pq.Array((*[]string)(t)).Scan(src)
}
// Для удобства: вернёт nil, если массив пустой
func (t StringArray) ArrayTextOrNil() interface{} {
if len(t) == 0 {
return nil
}
return pq.Array([]string(t))
}
func (t StringArray) Len() int {
return len(t)
}