/**
 * SessionWriter — 用于 channel='' 的服务端执行模式
 *
 * 接口对齐 WebhookWriter：.send(data) / .setSessionId(id) / .getSessionId()
 *
 * 目的：让 queryClaudeSDK 在服务端以新建或 resume 会话方式执行定时任务，
 * Claude SDK 自动将对话存入会话历史，用户登录后可通过正常会话列表查看。
 * 本 Writer 不向任何外部系统投递结果。
 */
export class SessionWriter {
  constructor({ cronId }) {
    this._cronId = cronId;
    this._sessionId = null;
  }

  send(data) {
    try {
      const obj = typeof data === 'string' ? JSON.parse(data) : data;
      if (obj.type === 'claude-complete') {
        console.log(`[CronSession] Task ${this._cronId} completed, sessionId=${this._sessionId}`);
      } else if (obj.type === 'claude-error') {
        console.error(`[CronSession] Task ${this._cronId} error:`, obj.error);
      }
    } catch (_) {}
  }

  setSessionId(id) { this._sessionId = id; }
  getSessionId() { return this._sessionId; }
}
