File: //proc/thread-self/root/tmp/360live-create-test-client.cjs
const fs=require('fs');
function loadEnv(p){if(!fs.existsSync(p)) return; for(const line of fs.readFileSync(p,'utf8').split(/\r?\n/)){const t=line.trim(); if(!t||t.startsWith('#')||!t.includes('=')) continue; const [k,...r]=t.split('='); if(process.env[k.trim()]===undefined) process.env[k.trim()]=r.join('=').trim().replace(/^['"]|['"]$/g,'')}}
loadEnv('/home/360live.stream/services/api/.env');
const apiUrl=process.env.HOSTBILL_API_URL, api_id=process.env.HOSTBILL_API_ID, api_key=process.env.HOSTBILL_API_SECRET;
const stamp=new Date().toISOString().replace(/[-:.TZ]/g,'').slice(0,14);
const email=`360live-entitlement-test-${stamp}@360live.stream`;
const password=`T-${stamp}-${Math.random().toString(36).slice(2,10)}aA1!`;
async function call(call, extra){const body=new URLSearchParams({api_id,api_key,call,...extra}); const r=await fetch(apiUrl,{method:'POST',headers:{'content-type':'application/x-www-form-urlencoded'},body}); const txt=await r.text(); let j=null; try{j=JSON.parse(txt)}catch{} return {status:r.status,json:j,text:txt};}
(async()=>{
const out={generated_at:new Date().toISOString(), ok:false, call:'addClient', created:false, client_id:null, email_redacted:email.replace(/^[^@]+/,'[test-client]'), notifyclient:'no', revenue_claim:false, error:null};
try{
const res=await call('addClient',{email,password,password2:password,firstname:'360live',lastname:'Entitlement Test',companyname:'360live.stream entitlement test - no revenue',notifyclient:'no',type:'Company',country:'DE',status:'Active',brand:'Panomity GmbH'});
out.status=res.status; out.success=Boolean(res.json?.success); out.client_id=res.json?.client_id?String(res.json.client_id):null; out.created=Boolean(out.client_id); out.ok=Boolean(out.client_id); if(!out.ok) out.error=String(res.json?.error||res.json?.info||res.text||'addClient_failed').slice(0,240);
}catch(e){out.error=e.message||String(e)}
fs.writeFileSync('/home/360live.stream/var/growth/latest-hostbill-test-client.json', JSON.stringify(out,null,2)+'\n','utf8');
console.log(JSON.stringify({ok:out.ok,created:out.created,client_id:out.client_id,email_redacted:out.email_redacted,notifyclient:out.notifyclient,revenue_claim:out.revenue_claim,error:out.error},null,2));
process.exit(out.ok?0:1);
})();