package dto import ( "with_you/internal/model" ) func ConvertTradeImageToResponse(img *model.TradeImage) TradeImageResponse { if img == nil { return TradeImageResponse{} } return TradeImageResponse{ ID: img.ID, URL: img.URL, ThumbnailURL: img.ThumbnailURL, PreviewURL: img.PreviewURL, PreviewURLLarge: img.PreviewURLLarge, Width: img.Width, Height: img.Height, } } func ConvertTradeImagesToResponse(images []model.TradeImage) []TradeImageResponse { result := make([]TradeImageResponse, 0, len(images)) for i := range images { result = append(result, ConvertTradeImageToResponse(&images[i])) } return result } func ConvertTradeItemToResponse(item *model.TradeItem, isFavorited bool) *TradeItemResponse { if item == nil { return nil } resp := &TradeItemResponse{ ID: item.ID, UserID: item.UserID, TradeType: string(item.TradeType), Category: string(item.Category), Title: item.Title, Content: item.Content, Price: item.Price, Condition: item.Condition, Status: string(item.Status), ViewsCount: item.ViewsCount, FavoritesCount: item.FavoritesCount, IsFavorited: isFavorited, Images: ConvertTradeImagesToResponse(item.Images), CreatedAt: FormatTime(item.CreatedAt), UpdatedAt: FormatTime(item.UpdatedAt), } if len(item.Segments) > 0 { resp.Segments = item.Segments } if item.User != nil { resp.Author = ConvertUserToResponse(item.User) } return resp } func ConvertTradeItemsToResponse(items []*model.TradeItem, favoriteMap map[string]bool) []*TradeItemResponse { result := make([]*TradeItemResponse, 0, len(items)) for _, item := range items { isFav := favoriteMap[item.ID] result = append(result, ConvertTradeItemToResponse(item, isFav)) } return result }