34 lines
804 B
Go
34 lines
804 B
Go
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)
|
||
}
|