Implement custom Value and Scan methods for PrivateString type

This commit is contained in:
Ruoxi Wang 2024-03-22 14:03:36 +08:00
parent 38310d6ff2
commit b8e9ee92b6
No known key found for this signature in database
GPG Key ID: BE325758AAD335BF

View File

@ -1,7 +1,10 @@
package domain package domain
import ( import (
"errors"
"time" "time"
"database/sql/driver"
) )
type BaseModel struct { type BaseModel struct {
@ -21,6 +24,26 @@ func (PrivateString) String() string {
return "" return ""
} }
func (ps PrivateString) Value() (driver.Value, error) {
if len(ps) == 0 {
return nil, nil
}
return string(ps), nil
}
func (ps *PrivateString) Scan(value interface{}) error {
if value == nil {
*ps = ""
return nil
}
strValue, ok := value.(string)
if !ok {
return errors.New("invalid type for PrivateString")
}
*ps = PrivateString(strValue)
return nil
}
const ( const (
DisabledReasonExpired = "expired" DisabledReasonExpired = "expired"
DisabledReasonDeleted = "deleted" DisabledReasonDeleted = "deleted"