package dto

// Response
type Courier struct {
	ID         int64  `json:"id"`
	Name       string `json:"name"`
	CountryID  int64  `json:"country_id"`
	Deactivate bool   `json:"deactivate"`
	Type       int64  `json:"type"`
	Code       string `json:"code"`
}

type GetCouriersResponse struct {
	Data []*Courier `json:"data"`
}

type GetCourierResponse struct {
	ID         int64  `json:"id"`
	Name       string `json:"name"`
	CountryID  int64  `json:"country_id"`
	Deactivate bool   `json:"deactivate"`
	Type       int64  `json:"type"`
	Code       string `json:"code"`
}

// Request
type GetCourierRequest struct {
	CourierID int64 `uri:"id"`
}

type GetCouriersRequest struct {
	Deactivate  bool   `form:"deactivate"`
	CountryID   int64  `form:"countryId"`
	CountryCode string `form:"countryCode"`
}

type CreateCourierRequest struct {
	Deactivate bool   `json:"deactivate"`
	CountryID  int64  `json:"countryId"`
	Name       string `json:"name"`
	Type       int64  `json:"type"`
	Code       string `json:"code"`
}

type CreateCourierResponse struct {
	Data *Courier `json:"data"`
}

type UpdateCourierRequest struct {
	ID         int64  `uri:"id" swaggerignore:"true"`
	Deactivate bool   `json:"deactivate"`
	CountryID  int64  `json:"countryId"`
	Name       string `json:"name"`
	Type       int64  `json:"type"`
	Code       string `json:"code"`
}

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

type GetLinkAccountUrlRequest struct {
	CourierID int64 `uri:"id"`
}

type GetLinkAccountUrlResponse struct {
	SellerCourierID int64  `json:"sellerCourierId"`
	LinkAccountUrl  string `json:"linkAccountUrl"`
}
