/* Clear Mint — Settings · Data Management (erase by module + Full Reset).
   window.DataEraseSection. Clears live CM.S data (persists via cm-sync). */
(function(){
  const I = window.CMIcon || {};
  const RD='#C35B5B', G='#10915F';
  const MODS = [
    { label:'Transactions', keys:['bankTx','ccTx'] },
    { label:'Bank Accounts', keys:['accounts'] },
    { label:'Credit Cards', keys:['cards'] },
    { label:'Credit Card Statements', keys:['ccStatements'] },
    { label:'Investments', keys:['investments','investmentAccounts'] },
    { label:'Insurance', keys:['insurance'] },
    { label:'Bills & Expenses', keys:['bills'] },
    { label:'Subscriptions', keys:['subscriptions'] },
    { label:'Assets & Vehicles', keys:['assets'] },
    { label:'Loans & Mortgages', keys:['liabilities'] },
    { label:'Goals', keys:['goals'] },
    { label:'Family Vault', keys:['vault','family'] },
    { label:'Reports', keys:['savedReports'] },
  ];
  function DataEraseSection(){
    const CM = window.useStore ? window.useStore() : window.CM;
    if(!CM || !CM.S) return null;
    const count = m => m.keys.reduce((s,k)=> s + ((CM.S[k]||[]).length||0), 0);
    const clearMod = m => {
      if(!window.confirm('Erase all '+m.label+' data? This cannot be undone.')) return;
      CM.mutate(function(){ m.keys.forEach(function(k){ CM.S[k] = []; }); });
    };
    const fullReset = () => {
      if(!window.confirm('FULL RESET: permanently erase ALL your Clear Mint data — accounts, transactions, cards, statements, investments, bills, subscriptions, assets, loans, reports and balances?')) return;
      if(!window.confirm('Are you absolutely sure? Type-safe second confirmation. This cannot be undone.')) return;
      CM.mutate(function(){ if(window.CM_SEED){ window.CM_SEED(CM.S); } else { ['bankTx','ccTx','accounts','cards','ccStatements','investments','investmentAccounts','insurance','bills','subscriptions','assets','liabilities','goals','vault','family','savedReports','earnings','budgets','nwHistory','payStatements','_importBatches'].forEach(function(k){ CM.S[k]=[]; }); } });
      try{ alert('All data has been reset.'); }catch(e){}
    };
    return (
      <window.ChartCard title="Data Management" className="cm-mb-24">
        <div className="t-caption" style={{marginTop:-6,marginBottom:14}}>Erase imported data by module, or reset your entire account. Useful before going live or sharing a device. Actions require confirmation and cannot be undone.</div>
        <div style={{display:'grid',gridTemplateColumns:'repeat(auto-fill,minmax(220px,1fr))',gap:10}}>
          {MODS.map(function(m,i){ const c=count(m); return (
            <div key={i} style={{display:'flex',alignItems:'center',gap:10,padding:'12px 14px',border:'1px solid var(--line)',borderRadius:12}}>
              <div style={{flex:1,minWidth:0}}><div className="t-h3" style={{fontSize:13.5}}>{m.label}</div><div className="t-caption" style={{fontSize:11.5}}>{c} record{c===1?'':'s'}</div></div>
              <button onClick={()=>clearMod(m)} disabled={!c} style={{border:'1px solid '+(c?RD+'55':'var(--line)'),background:c?RD+'10':'transparent',color:c?RD:'var(--ink-400)',borderRadius:9,padding:'6px 12px',fontSize:12,fontWeight:700,cursor:c?'pointer':'default',fontFamily:'inherit'}}>Clear</button>
            </div>
          ); })}
        </div>
        <div style={{marginTop:16,padding:'16px 18px',border:'1px solid '+RD+'33',background:RD+'08',borderRadius:14,display:'flex',alignItems:'center',gap:14,flexWrap:'wrap'}}>
          <span style={{width:38,height:38,borderRadius:11,background:RD+'18',color:RD,display:'flex',alignItems:'center',justifyContent:'center'}}><I.Alert size={19}/></span>
          <div style={{flex:1,minWidth:200}}><div className="t-h3" style={{fontSize:14.5,color:RD}}>Full Reset Account</div><div className="t-caption">Permanently deletes all your data and zeroes every balance. Empty states return everywhere.</div></div>
          <button onClick={fullReset} style={{background:RD,color:'#fff',border:0,borderRadius:10,padding:'10px 18px',fontSize:13,fontWeight:800,cursor:'pointer',fontFamily:'inherit'}}>Reset All Data</button>
        </div>
      </window.ChartCard>
    );
  }
  window.DataEraseSection = DataEraseSection;
})();
