flat structures
This commit is contained in:
		
							
								
								
									
										256
									
								
								ozon/chats.go
									
									
									
									
									
								
							
							
						
						
									
										256
									
								
								ozon/chats.go
									
									
									
									
									
								
							@@ -38,36 +38,7 @@ type ListChatsResponse struct {
 | 
			
		||||
	core.CommonResponse
 | 
			
		||||
 | 
			
		||||
	// Chats data
 | 
			
		||||
	Chats []struct {
 | 
			
		||||
		// Chat data
 | 
			
		||||
		Chat struct {
 | 
			
		||||
			// Chat identifier
 | 
			
		||||
			ChatId string `json:"chat_id"`
 | 
			
		||||
 | 
			
		||||
			// Chat status:
 | 
			
		||||
			//   - All
 | 
			
		||||
			//   - Opened
 | 
			
		||||
			//   - Closed
 | 
			
		||||
			ChatStatus string `json:"chat_status"`
 | 
			
		||||
 | 
			
		||||
			// Chat type:
 | 
			
		||||
			//   - Seller_Support — support chat
 | 
			
		||||
			//   - Buyer_Seller — chat with a customer
 | 
			
		||||
			ChatType string `json:"chat_type"`
 | 
			
		||||
 | 
			
		||||
			// Chat creation date
 | 
			
		||||
			CreatedAt time.Time `json:"created_at"`
 | 
			
		||||
		} `json:"chat"`
 | 
			
		||||
 | 
			
		||||
		// Identifier of the first unread chat message
 | 
			
		||||
		FirstUnreadMessageId string `json:"first_unread_message_id"`
 | 
			
		||||
 | 
			
		||||
		// Identifier of the last message in the chat
 | 
			
		||||
		LastMessageId string `json:"last_message_id"`
 | 
			
		||||
 | 
			
		||||
		// Number of unread messages in the chat
 | 
			
		||||
		UnreadCount int64 `json:"unread_count"`
 | 
			
		||||
	} `json:"chats"`
 | 
			
		||||
	Chats []ListChatsChat `json:"chats"`
 | 
			
		||||
 | 
			
		||||
	// Total number of chats
 | 
			
		||||
	TotalChatsCount int64 `json:"total_chats_count"`
 | 
			
		||||
@@ -76,6 +47,39 @@ type ListChatsResponse struct {
 | 
			
		||||
	TotalUnreadCount int64 `json:"total_unread_count"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ListChatsChat struct {
 | 
			
		||||
	// Chat data
 | 
			
		||||
	Chat ListChatsChatData `json:"chat"`
 | 
			
		||||
 | 
			
		||||
	// Identifier of the first unread chat message
 | 
			
		||||
	FirstUnreadMessageId string `json:"first_unread_message_id"`
 | 
			
		||||
 | 
			
		||||
	// Identifier of the last message in the chat
 | 
			
		||||
	LastMessageId string `json:"last_message_id"`
 | 
			
		||||
 | 
			
		||||
	// Number of unread messages in the chat
 | 
			
		||||
	UnreadCount int64 `json:"unread_count"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ListChatsChatData struct {
 | 
			
		||||
	// Chat identifier
 | 
			
		||||
	ChatId string `json:"chat_id"`
 | 
			
		||||
 | 
			
		||||
	// Chat status:
 | 
			
		||||
	//   - All
 | 
			
		||||
	//   - Opened
 | 
			
		||||
	//   - Closed
 | 
			
		||||
	ChatStatus string `json:"chat_status"`
 | 
			
		||||
 | 
			
		||||
	// Chat type:
 | 
			
		||||
	//   - Seller_Support — support chat
 | 
			
		||||
	//   - Buyer_Seller — chat with a customer
 | 
			
		||||
	ChatType string `json:"chat_type"`
 | 
			
		||||
 | 
			
		||||
	// Chat creation date
 | 
			
		||||
	CreatedAt time.Time `json:"created_at"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Returns information about chats by specified filters
 | 
			
		||||
func (c Chats) List(params *ListChatsParams) (*ListChatsResponse, error) {
 | 
			
		||||
	url := "/v2/chat/list"
 | 
			
		||||
@@ -179,33 +183,37 @@ type ChatHistoryResponse struct {
 | 
			
		||||
	HasNext bool `json:"has_next"`
 | 
			
		||||
 | 
			
		||||
	// An array of messages sorted according to the direction parameter in the request body
 | 
			
		||||
	Messages []struct {
 | 
			
		||||
		// Message creation date
 | 
			
		||||
		CreatedAt time.Time `json:"created_at"`
 | 
			
		||||
	Messages []ChatHistoryMessage `json:"messages"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		// Array with message content in Markdown format
 | 
			
		||||
		Data []string `json:"data"`
 | 
			
		||||
type ChatHistoryMessage struct {
 | 
			
		||||
	// Message creation date
 | 
			
		||||
	CreatedAt time.Time `json:"created_at"`
 | 
			
		||||
 | 
			
		||||
		// Indication of the read message
 | 
			
		||||
		IsRead bool `json:"is_read"`
 | 
			
		||||
	// Array with message content in Markdown format
 | 
			
		||||
	Data []string `json:"data"`
 | 
			
		||||
 | 
			
		||||
		// Message identifier
 | 
			
		||||
		MessageId string `json:"message_id"`
 | 
			
		||||
	// Indication of the read message
 | 
			
		||||
	IsRead bool `json:"is_read"`
 | 
			
		||||
 | 
			
		||||
		// Chat participant identifier
 | 
			
		||||
		User struct {
 | 
			
		||||
			// Chat participant identifier
 | 
			
		||||
			Id string `json:"id"`
 | 
			
		||||
	// Message identifier
 | 
			
		||||
	MessageId string `json:"message_id"`
 | 
			
		||||
 | 
			
		||||
			// Chat participant type:
 | 
			
		||||
			//   - customer
 | 
			
		||||
			//   - seller
 | 
			
		||||
			//   - crm—system messages
 | 
			
		||||
			//   - courier
 | 
			
		||||
			//   - support
 | 
			
		||||
			Type string `json:"type"`
 | 
			
		||||
		} `json:"user"`
 | 
			
		||||
	} `json:"messages"`
 | 
			
		||||
	// Chat participant identifier
 | 
			
		||||
	User ChatHistoryMessageUser `json:"user"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ChatHistoryMessageUser struct {
 | 
			
		||||
	// Chat participant identifier
 | 
			
		||||
	Id string `json:"id"`
 | 
			
		||||
 | 
			
		||||
	// Chat participant type:
 | 
			
		||||
	//   - customer
 | 
			
		||||
	//   - seller
 | 
			
		||||
	//   - crm—system messages
 | 
			
		||||
	//   - courier
 | 
			
		||||
	//   - support
 | 
			
		||||
	Type string `json:"type"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Chat history
 | 
			
		||||
@@ -238,80 +246,94 @@ type UpdateChatResponse struct {
 | 
			
		||||
	core.CommonResponse
 | 
			
		||||
 | 
			
		||||
	// Method result
 | 
			
		||||
	Result []struct {
 | 
			
		||||
		// An order or a product user wrote about in the chat
 | 
			
		||||
		Context struct {
 | 
			
		||||
			// Product inforamtion
 | 
			
		||||
			Item struct {
 | 
			
		||||
				// Product identifier in the Ozon system, SKU
 | 
			
		||||
				SKU int64 `json:"sku"`
 | 
			
		||||
			} `json:"item"`
 | 
			
		||||
	Result []UpdateChatResult `json:"result"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
			// Order information
 | 
			
		||||
			Order struct {
 | 
			
		||||
				// Order number
 | 
			
		||||
				OrderNumber string `json:"order_number"`
 | 
			
		||||
type UpdateChatResult struct {
 | 
			
		||||
	// An order or a product user wrote about in the chat
 | 
			
		||||
	Context UpdateChatResultContext `json:"context"`
 | 
			
		||||
 | 
			
		||||
				// Shipment information
 | 
			
		||||
				Postings []struct {
 | 
			
		||||
					// Delivery scheme:
 | 
			
		||||
					//   - FBO
 | 
			
		||||
					//   - FBS
 | 
			
		||||
					//   - RFBS
 | 
			
		||||
					//   - Crossborder
 | 
			
		||||
					DeliverySchema string `json:"delivery_schema"`
 | 
			
		||||
	// Creation date and time
 | 
			
		||||
	CreatedAt time.Time `json:"created_at"`
 | 
			
		||||
 | 
			
		||||
					// Shipment number
 | 
			
		||||
					PostingNumber string `json:"posting_number"`
 | 
			
		||||
	// Information about the file in the chat. Displayed only for `type = file`
 | 
			
		||||
	File UpdateChatResultFile `json:"file"`
 | 
			
		||||
 | 
			
		||||
					// List of product identifiers in the shipment
 | 
			
		||||
					SKUList []int64 `json:"sku_list"`
 | 
			
		||||
				} `json:"postings"`
 | 
			
		||||
			} `json:"order"`
 | 
			
		||||
		} `json:"context"`
 | 
			
		||||
	// File identifier
 | 
			
		||||
	Id uint64 `json:"id"`
 | 
			
		||||
 | 
			
		||||
		// Creation date and time
 | 
			
		||||
		CreatedAt time.Time `json:"created_at"`
 | 
			
		||||
	// Message. Displayed only for `type = text`
 | 
			
		||||
	Text string `json:"text"`
 | 
			
		||||
 | 
			
		||||
		// Information about the file in the chat. Displayed only for `type = file`
 | 
			
		||||
		File struct {
 | 
			
		||||
			// File type
 | 
			
		||||
			Mime string `json:"mime"`
 | 
			
		||||
	// Message type:
 | 
			
		||||
	//   - text
 | 
			
		||||
	//   - file
 | 
			
		||||
	Type string `json:"type"`
 | 
			
		||||
 | 
			
		||||
			// File name
 | 
			
		||||
			Name string `json:"name"`
 | 
			
		||||
	// Chat participant information
 | 
			
		||||
	User UpdateChatResultUser `json:"user"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
			// File size in bytes
 | 
			
		||||
			Size int64 `json:"size"`
 | 
			
		||||
type UpdateChatResultContext struct {
 | 
			
		||||
	// Product inforamtion
 | 
			
		||||
	Item UpdateChatResultContextItem `json:"item"`
 | 
			
		||||
 | 
			
		||||
			// File URL
 | 
			
		||||
			URL string `json:"url"`
 | 
			
		||||
		} `json:"file"`
 | 
			
		||||
	// Order information
 | 
			
		||||
	Order UpdateChatResultContextOrder `json:"order"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		// File identifier
 | 
			
		||||
		Id uint64 `json:"id"`
 | 
			
		||||
type UpdateChatResultContextItem struct {
 | 
			
		||||
	// Product identifier in the Ozon system, SKU
 | 
			
		||||
	SKU int64 `json:"sku"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		// Message. Displayed only for `type = text`
 | 
			
		||||
		Text string `json:"text"`
 | 
			
		||||
type UpdateChatResultContextOrder struct {
 | 
			
		||||
	// Order number
 | 
			
		||||
	OrderNumber string `json:"order_number"`
 | 
			
		||||
 | 
			
		||||
		// Message type:
 | 
			
		||||
		//   - text
 | 
			
		||||
		//   - file
 | 
			
		||||
		Type string `json:"type"`
 | 
			
		||||
	// Shipment information
 | 
			
		||||
	Postings []UpdateChatResultContextOrderPosting `json:"postings"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		// Chat participant information
 | 
			
		||||
		User struct {
 | 
			
		||||
			// Chat participant identifier
 | 
			
		||||
			Id string `json:"id"`
 | 
			
		||||
type UpdateChatResultContextOrderPosting struct {
 | 
			
		||||
	// Delivery scheme:
 | 
			
		||||
	//   - FBO
 | 
			
		||||
	//   - FBS
 | 
			
		||||
	//   - RFBS
 | 
			
		||||
	//   - Crossborder
 | 
			
		||||
	DeliverySchema string `json:"delivery_schema"`
 | 
			
		||||
 | 
			
		||||
			// Chat participant chat:
 | 
			
		||||
			//   - customer
 | 
			
		||||
			//   - seller
 | 
			
		||||
			//   - crm—system messages
 | 
			
		||||
			//   - courier
 | 
			
		||||
			Type string `json:"type"`
 | 
			
		||||
		} `json:"user"`
 | 
			
		||||
	} `json:"result"`
 | 
			
		||||
	// Shipment number
 | 
			
		||||
	PostingNumber string `json:"posting_number"`
 | 
			
		||||
 | 
			
		||||
	// List of product identifiers in the shipment
 | 
			
		||||
	SKUList []int64 `json:"sku_list"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type UpdateChatResultFile struct {
 | 
			
		||||
	// File type
 | 
			
		||||
	Mime string `json:"mime"`
 | 
			
		||||
 | 
			
		||||
	// File name
 | 
			
		||||
	Name string `json:"name"`
 | 
			
		||||
 | 
			
		||||
	// File size in bytes
 | 
			
		||||
	Size int64 `json:"size"`
 | 
			
		||||
 | 
			
		||||
	// File URL
 | 
			
		||||
	URL string `json:"url"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type UpdateChatResultUser struct {
 | 
			
		||||
	// Chat participant identifier
 | 
			
		||||
	Id string `json:"id"`
 | 
			
		||||
 | 
			
		||||
	// Chat participant chat:
 | 
			
		||||
	//   - customer
 | 
			
		||||
	//   - seller
 | 
			
		||||
	//   - crm—system messages
 | 
			
		||||
	//   - courier
 | 
			
		||||
	Type string `json:"type"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Update chat
 | 
			
		||||
@@ -338,10 +360,12 @@ type CreateNewChatResponse struct {
 | 
			
		||||
	core.CommonResponse
 | 
			
		||||
 | 
			
		||||
	//Method result
 | 
			
		||||
	Result struct {
 | 
			
		||||
		// Chat identifier
 | 
			
		||||
		ChatId string `json:"chat_id"`
 | 
			
		||||
	} `json:"result"`
 | 
			
		||||
	Result CreateNewChatResult `json:"result"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateNewChatResult struct {
 | 
			
		||||
	// Chat identifier
 | 
			
		||||
	ChatId string `json:"chat_id"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Creates a new chat on the shipment with the customer. For example, to clarify the address or the product model
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user