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) }