package user import ( "time" "github.com/google/uuid" "gorm.io/gorm" ) type Profile struct { ID uuid.UUID `gorm:"primaryKey;type:uuid;default:uuid_generate_v4()"` CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt `gorm:"index"` UserID uuid.UUID `gorm:"index"` KtmTrainUsername string KtmTrainPassword string KtmTrainCreditCardType string // Visa/Mastercard KtmTrainCreditCard string KtmTrainCreditCardExpiry string KtmTrainCreditCardCVV string } type ProfileRequest struct { KtmTrainUsername string `json:"ktmTrainUsername" swaggertype:"string" example:"user@gmail.com"` KtmTrainPassword string `json:"ktmTrainPassword" swaggertype:"string" example:"password"` KtmTrainCreditCardType string `json:"ktmTrainCreditCardType" swaggertype:"string" example:"Visa|Mastercard|KTMWallet"` KtmTrainCreditCard string `json:"ktmTrainCreditCard" swaggertype:"string" example:"1234123412341234"` KtmTrainCreditCardExpiry string `json:"ktmTrainCreditCardExpiry" swaggertype:"string" example:"01/2022"` KtmTrainCreditCardCVV string `json:"ktmTrainCreditCardCVV" swaggertype:"string" example:"123"` } type ProfileResponse struct { KtmTrainUsername string `json:"ktmTrainUsername"` KtmTrainPassword string `json:"ktmTrainPassword"` KtmTrainCreditCardType string `json:"ktmTrainCreditCardType"` KtmTrainCreditCard string `json:"ktmTrainCreditCard"` KtmTrainCreditCardExpiry string `json:"ktmTrainCreditCardExpiry"` KtmTrainCreditCardCVV string `json:"ktmTrainCreditCardCVV"` } func (env *Env) NewProfileResponse(model *Profile) *ProfileResponse { res := &ProfileResponse{ KtmTrainUsername: model.KtmTrainUsername, KtmTrainPassword: model.KtmTrainPassword, KtmTrainCreditCardType: model.KtmTrainCreditCardType, KtmTrainCreditCard: model.KtmTrainCreditCard, KtmTrainCreditCardExpiry: model.KtmTrainCreditCardExpiry, KtmTrainCreditCardCVV: model.KtmTrainCreditCardCVV, } return res }