package hostorg

type listQuery struct {
	Page               int
	PageSize           int
	Keyword            string
	Status             string
	RegionID           int64
	AgencyID           int64
	ParentBDUserID     int64
	ParentLeaderUserID int64
}

type createBDLeaderRequest struct {
	CommandID    string `json:"commandId" binding:"required"`
	TargetUserID int64  `json:"targetUserId" binding:"required"`
	RegionID     int64  `json:"regionId" binding:"required"`
	Reason       string `json:"reason"`
}

type createBDRequest struct {
	CommandID          string `json:"commandId" binding:"required"`
	TargetUserID       int64  `json:"targetUserId" binding:"required"`
	ParentLeaderUserID int64  `json:"parentLeaderUserId" binding:"required"`
	Reason             string `json:"reason"`
}

type bdStatusRequest struct {
	CommandID string `json:"commandId" binding:"required"`
	Status    string `json:"status" binding:"required"`
	Reason    string `json:"reason"`
}

type createCoinSellerRequest struct {
	CommandID    string `json:"commandId" binding:"required"`
	Contact      string `json:"contact"`
	TargetUserID int64  `json:"targetUserId" binding:"required"`
	Reason       string `json:"reason"`
}

type coinSellerStatusRequest struct {
	CommandID string  `json:"commandId" binding:"required"`
	Contact   *string `json:"contact"`
	Status    string  `json:"status" binding:"required"`
	Reason    string  `json:"reason"`
}

type coinSellerStockCreditRequest struct {
	CommandID      string `json:"commandId" binding:"required"`
	Type           string `json:"type" binding:"required"`
	CoinAmount     int64  `json:"coinAmount" binding:"required"`
	RechargeAmount string `json:"rechargeAmount"`
	PaymentRef     string `json:"paymentRef"`
	EvidenceRef    string `json:"evidenceRef"`
	Reason         string `json:"reason"`
}

type createAgencyRequest struct {
	CommandID      string `json:"commandId" binding:"required"`
	OwnerUserID    int64  `json:"ownerUserId" binding:"required"`
	ParentBDUserID int64  `json:"parentBdUserId" binding:"required"`
	Name           string `json:"name" binding:"required"`
	JoinEnabled    *bool  `json:"joinEnabled" binding:"required"`
	MaxHosts       int32  `json:"maxHosts"`
	Reason         string `json:"reason"`
}

type agencyJoinEnabledRequest struct {
	CommandID   string `json:"commandId" binding:"required"`
	JoinEnabled *bool  `json:"joinEnabled" binding:"required"`
	Reason      string `json:"reason"`
}

type agencyCloseRequest struct {
	CommandID string `json:"commandId" binding:"required"`
	Reason    string `json:"reason"`
}
