type EntityID struct { objectID bson.ObjectId}
func (id EntityID) String() string { if !id.objectID.Valid() { return "" } return id.objectID.Hex()}
func (id EntityID) GetBSON() (interface{}, error) { if !id.objectID.Valid() { return nil, errors.New("invalid ID") } return id.objectID, nil}
func (id *EntityID) SetBSON(raw bson.Raw) error { var oid bson.ObjectId if err := raw.Unmarshal(&oid); err != nil { return err } *id = EntityID{oid} return nil}
type User struct { ID EntityID `json:"-" bson:"_id,omitempty"` Email string `json:"email"` Name string `json:"name"`
}