import json,urllib.request,urllib.error,uuid
class GFPickAgentClient:
 def __init__(self,base_url='https://gfpick-agent-api.vercel.app'): self.base_url=base_url.rstrip('/')
 def call(self,path,body,payment_signature=None,referral_code=None):
  h={'Content-Type':'application/json','X-Request-ID':str(uuid.uuid4())}
  if payment_signature:h['PAYMENT-SIGNATURE']=payment_signature
  if referral_code:h['X-Referral-Code']=referral_code
  q=urllib.request.Request(self.base_url+path,data=json.dumps(body).encode(),headers=h,method='POST')
  try:
   with urllib.request.urlopen(q) as r:return r.status,json.loads(r.read()),dict(r.headers)
  except urllib.error.HTTPError as e:return e.code,json.loads(e.read()),dict(e.headers)
 def free_profit_check(self,body): return self.call('/free/gcc-profit-check',body)
 def sa_landed_cost(self,body,payment_signature=None): return self.call('/v1/sa/landed-cost',body,payment_signature)
 def opportunity_score(self,body,payment_signature=None): return self.call('/v1/gcc/opportunity-score',body,payment_signature)
