Как лучше сделать данный кусок кода?

Есть кусочек кода. В коде идёт проверка, если поле field пустое, то нужно использовать одну модель, в ином случае другую. Может я вообще пишу очень плохой код и есть вариант намного лучше?

if c.Query("field") != "" {
        var user models.UserModelOmitempty

        err = usersCollection.FindOne(ctx, bson.M{"_id": objId}, opts).Decode(&user)
        if err != nil {
            return responses.Response(c, http.StatusBadRequest, "user not found")
        }

        return responses.ResponseWithData(c, http.StatusOK, "success", user)
    } else {
        var user models.UserModel

        err = usersCollection.FindOne(ctx, bson.M{"_id": objId}, opts).Decode(&user)
        if err != nil {
            return responses.Response(c, http.StatusBadRequest, "user not found")
        }

        return responses.ResponseWithData(c, http.StatusOK, "success", user)
    }

models.UserModelOmitempty

type UserModelOmitempty struct {
    Id               primitive.ObjectID `json:"id" bson:"_id" query:"string"`
    Name             string             `json:"name,omitempty" bson:"name" validate:"required" query:"string"`
    Email            string             `json:"email,omitempty" bson:"email" validate:"required" query:"string"`
    Password         string             `json:"-" bson:"password" validate:"required"`
    CreatedAt        int64              `json:"createdAt,omitempty" bson:"createdAt" query:"int"`
    Rights           string             `json:"rights,omitempty" bson:"rights" query:"string"`
    PhotoUrl         string             `json:"photoUrl,omitempty" bson:"photoUrl"`
    Sex              string             `json:"sex,omitempty" bson:"sex" query:"string"`
    BirthDate        int64              `json:"birthDate,omitempty" bson:"birthDate" query:"int"`
    Country          string             `json:"country,omitempty" bson:"country" query:"string"`
    EmailSubscribe   bool               `json:"emailSubscribe,omitempty" bson:"emailSubscribe" query:"bool"`
    AccountConfirmed bool               `json:"accountConfirmed,omitempty" bson:"accountConfirmed" query:"bool"`
}

models.UserModel

type UserModel struct {
    Id               primitive.ObjectID `json:"id" bson:"_id" query:"string"`
    Name             string             `json:"name" bson:"name" validate:"required" query:"string"`
    Email            string             `json:"email" bson:"email" validate:"required" query:"string"`
    Password         string             `json:"-" bson:"password" validate:"required"`
    CreatedAt        int64              `json:"createdAt" bson:"createdAt" query:"int"`
    Rights           string             `json:"rights" bson:"rights" query:"string"`
    PhotoUrl         string             `json:"photoUrl" bson:"photoUrl"`
    Sex              string             `json:"sex" bson:"sex" query:"string"`
    BirthDate        int64              `json:"birthDate" bson:"birthDate" query:"int"`
    Country          string             `json:"country" bson:"country" query:"string"`
    EmailSubscribe   bool               `json:"emailSubscribe" bson:"emailSubscribe" query:"bool"`
    AccountConfirmed bool               `json:"accountConfirmed" bson:"accountConfirmed" query:"bool"`
}

Ответы (0 шт):