<mxfile host="docs.ritm.ru" modified="2026-10-07T09:08:30.583Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36" version="24.4.13" etag="TwNp3MbhBnFYEunyQNCD" type="atlas">
  <diagram id="N2HgCACUVNC4dQ--dBqZ" name="Страница — 1">
    <mxGraphModel dx="1709" dy="958" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="ad372NleRwJjEajUz7Bf-1" value="&lt;font color=&quot;#ffffff&quot;&gt;Сервер GEO.RITM&lt;/font&gt;" style="swimlane;whiteSpace=wrap;html=1;rounded=1;shadow=0;fillColor=#004C99;strokeColor=#6c8ebf;gradientColor=none;swimlaneLine=1;swimlaneFillColor=#FAFCFF;" vertex="1" parent="1">
          <mxGeometry x="160" y="370" width="240" height="290" as="geometry">
            <mxRectangle x="160" y="370" width="140" height="30" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-2" value="&lt;b&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Отправка Push (Post / notifications)&lt;/font&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="ad372NleRwJjEajUz7Bf-1">
          <mxGeometry x="10" y="35" width="210" height="145" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;dashed=1;strokeColor=#004C99;" edge="1" parent="ad372NleRwJjEajUz7Bf-1" source="ad372NleRwJjEajUz7Bf-4" target="ad372NleRwJjEajUz7Bf-5">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-4" value="&lt;font color=&quot;#009900&quot;&gt;[&quot;app_id&quot;,&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#009900&quot;&gt;[&quot;player_id&quot;,&lt;br&gt;&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#009900&quot;&gt;[&quot;payload&quot;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;perimeterSpacing=1;strokeColor=#009900;fillColor=#F1FFF0;align=left;" vertex="1" parent="ad372NleRwJjEajUz7Bf-1">
          <mxGeometry x="20" y="90" width="190" height="70" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-5" value="Статус доставки&lt;div&gt;(опциональный webhook)&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="ad372NleRwJjEajUz7Bf-1">
          <mxGeometry x="110" y="190" width="120" height="58" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-6" value="&lt;font color=&quot;#ffffff&quot;&gt;OneSignal&lt;/font&gt;" style="swimlane;whiteSpace=wrap;html=1;rounded=1;shadow=0;fillColor=#C90700;strokeColor=#FFCCCC;gradientColor=none;swimlaneLine=1;swimlaneFillColor=#FFF8F7;" vertex="1" parent="1">
          <mxGeometry x="470" y="370" width="230" height="290" as="geometry">
            <mxRectangle x="160" y="370" width="140" height="30" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="ad372NleRwJjEajUz7Bf-6" source="ad372NleRwJjEajUz7Bf-8" target="ad372NleRwJjEajUz7Bf-9">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-8" value="&lt;span style=&quot;font-size: 14px;&quot;&gt;Проверка запроса&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=0" vertex="1" parent="ad372NleRwJjEajUz7Bf-6">
          <mxGeometry x="10" y="35" width="210" height="35" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-9" value="&lt;span style=&quot;font-size: 14px;&quot;&gt;Сохранение запроса&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=0" vertex="1" parent="ad372NleRwJjEajUz7Bf-6">
          <mxGeometry x="10" y="93" width="210" height="35" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="ad372NleRwJjEajUz7Bf-6" source="ad372NleRwJjEajUz7Bf-12" target="ad372NleRwJjEajUz7Bf-9">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="ad372NleRwJjEajUz7Bf-6" source="ad372NleRwJjEajUz7Bf-12" target="ad372NleRwJjEajUz7Bf-15">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="115" y="210" />
              <mxPoint x="115" y="210" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-12" value="&lt;span style=&quot;font-size: 14px;&quot;&gt;Отправка в FCM/APNs&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=0" vertex="1" parent="ad372NleRwJjEajUz7Bf-6">
          <mxGeometry x="10" y="150" width="210" height="35" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-13" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.diag_round_rect;dx=6;whiteSpace=wrap;" vertex="1" parent="ad372NleRwJjEajUz7Bf-6">
          <mxGeometry x="37" y="206" width="160" height="70" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-14" value="" style="image;html=1;image=img/lib/clip_art/computers/Database_128x128.png" vertex="1" parent="ad372NleRwJjEajUz7Bf-6">
          <mxGeometry x="37" y="216" width="60" height="50" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-15" value="Журналирование + статус доставки" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="ad372NleRwJjEajUz7Bf-6">
          <mxGeometry x="97" y="206" width="95" height="70" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1110" y="515" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-17" value="&lt;font color=&quot;#ffffff&quot;&gt;FCM / APNs&lt;/font&gt;" style="swimlane;whiteSpace=wrap;html=1;rounded=1;shadow=0;fillColor=#FF9933;strokeColor=#FFCCCC;gradientColor=none;swimlaneLine=1;swimlaneFillColor=#FFFAE8;" vertex="1" parent="1">
          <mxGeometry x="790" y="370" width="230" height="290" as="geometry">
            <mxRectangle x="160" y="370" width="140" height="30" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="ad372NleRwJjEajUz7Bf-17" source="ad372NleRwJjEajUz7Bf-21">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="115" y="230" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-19" value="&lt;span style=&quot;font-size: 14px;&quot;&gt;Служба Push&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=0" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="10" y="150" width="210" height="35" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-20" value="&lt;span style=&quot;font-size: 14px;&quot;&gt;Доставка до устройства&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=0" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="10" y="230" width="210" height="35" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-21" value="" style="html=1;verticalLabelPosition=bottom;align=center;labelBackgroundColor=#ffffff;verticalAlign=top;strokeWidth=2;strokeColor=#0080F0;shadow=0;dashed=0;shape=mxgraph.ios7.icons.cloud;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="30" y="30" width="170" height="90" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-22" value="" style="dashed=0;outlineConnect=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.weblogos.apple;fillColor=#1B1C1C;strokeColor=none" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="123.5" y="60" width="42" height="43.2" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-23" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="60" y="70" width="33.2" height="33.2" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-24" value="" style="shape=or;whiteSpace=wrap;html=1;rotation=-90;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="69.72000000000001" y="46" width="13.75" height="31.7" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-25" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="69.72" y="60" width="6" height="6" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-26" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="77.47000000000003" y="60" width="6" height="6" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-27" value="FCM" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="45.72" y="93" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-28" value="APNs" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="ad372NleRwJjEajUz7Bf-17">
          <mxGeometry x="114.5" y="93" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-29" value="&lt;font color=&quot;#ffffff&quot;&gt;FCM / APNs&lt;/font&gt;" style="swimlane;whiteSpace=wrap;html=1;rounded=1;shadow=0;fillColor=#003600;strokeColor=#FFCCCC;gradientColor=none;swimlaneLine=1;swimlaneFillColor=#DFE8DF;" vertex="1" parent="1">
          <mxGeometry x="1113" y="370" width="230" height="290" as="geometry">
            <mxRectangle x="160" y="370" width="140" height="30" as="alternateBounds" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-30" value="" style="image;sketch=0;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/mscae/Mobile_Engagement.svg;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="74.88000000000011" y="32" width="80.24" height="118" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-31" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="29.160000000000082" y="184" width="33.2" height="33.2" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-32" value="" style="shape=or;whiteSpace=wrap;html=1;rotation=-90;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="38.88000000000011" y="160" width="13.75" height="31.7" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-33" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="38.88000000000011" y="174" width="6" height="6" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-34" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="46.63000000000011" y="174" width="6" height="6" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-35" value="Android (FCM)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="74.88" y="180" width="107" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-36" value="" style="dashed=0;outlineConnect=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.weblogos.apple;fillColor=#1B1C1C;strokeColor=none" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="24.75999999999999" y="230" width="42" height="43.2" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-37" value="iOS (APNs)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="62.36" y="230" width="115" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-38" value="" style="html=1;verticalLabelPosition=bottom;align=center;labelBackgroundColor=#ffffff;verticalAlign=top;strokeWidth=2;strokeColor=#0080F0;shadow=0;dashed=0;shape=mxgraph.ios7.icons.bell;fillColor=#FF0000;rotation=15;" vertex="1" parent="ad372NleRwJjEajUz7Bf-29">
          <mxGeometry x="116" y="52" width="24" height="23.099999999999998" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-39" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#67AB9F;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="450" as="sourcePoint" />
            <mxPoint x="470" y="450" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-40" value="HTTPS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#67AB9F;" vertex="1" parent="1">
          <mxGeometry x="400" y="420" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-41" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;strokeColor=#004C99;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="470" y="530" as="sourcePoint" />
            <mxPoint x="390" y="530" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-42" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="700" y="450" as="sourcePoint" />
            <mxPoint x="790" y="450" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-43" value="HTTPS" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="710" y="450" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-44" value="Отправка Push" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="710" y="420" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-45" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;strokeColor=#004C99;" edge="1" parent="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="790" y="570" as="sourcePoint" />
            <mxPoint x="700" y="570" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-46" value="Результат доставки" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="720" y="532" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-47" value="&lt;font color=&quot;#666666&quot;&gt;(Успешно/ошибка)&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="720" y="576" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-48" value="Оповещение Push" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
          <mxGeometry x="1030" y="480" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;dashed=1;strokeColor=#004C99;endArrow=none;endFill=0;" edge="1" parent="1" source="ad372NleRwJjEajUz7Bf-20" target="ad372NleRwJjEajUz7Bf-15">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="905" y="690" />
              <mxPoint x="591" y="690" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="ad372NleRwJjEajUz7Bf-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.429;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#004C99;dashed=1;" edge="1" parent="1" source="ad372NleRwJjEajUz7Bf-13" target="ad372NleRwJjEajUz7Bf-2">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="590" y="690" />
              <mxPoint x="260" y="690" />
            </Array>
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
