package dto

// Buyer address request
type CreateBuyerAddressRequest struct {
	// Buyer address
	Label         string `json:"label"`
	Phone         string `json:"phone"`
	RecipientName string `json:"recipientName"`
	IsDefault     bool   `json:"isDefault"`
	// Address
	CountryCode         string  `json:"countryCode" validate:"required"`
	Address1            string  `json:"address1" validate:"required"`
	Address2            string  `json:"address2"`
	PostalCode          string  `json:"postalCode"`
	UnitNumber          string  `json:"unitNumber"`
	SubLevelLocationIDs []int64 `json:"subLevelLocationIds"`
}

type UpdateBuyerAddressRequest struct {
	// Buyer address
	ID            int64  `uri:"id"`
	Label         string `json:"label"`
	Phone         string `json:"phone"`
	IsDefault     bool   `json:"isDefault"`
	RecipientName string `json:"recipientName"`
	// Address
	Address1            string  `json:"address1" validate:"required"`
	Address2            string  `json:"address2"`
	PostalCode          string  `json:"postalCode"`
	UnitNumber          string  `json:"unitNumber"`
	SubLevelLocationIDs []int64 `json:"subLevelLocationIds"`
	Deactivate          bool    `json:"deactivate"`
}

type DeleteBuyerAddressRequest struct {
	ID int64 `uri:"id"`
}

type GetBuyerAddressByIDRequest struct {
	ID int64 `uri:"id"`
}

type BuyerAddressResponse struct {
	ID            int64   `json:"id"`
	Address       Address `json:"address"`
	Label         string  `json:"label"`
	RecipientName string  `json:"recipientName"`
	Phone         string  `json:"phone"`
	IsDefault     bool    `json:"isDefault"`
}

type BuyerAddressArrayResponse struct {
	Data []*BuyerAddressResponse `json:"data"`
}
