{"version":3,"sources":["../../../src/chat-config/value-objects/_screen-rule.ts"],"sourcesContent":["import type { CreateScreenRuleDTO } from '../contracts';\n\nconst clonePayload = (payload: CreateScreenRuleDTO): CreateScreenRuleDTO => ({\n  name: payload.name,\n  action: 'screen',\n  settings: {\n    ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n    ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n  },\n});\n\n/** Value object representing a complete screen-rule payload. */\nexport class ScreenRuleVO {\n  readonly payload: CreateScreenRuleDTO;\n\n  /**\n   * Creates a screen-rule value object from a complete payload.\n   * @param payload - The screen-rule payload to snapshot.\n   */\n  constructor(payload: CreateScreenRuleDTO) {\n    this.payload = clonePayload(payload);\n  }\n\n  /**\n   * Creates a value object from its JSON representation.\n   * @param payload - The screen-rule JSON payload.\n   * @returns A screen-rule value object containing a defensive snapshot.\n   */\n  static fromJSON(payload: CreateScreenRuleDTO): ScreenRuleVO {\n    return new ScreenRuleVO(payload);\n  }\n\n  /**\n   * Converts a screen-rule value object to JSON.\n   * @param screenRuleVO - The screen-rule value object to serialize.\n   * @returns A defensive copy of the screen-rule payload.\n   */\n  static toJSON(screenRuleVO: ScreenRuleVO): CreateScreenRuleDTO {\n    return clonePayload(screenRuleVO.payload);\n  }\n}\n"],"mappings":";AAEA,IAAM,eAAe,CAAC,aAAuD;AAAA,EAC3E,MAAM,QAAQ;AAAA,EACd,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,GAAI,QAAQ,SAAS,WAAW,SAAY,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,OAAO,EAAE,IAAI,CAAC;AAAA,IAC1F,GAAI,QAAQ,SAAS,SAAS,SAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,SAAS,KAAK,EAAE,IAAI,CAAC;AAAA,EACtF;AACF;AAGO,IAAM,eAAN,MAAM,cAAa;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,SAA8B;AACxC,SAAK,UAAU,aAAa,OAAO;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,SAAS,SAA4C;AAC1D,WAAO,IAAI,cAAa,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,OAAO,cAAiD;AAC7D,WAAO,aAAa,aAAa,OAAO;AAAA,EAC1C;AACF;","names":[]}