package model import ( "strconv" "strings" "time" ) type Widget struct { ID WidgetID StreamerID StreamerID TemplateID TemplateID BackgroundUrl MediaUrl ImageUrl MediaUrl AudioUrl MediaUrl Duration Duration CreatedAt time.Time UpdatedAt time.Time } func (widget *Widget) GetMediaUrl(mediaType MediaType) MediaUrl { var mediaUrl MediaUrl if mediaType == "background_url" { mediaUrl = widget.BackgroundUrl } else if mediaType == "image_url" { mediaUrl = widget.ImageUrl } else if mediaType == "audio_url" { mediaUrl = widget.AudioUrl } return mediaUrl } func (widget *Widget) NormalizeUrl() { selfDomain := "http://localhost:8002/api/widget/media" strWidgetID := strconv.Itoa(int(widget.ID)) if !strings.Contains(string(widget.ImageUrl), "http") && widget.ImageUrl != "" { widget.ImageUrl = MediaUrl(selfDomain + "/image/get/" + strWidgetID) } if !strings.Contains(string(widget.BackgroundUrl), "http") && widget.BackgroundUrl != "" { widget.BackgroundUrl = MediaUrl(selfDomain + "/background/get/" + strWidgetID) } if !strings.Contains(string(widget.AudioUrl), "http") && widget.AudioUrl != "" { widget.AudioUrl = MediaUrl(selfDomain + "/audio/get/" + strWidgetID) } } type Donat struct { ID DonatID WidgetID WidgetID Text string DonatUser string Amount DonatAmount CreatedAt time.Time UpdatedAt time.Time } type DonatAndWidget struct { Widget *Widget Donat *Donat Display Display }