diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index da4446e..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/404.html b/404.html index 3c5b982..8161dba 100644 --- a/404.html +++ b/404.html @@ -5,14 +5,14 @@ -Page Not Found | Laravel Chat System - - +Page Not Found | Laravel Chat System + +
-
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/assets/css/styles.3df740eb.css b/assets/css/styles.3df740eb.css new file mode 100644 index 0000000..2951005 --- /dev/null +++ b/assets/css/styles.3df740eb.css @@ -0,0 +1,25 @@ +.row .col,img{max-width:100%}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.react-toggle{-webkit-user-select:none}.admonition-icon,.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.navbar__title,.text--truncate{text-overflow:ellipsis;white-space:nowrap}.button,.dropdown__link,.navbar__title,.text--truncate{white-space:nowrap}.button,.clean-btn,.close,.menu__link,.navbar__link{cursor:pointer}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.footer__items,.menu__list,.pills__item{list-style-type:none}.tabs__item,hr,img{box-sizing:initial}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.react-toggle,html{-webkit-tap-highlight-color:transparent}:root{--ra-admonition-background-color:var(--ifm-alert-background-color);--ra-admonition-border-width:var(--ifm-alert-border-width);--ra-admonition-border-color:var(--ifm-alert-border-color);--ra-admonition-border-radius:var(--ifm-alert-border-radius);--ra-admonition-color:var(--ifm-alert-color);--ra-admonition-padding-vertical:var(--ifm-alert-padding-vertical);--ra-admonition-padding-horizontal:var(--ifm-alert-padding-horizontal);--ra-color-note:var(--ifm-color-secondary);--ra-color-important:var(--ifm-color-info);--ra-color-tip:var(--ifm-color-success);--ra-color-caution:var(--ifm-color-warning);--ra-color-warning:var(--ifm-color-danger);--ra-color-text-dark:var(--ifm-color-gray-900)}.admonition{margin-bottom:1em;--ra-admonition-icon-color:var(--ra-admonition-color)}.admonition:not(.alert){--ra-admonition-background-color:var(--ifm-color-primary);background-color:var(--ra-admonition-background-color);border:var(--ra-admonition-border-width) solid var(--ra-admonition-border-color);border-radius:var(--ra-admonition-border-radius);box-sizing:border-box;color:var(--ra-admonition-color);padding:var(--ra-admonition-padding-vertical) var(--ra-admonition-padding-horizontal)}.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.admonition h5{margin-bottom:8px;margin-top:0;text-transform:uppercase}.admonition-icon{display:inline-block;margin-right:.2em}.admonition-icon svg{stroke-width:0;fill:var(--ra-admonition-icon-color);stroke:var(--ra-admonition-icon-color);display:inline-block;height:22px;width:22px}.admonition-content>:last-child,blockquote>:last-child{margin-bottom:0}.admonition-note{--ra-admonition-color:var(--ra-color-text-dark)}:root{--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-color-primary:#3578e5;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-secondary:#ebedf0;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-success:#00a400;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-info:#54c7ec;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-warning:#ffba00;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-danger:#fa383e;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:2;--ifm-z-index-fixed:3;--ifm-z-index-overlay:4;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#0000000d;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.3rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-color-emphasis-100);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:inherit;--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:var(--ifm-color-emphasis-100);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-color:#6a737d;--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-padding-horizontal:1rem;--ifm-blockquote-padding-vertical:1rem;--ifm-hr-border-color:var(--ifm-color-emphasis-500);--ifm-hr-border-width:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:#888;--ifm-scrollbar-thumb-hover-background-color:#555;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:var(--ifm-global-border-width);--ifm-alert-color:var(--ifm-font-color-base-inverse);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size-sm:2rem;--ifm-avatar-photo-size-md:3rem;--ifm-avatar-photo-size-lg:4rem;--ifm-avatar-photo-size-xl:6rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.0625rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:1rem;--ifm-breadcrumb-padding-vertical:0.5rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-margin:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:1rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:80vw;--ifm-pagination-border-radius:calc(var(--ifm-global-radius)*var(--ifm-pagination-size-multiplier));--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.0625rem;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-size-multiplier:1;--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.0625rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-tabs-spacing:0.0625rem;--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#46cbae;--ifm-color-primary-lighter:#66d4bd;--ifm-color-primary-lightest:#92e0d0;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--collapse-button-bg-color-dark:#2e333a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}.navbar--dark,.navbar--primary{--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}.container{margin:0 auto;max-width:var(--ifm-container-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.container--fluid{max-width:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.markdown>:first-child{margin-top:0!important}.row .col{--ifm-col-width:100%;flex:1 0;margin-left:0}.row .col.col--1,.row .col.col--2,.row .col.col--3,.row .col[class*=col--]{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--1{--ifm-col-width:8.33333%}.row .col.col--offset-1{margin-left:8.33333%}.row .col.col--2{--ifm-col-width:16.66667%}.row .col.col--offset-2{margin-left:16.66667%}.row .col.col--3{--ifm-col-width:25%}.row .col.col--offset-3{margin-left:25%}.row .col.col--4{--ifm-col-width:33.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-4{margin-left:33.33333%}.row .col.col--5{--ifm-col-width:41.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--6,.row .col.col--7{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-5{margin-left:41.66667%}.row .col.col--6{--ifm-col-width:50%}.row .col.col--offset-6{margin-left:50%}.row .col.col--7{--ifm-col-width:58.33333%}.row .col.col--offset-7{margin-left:58.33333%}.row .col.col--8{--ifm-col-width:66.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-8{margin-left:66.66667%}.row .col.col--9{--ifm-col-width:75%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--10,.row .col.col--11{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-9{margin-left:75%}.row .col.col--10{--ifm-col-width:83.33333%}.row .col.col--offset-10{margin-left:83.33333%}.row .col.col--11{--ifm-col-width:91.66667%}.row .col.col--offset-11{margin-left:91.66667%}.row .col.col--12{--ifm-col-width:100%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-12{margin-left:100%}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{border-style:none}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before,hr:after,hr:before{content:"";display:table}.markdown:after,hr:after{clear:both}.markdown>h1{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h1-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.codeBlockContainer_J\+bg,.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical);width:100%}.avatar__photo,.card,.text--truncate,hr{overflow:hidden}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.breadcrumbs__link:hover,.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:6px solid var(--ifm-color-emphasis-300);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}hr{border-color:var(--ifm-hr-border-color);border-style:solid;border-width:var(--ifm-hr-border-width);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.sidebarItemLinkActive_wcJs,.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;padding:0}.alert,.alert a{color:var(--ifm-alert-color)}.alert{background-color:var(--ifm-alert-background-color);border-color:var(--ifm-alert-border-color);border-radius:var(--ifm-alert-border-radius);border-style:solid;border-width:var(--ifm-alert-border-width);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary);--ifm-alert-border-color:var(--ifm-color-primary)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary);--ifm-alert-border-color:var(--ifm-color-secondary);--ifm-alert-color:var(--ifm-color-gray-900)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success);--ifm-alert-border-color:var(--ifm-color-success)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info);--ifm-alert-border-color:var(--ifm-color-info)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning);--ifm-alert-border-color:var(--ifm-color-warning)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger);--ifm-alert-border-color:var(--ifm-color-danger)}.alert a{text-decoration:underline}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0}.avatar,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.avatar__photo-link{display:block}.avatar__photo{border-radius:50%;height:var(--ifm-avatar-photo-size-md);width:var(--ifm-avatar-photo-size-md)}.avatar__photo--sm{height:var(--ifm-avatar-photo-size-sm);width:var(--ifm-avatar-photo-size-sm)}.avatar__photo--lg{height:var(--ifm-avatar-photo-size-lg);width:var(--ifm-avatar-photo-size-lg)}.avatar__photo--xl{height:var(--ifm-avatar-photo-size-xl);width:var(--ifm-avatar-photo-size-xl)}.avatar__photo+.avatar__intro{margin-left:var(--ifm-avatar-intro-margin)}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.menu__link--sublist:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.avatar--vertical .avatar__intro{margin-left:0}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:first-child){margin-left:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child){margin-right:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 .5rem;opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__item--active .breadcrumbs__link,.breadcrumbs__item:not(.breadcrumbs__item--active):hover .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border-color:var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);border-style:solid;border-width:var(--ifm-button-border-width);font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover),.sidebarItemLink_zyXk{color:var(--ifm-font-color-base)}.button--primary{--ifm-button-border-color:var(--ifm-color-primary)}.button--primary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-primary)}.button--primary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-border-color:var(--ifm-color-primary-darker);--ifm-button-background-color:var(--ifm-color-primary-darker);background-color:var( + --ifm-color-primary-darker + );border-color:var( + --ifm-color-primary-darker + )}.button--secondary{--ifm-button-border-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-border-color:var(--ifm-color-secondary-darker);--ifm-button-background-color:var(--ifm-color-secondary-darker);background-color:var( + --ifm-color-secondary-darker + );border-color:var( + --ifm-color-secondary-darker + )}.button--success{--ifm-button-border-color:var(--ifm-color-success)}.button--success:not(.button--outline){--ifm-button-background-color:var(--ifm-color-success)}.button--success:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-border-color:var(--ifm-color-success-darker);--ifm-button-background-color:var(--ifm-color-success-darker);background-color:var( + --ifm-color-success-darker + );border-color:var( + --ifm-color-success-darker + )}.button--info{--ifm-button-border-color:var(--ifm-color-info)}.button--info:not(.button--outline){--ifm-button-background-color:var(--ifm-color-info)}.button--info:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-border-color:var(--ifm-color-info-darker);--ifm-button-background-color:var(--ifm-color-info-darker);background-color:var( + --ifm-color-info-darker + );border-color:var( + --ifm-color-info-darker + )}.button--warning{--ifm-button-border-color:var(--ifm-color-warning)}.button--warning:not(.button--outline){--ifm-button-background-color:var(--ifm-color-warning)}.button--warning:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-border-color:var(--ifm-color-warning-darker);--ifm-button-background-color:var(--ifm-color-warning-darker);background-color:var( + --ifm-color-warning-darker + );border-color:var( + --ifm-color-warning-darker + )}.button--danger{--ifm-button-border-color:var(--ifm-color-danger)}.button--danger:not(.button--outline){--ifm-button-background-color:var(--ifm-color-danger)}.button--danger:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-border-color:var(--ifm-color-danger-darker);--ifm-button-background-color:var(--ifm-color-danger-darker);background-color:var( + --ifm-color-danger-darker + );border-color:var( + --ifm-color-danger-darker + )}.button-group{display:inline-flex}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:var(--ifm-button-group-margin)}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group>.button--active{z-index:1}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card--full-height,body,html{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style-type:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color)}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{background:none;border:none;color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__menu,.menu__link,.menu__link:hover{transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;transform:translateY(0);visibility:visible}.dropdown--right .dropdown__menu{right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);list-style:none;max-height:calc(100vh - var(--ifm-navbar-height));min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:100%;transform:translateY(-10px);transition-property:opacity,transform,visibility;visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:10rem}.docItemContainer_oiyr header+*,.footer__item,.pills__item+.pills__item{margin-top:0}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__items{margin-bottom:0;padding-left:0}[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.blogPostTitle_d4p0,.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0}.menu__list .menu__list{margin-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item{margin-top:.25rem}.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__link{border-radius:.25rem;display:flex;justify-content:space-between;line-height:1.25;padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal);position:relative}.menu__link,.menu__link:hover{color:var(--ifm-menu-color);transition-property:color,background}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-timing-function:ease-in-out;visibility:hidden;left:0;top:0}.menu__link:hover{background:var(--ifm-menu-color-background-hover);text-decoration:none}.menu__link--sublist:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;content:" ";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;min-width:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background:var(--ifm-menu-color-background-active)}.menu--responsive .menu__button{bottom:2rem;display:none;position:fixed;right:1rem;z-index:var(--ifm-z-index-fixed)}.menu--show{background:var(--ifm-background-surface-color);bottom:0;left:0;overscroll-behavior:contain;padding:1rem;position:fixed;right:0;top:0;z-index:var(--ifm-z-index-overlay)}.menu--show .menu__list{display:inherit;opacity:1;transition:opacity var(--ifm-transition-fast) linear}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal);width:100%}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;font-weight:700;height:2rem;margin-right:1rem;min-width:0}.navbar__brand:hover{color:inherit;text-decoration:none}.navbar__title{flex:1 1 auto;overflow:hidden}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{height:100%;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.codeBlock_rtdJ,.navbar__item.dropdown{padding:0}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{font-weight:var(--ifm-font-weight-semibold);padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal);position:relative;text-decoration:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-color:var(--ifm-color-white);--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-toggle-color:var(--ifm-color-white)}.navbar--dark .navbar__toggle{color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);overflow:auto;position:fixed;transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translateZ(0)}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.pagination__item,.pagination__link{display:inline-block}.navbar-sidebar__items{padding:.5rem}.pagination{font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item:not(:first-child){margin-left:var(--ifm-pagination-page-spacing)}.pagination__item:not(:last-child){margin-right:var(--ifm-pagination-page-spacing)}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_zyXk:hover{text-decoration:none}.docs-wrapper,.pagination-nav{display:flex}.pagination-nav__item{display:flex;flex:1 50%;max-width:50%}.pagination-nav__item--next{text-align:right}.pagination-nav__item+.pagination-nav__item{margin-left:var(--ifm-spacing-horizontal)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);flex-grow:1;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills,.sidebarMenuCloseIcon_6kU2,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background-color:var(--ifm-pills-color-background-active)}.pills__item:not(:first-child){margin-left:var(--ifm-pills-spacing)}.pills__item:not(:last-child){margin-right:var(--ifm-pills-spacing)}.pills--block{display:flex;justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;margin:0;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#18191a;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:#0000004d}#nprogress .bar{background:#29d;height:2px;left:0;position:fixed;top:0;width:100%;z-index:5}#nprogress .peg{box-shadow:0 0 10px #29d,0 0 5px #29d;height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}#docusaurus-base-url-issue-banner-container,.collapseSidebarButton_eoK2,.sidebarLogo_hmkv,.themedImage_TMUO,html[data-announcement-bar-initially-dismissed=true] .announcementBar_axC9{display:none}.skipToContent_OuoZ{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_OuoZ:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.announcementBar_axC9{background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);height:var(--docusaurus-announcement-bar-height);position:relative;width:100%}.announcementBarClose_A3A1{font-size:1.25rem;height:100%;position:absolute;right:0;top:0;width:55px}.announcementBarContent_6uhP{font-size:85%;padding:5px 0;text-align:center;width:100%}.announcementBarCloseable_y4cp{margin-right:55px}.announcementBarContent_6uhP a{color:inherit;text-decoration:underline}.react-toggle{cursor:pointer;position:relative;touch-action:pan-x;user-select:none}.react-toggle-screenreader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed}.react-toggle-track{background-color:#4d4d4d;border-radius:30px;height:24px;transition:.2s;width:50px}.react-toggle-track-check,.react-toggle-track-x{bottom:0;height:10px;margin:auto 0;top:0;position:absolute}.react-toggle-track-check{left:8px;opacity:0;transition:opacity .25s;width:14px}.react-toggle--checked .react-toggle-track-check,.react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-check{opacity:1;transition:opacity .25s}.react-toggle-track-x{right:10px;width:10px}.react-toggle--checked .react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-x{opacity:0}.react-toggle-thumb{background-color:#fafafa;border:1px solid #4d4d4d;border-radius:50%;height:22px;left:1px;position:absolute;top:1px;transition:.25s;width:22px}.react-toggle--checked .react-toggle-thumb,[data-theme=dark] .react-toggle .react-toggle-thumb{left:27px}.react-toggle--focus .react-toggle-thumb,.react-toggle:hover .react-toggle-thumb{box-shadow:0 0 2px 3px var(--ifm-color-primary)}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{box-shadow:0 0 5px 5px var(--ifm-color-primary)}.toggle_iYfV{align-items:center;display:flex;height:10px;justify-content:center;width:10px}.toggle_iYfV:before{position:absolute}.iconExternalLink_wgqa{margin-left:.3rem;position:relative;top:1px}html[data-theme=dark] .themedImage--dark_uzRr,html[data-theme=light] .themedImage--light_4Vu1{display:initial}.navbarHideable_RReh{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_FBwS{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_SRtH{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.codeBlockContent_csEI:hover>.copyButton_M3SB,.codeBlockTitle_oQzk:hover+.codeBlockContent_csEI .copyButton_M3SB,.copyButton_M3SB:focus,.footerLogoLink_SRtH:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.main-wrapper{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}.sidebarMenuIcon_iZzd{vertical-align:middle}.sidebarMenuCloseIcon_6kU2{align-items:center;display:inline-flex;font-size:1.5rem;height:24px;justify-content:center;line-height:.9;width:24px}.menu__list .menu__list{overflow-y:hidden;transition:height var(--ifm-transition-fast) linear;will-change:height}.menu__list-item--collapsed .menu__list{overflow:hidden;height:0!important}.codeBlockContent_csEI{direction:ltr;position:relative}.codeBlockTitle_oQzk{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:var(--ifm-global-radius);border-top-right-radius:var(--ifm-global-radius);font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockWithTitle_ZT05{border-top-left-radius:0;border-top-right-radius:0}.copyButton_M3SB{background:#0000004d;border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);opacity:0;padding:.4rem .5rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out;-webkit-user-select:none;user-select:none}.codeBlockLines_1zSZ{display:flex;flex-direction:column;float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.heroBanner_4JBe{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_TK4-,.mdxPageWrapper_eQvw{justify-content:center}.buttons_TK4-,.features_ENLn{align-items:center;display:flex}.features_ENLn{padding:2rem 0;width:100%}.featureImage_fOUF{height:200px;width:200px}.anchor{display:block;position:relative;top:-.5rem}.sidebar_q\+wC,.tableOfContents_vrFS{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast)}.enhancedAnchor_WiXH{top:calc(var(--ifm-navbar-height)*-1 - .5rem)}.h1Heading_dC7a{font-size:3rem;margin-bottom:calc(var(--ifm-leading-desktop)*var(--ifm-leading))}.docMainContainer_r8cw,.docPage_lDyR{display:flex;width:100%}.iconEdit_mS5F{margin-right:.3em;vertical-align:sub}.blogPostData_-Im\+{font-size:.9rem}.blogPostDetailsFull_xD8n{flex-direction:column}.sidebar_q\+wC{top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_9G5K{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.sidebarItemList_6T4b{font-size:.9rem;list-style:none;padding-left:0}.sidebarItem_cjdF{margin-top:.7rem}.tableOfContents_vrFS{top:calc(var(--ifm-navbar-height) + 1rem)}.lastUpdated_wj\+Z{font-size:smaller;font-style:italic;margin-top:.2rem}@media (min-width:997px){.sidebar_a3j0{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_VlPv{padding-top:0}.sidebarHidden_OqfG{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_hmkv{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_hmkv img{height:2rem;margin-right:.5rem}.menu_cyFh{flex-grow:1;padding:.5rem}.menuLinkText_lRH\+{cursor:auto}.menuLinkText_lRH\+:hover{background:none}.menuWithAnnouncementBar_\+O1J{margin-bottom:var(--docusaurus-announcement-bar-height)}.collapseSidebarButton_eoK2{background-color:var(--ifm-button-background-color);border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_e\+kA{margin-top:4px;transform:rotate(180deg)}.expandSidebarButtonIcon_cxi8,html[dir=rtl] .collapseSidebarButtonIcon_e\+kA{transform:rotate(0)}html[data-theme=dark] .collapseSidebarButton_eoK2,html[data-theme=dark] .collapsedDocSidebar_zZpm:focus,html[data-theme=dark] .collapsedDocSidebar_zZpm:hover{background-color:var(--collapse-button-bg-color-dark)}.collapsedDocSidebar_zZpm:focus,.collapsedDocSidebar_zZpm:hover,html[data-theme=dark] .collapseSidebarButton_eoK2:focus,html[data-theme=dark] .collapseSidebarButton_eoK2:hover{background-color:var(--ifm-color-emphasis-200)}.docMainContainer_r8cw{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_SOUu{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docSidebarContainer_0YBq{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_Qlt2{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.collapsedDocSidebar_zZpm{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;position:sticky;top:0;transition:background-color var(--ifm-transition-fast) ease}html[dir=rtl] .expandSidebarButtonIcon_cxi8{transform:rotate(180deg)}.docItemWrapperEnhanced_aT5H{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}@media only screen and (min-width:997px){.docItemCol_zHA2{max-width:75%!important}.lastUpdated_wj\+Z{text-align:right}}@media screen and (min-width:1024px){:root{--docusaurus-announcement-bar-height:30px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:1200px){h1{--ifm-h1-font-size:calc(1.375rem + 1.5vw)}}@media screen and (max-width:997px){.displayOnlyInLargeViewport_cxYs{display:none!important}}@media (max-width:996px){.row .col.col.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0;max-width:var(--ifm-col-width)}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator,.navbar__item{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.menu--responsive .menu__button,.navbar__toggle{display:inherit}.menu--responsive:not(.menu--show) .menu__list{display:none;opacity:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.pills--block .pills__item:not(:first-child){margin-top:var(--ifm-pills-spacing)}.pills--block .pills__item:not(:last-child){margin-bottom:var(--ifm-pills-spacing)}.tabs--block .tabs__item:not(:first-child){margin-top:var(--ifm-tabs-spacing)}.tabs--block .tabs__item:not(:last-child){margin-bottom:var(--ifm-tabs-spacing)}}@media only screen and (max-width:996px){.sidebar_q\+wC,.tableOfContents_vrFS{display:none}.docItemContainer_VKW9{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_4JBe{padding:2rem}}@media screen and (max-width:576px){.announcementBarClose_A3A1{width:35px}.announcementBarContent_6uhP{width:auto}.announcementBarCloseable_y4cp{margin-right:35px}}@media (pointer:fine){.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media print{.announcementBar_axC9,.footer,.menu,.navbar,.pagination-nav,.table-of-contents{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_1zSZ{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.9ba4005a.css b/assets/css/styles.9ba4005a.css deleted file mode 100644 index 6076e87..0000000 --- a/assets/css/styles.9ba4005a.css +++ /dev/null @@ -1,25 +0,0 @@ -.row .col,img{max-width:100%}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.react-toggle{-webkit-user-select:none;-ms-user-select:none}.admonition-icon,.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.navbar__title,.text--truncate{text-overflow:ellipsis;white-space:nowrap}.button,.dropdown__link,.navbar__title,.text--truncate{white-space:nowrap}.button,.clean-btn,.close,.menu__link,.navbar__link{cursor:pointer}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.footer__items,.menu__list,.pills__item{list-style-type:none}.tabs__item,hr,img{box-sizing:content-box}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.react-toggle,html{-webkit-tap-highlight-color:transparent}:root{--ra-admonition-background-color:var(--ifm-alert-background-color);--ra-admonition-border-width:var(--ifm-alert-border-width);--ra-admonition-border-color:var(--ifm-alert-border-color);--ra-admonition-border-radius:var(--ifm-alert-border-radius);--ra-admonition-color:var(--ifm-alert-color);--ra-admonition-padding-vertical:var(--ifm-alert-padding-vertical);--ra-admonition-padding-horizontal:var(--ifm-alert-padding-horizontal);--ra-color-note:var(--ifm-color-secondary);--ra-color-important:var(--ifm-color-info);--ra-color-tip:var(--ifm-color-success);--ra-color-caution:var(--ifm-color-warning);--ra-color-warning:var(--ifm-color-danger);--ra-color-text-dark:var(--ifm-color-gray-900)}.admonition{margin-bottom:1em;--ra-admonition-icon-color:var(--ra-admonition-color)}.admonition:not(.alert){--ra-admonition-background-color:var(--ifm-color-primary);background-color:var(--ra-admonition-background-color);border:var(--ra-admonition-border-width) solid var(--ra-admonition-border-color);border-radius:var(--ra-admonition-border-radius);box-sizing:border-box;color:var(--ra-admonition-color);padding:var(--ra-admonition-padding-vertical) var(--ra-admonition-padding-horizontal)}.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.admonition h5{margin-bottom:8px;margin-top:0;text-transform:uppercase}.admonition-icon{display:inline-block;margin-right:.2em}.admonition-icon svg{stroke-width:0;fill:var(--ra-admonition-icon-color);stroke:var(--ra-admonition-icon-color);display:inline-block;height:22px;width:22px}.admonition-content>:last-child,blockquote>:last-child{margin-bottom:0}.admonition-note{--ra-admonition-color:var(--ra-color-text-dark)}:root{--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-color-primary:#3578e5;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-secondary:#ebedf0;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-success:#00a400;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-info:#54c7ec;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-warning:#ffba00;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-danger:#fa383e;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,0.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,0.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,0.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,0.2),0 2px 4px 0 rgba(0,0,0,0.1);--ifm-z-index-dropdown:2;--ifm-z-index-fixed:3;--ifm-z-index-overlay:4;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:rgba(0,0,0,.05);--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.3rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-color-emphasis-100);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:inherit;--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:var(--ifm-color-emphasis-100);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-color:#6a737d;--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-padding-horizontal:1rem;--ifm-blockquote-padding-vertical:1rem;--ifm-hr-border-color:var(--ifm-color-emphasis-500);--ifm-hr-border-width:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:#888;--ifm-scrollbar-thumb-hover-background-color:#555;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:var(--ifm-global-border-width);--ifm-alert-color:var(--ifm-font-color-base-inverse);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size-sm:2rem;--ifm-avatar-photo-size-md:3rem;--ifm-avatar-photo-size-lg:4rem;--ifm-avatar-photo-size-xl:6rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.0625rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:1rem;--ifm-breadcrumb-padding-vertical:0.5rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-margin:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:1rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:80vw;--ifm-pagination-border-radius:calc(var(--ifm-global-radius)*var(--ifm-pagination-size-multiplier));--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.0625rem;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-size-multiplier:1;--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.0625rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-tabs-spacing:0.0625rem;--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#46cbae;--ifm-color-primary-lighter:#66d4bd;--ifm-color-primary-lightest:#92e0d0;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--collapse-button-bg-color-dark:#2e333a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}.navbar--dark,.navbar--primary{--ifm-navbar-search-input-background-color:hsla(0,0%,100%,0.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,0.5)}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base)}.container{margin:0 auto;max-width:var(--ifm-container-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.container--fluid{max-width:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.markdown>:first-child{margin-top:0!important}.row .col{--ifm-col-width:100%;flex:1 0;margin-left:0}.row .col.col--1,.row .col.col--2,.row .col.col--3,.row .col[class*=col--]{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--1{--ifm-col-width:8.33333%}.row .col.col--offset-1{margin-left:8.33333%}.row .col.col--2{--ifm-col-width:16.66667%}.row .col.col--offset-2{margin-left:16.66667%}.row .col.col--3{--ifm-col-width:25%}.row .col.col--offset-3{margin-left:25%}.row .col.col--4{--ifm-col-width:33.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-4{margin-left:33.33333%}.row .col.col--5{--ifm-col-width:41.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--6,.row .col.col--7{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-5{margin-left:41.66667%}.row .col.col--6{--ifm-col-width:50%}.row .col.col--offset-6{margin-left:50%}.row .col.col--7{--ifm-col-width:58.33333%}.row .col.col--offset-7{margin-left:58.33333%}.row .col.col--8{--ifm-col-width:66.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-8{margin-left:66.66667%}.row .col.col--9{--ifm-col-width:75%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--10,.row .col.col--11{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-9{margin-left:75%}.row .col.col--10{--ifm-col-width:83.33333%}.row .col.col--offset-10{margin-left:83.33333%}.row .col.col--11{--ifm-col-width:91.66667%}.row .col.col--offset-11{margin-left:91.66667%}.row .col.col--12{--ifm-col-width:100%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-12{margin-left:100%}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:transparent;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{border-style:none}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before,hr:after,hr:before{content:"";display:table}.markdown:after,hr:after{clear:both}.markdown>h1{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h1-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.codeBlockContainer_K1bP,.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical);width:100%}.avatar__photo,.card,.text--truncate,hr{overflow:hidden}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.breadcrumbs__link:hover,.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:6px solid var(--ifm-color-emphasis-300);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}hr{border:var(--ifm-hr-border-width) solid var(--ifm-hr-border-color);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.sidebarItemLinkActive_12pM,.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;padding:0}.alert,.alert a{color:var(--ifm-alert-color)}.alert{background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-radius:var(--ifm-alert-border-radius);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary);--ifm-alert-border-color:var(--ifm-color-primary)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary);--ifm-alert-border-color:var(--ifm-color-secondary);--ifm-alert-color:var(--ifm-color-gray-900)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success);--ifm-alert-border-color:var(--ifm-color-success)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info);--ifm-alert-border-color:var(--ifm-color-info)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning);--ifm-alert-border-color:var(--ifm-color-warning)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger);--ifm-alert-border-color:var(--ifm-color-danger)}.alert a{text-decoration:underline}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0}.avatar,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.avatar__photo-link{display:block}.avatar__photo{border-radius:50%;height:var(--ifm-avatar-photo-size-md);width:var(--ifm-avatar-photo-size-md)}.avatar__photo--sm{height:var(--ifm-avatar-photo-size-sm);width:var(--ifm-avatar-photo-size-sm)}.avatar__photo--lg{height:var(--ifm-avatar-photo-size-lg);width:var(--ifm-avatar-photo-size-lg)}.avatar__photo--xl{height:var(--ifm-avatar-photo-size-xl);width:var(--ifm-avatar-photo-size-xl)}.avatar__photo+.avatar__intro{margin-left:var(--ifm-avatar-intro-margin)}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.menu__link--sublist:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.avatar--vertical .avatar__intro{margin-left:0}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:first-child){margin-left:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child){margin-right:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 .5rem;opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__item--active .breadcrumbs__link,.breadcrumbs__item:not(.breadcrumbs__item--active):hover .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover),.sidebarItemLink_1RT6{color:var(--ifm-font-color-base)}.button--primary{--ifm-button-border-color:var(--ifm-color-primary)}.button--primary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-primary)}.button--primary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-border-color:var(--ifm-color-primary-darker);--ifm-button-background-color:var(--ifm-color-primary-darker);background-color:var( - --ifm-color-primary-darker - );border-color:var( - --ifm-color-primary-darker - )}.button--secondary{--ifm-button-border-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-border-color:var(--ifm-color-secondary-darker);--ifm-button-background-color:var(--ifm-color-secondary-darker);background-color:var( - --ifm-color-secondary-darker - );border-color:var( - --ifm-color-secondary-darker - )}.button--success{--ifm-button-border-color:var(--ifm-color-success)}.button--success:not(.button--outline){--ifm-button-background-color:var(--ifm-color-success)}.button--success:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-border-color:var(--ifm-color-success-darker);--ifm-button-background-color:var(--ifm-color-success-darker);background-color:var( - --ifm-color-success-darker - );border-color:var( - --ifm-color-success-darker - )}.button--info{--ifm-button-border-color:var(--ifm-color-info)}.button--info:not(.button--outline){--ifm-button-background-color:var(--ifm-color-info)}.button--info:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-border-color:var(--ifm-color-info-darker);--ifm-button-background-color:var(--ifm-color-info-darker);background-color:var( - --ifm-color-info-darker - );border-color:var( - --ifm-color-info-darker - )}.button--warning{--ifm-button-border-color:var(--ifm-color-warning)}.button--warning:not(.button--outline){--ifm-button-background-color:var(--ifm-color-warning)}.button--warning:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-border-color:var(--ifm-color-warning-darker);--ifm-button-background-color:var(--ifm-color-warning-darker);background-color:var( - --ifm-color-warning-darker - );border-color:var( - --ifm-color-warning-darker - )}.button--danger{--ifm-button-border-color:var(--ifm-color-danger)}.button--danger:not(.button--outline){--ifm-button-background-color:var(--ifm-color-danger)}.button--danger:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-border-color:var(--ifm-color-danger-darker);--ifm-button-background-color:var(--ifm-color-danger-darker);background-color:var( - --ifm-color-danger-darker - );border-color:var( - --ifm-color-danger-darker - )}.button-group{display:inline-flex}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:var(--ifm-button-group-margin)}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group>.button--active{z-index:1}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card--full-height,body,html{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style-type:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color)}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{background:none;border:none;color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__menu,.menu__link,.menu__link:hover{transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;transform:translateY(0);visibility:visible}.dropdown--right .dropdown__menu{right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);list-style:none;max-height:calc(100vh - var(--ifm-navbar-height));min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:100%;transform:translateY(-10px);transition-property:opacity,transform,visibility;visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:10rem}.docItemContainer_33ec header+*,.footer__item,.pills__item+.pills__item{margin-top:0}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__items{margin-bottom:0;padding-left:0}[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.blogPostTitle_GeHD,.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0}.menu__list .menu__list{margin-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item{margin-top:.25rem}.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__link{border-radius:.25rem;display:flex;justify-content:space-between;line-height:1.25;padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal);position:relative}.menu__link,.menu__link:hover{color:var(--ifm-menu-color);transition-property:color,background}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-timing-function:ease-in-out;visibility:hidden;left:0;top:0}.menu__link:hover{background:var(--ifm-menu-color-background-hover);text-decoration:none}.menu__link--sublist:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;content:" ";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;min-width:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background:var(--ifm-menu-color-background-active)}.menu--responsive .menu__button{bottom:2rem;display:none;position:fixed;right:1rem;z-index:var(--ifm-z-index-fixed)}.menu--show{-ms-scroll-chaining:none;background:var(--ifm-background-surface-color);bottom:0;left:0;overscroll-behavior:contain;padding:1rem;position:fixed;right:0;top:0;z-index:var(--ifm-z-index-overlay)}.menu--show .menu__list{display:inherit;opacity:1;transition:opacity var(--ifm-transition-fast) linear}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal);width:100%}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;font-weight:700;height:2rem;margin-right:1rem;min-width:0}.navbar__brand:hover{color:inherit;text-decoration:none}.navbar__title{flex:1 1 auto;overflow:hidden}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{height:100%;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.codeBlock_23N8,.navbar__item.dropdown{padding:0}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{font-weight:var(--ifm-font-weight-semibold);padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal);position:relative;text-decoration:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-color:var(--ifm-color-white);--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-toggle-color:var(--ifm-color-white)}.navbar--dark .navbar__toggle{color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input:-ms-input-placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);overflow:auto;position:fixed;transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translateZ(0)}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);position:fixed;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.pagination__item,.pagination__link{display:inline-block}.navbar-sidebar__items{padding:.5rem}.pagination{font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item:not(:first-child){margin-left:var(--ifm-pagination-page-spacing)}.pagination__item:not(:last-child){margin-right:var(--ifm-pagination-page-spacing)}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_1RT6:hover{text-decoration:none}.docs-wrapper,.pagination-nav{display:flex}.pagination-nav__item{display:flex;flex:1 50%;max-width:50%}.pagination-nav__item--next{text-align:right}.pagination-nav__item+.pagination-nav__item{margin-left:var(--ifm-spacing-horizontal)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);flex-grow:1;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills,.sidebarMenuCloseIcon_1lpH,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background-color:var(--ifm-pills-color-background-active)}.pills__item:not(:first-child){margin-left:var(--ifm-pills-spacing)}.pills__item:not(:last-child){margin-right:var(--ifm-pills-spacing)}.pills--block{display:flex;justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;margin:0;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#18191a;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,0.05);--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,0.1)}.docusaurus-highlight-code-line{background-color:rgba(0,0,0,.1);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:rgba(0,0,0,.3)}#nprogress .bar{background:#29d;height:2px;left:0;position:fixed;top:0;width:100%;z-index:5}#nprogress .peg{box-shadow:0 0 10px #29d,0 0 5px #29d;height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}#docusaurus-base-url-issue-banner-container,.collapseSidebarButton_1CGd,.sidebarLogo_3h0W,.themedImage_1VuW,html[data-announcement-bar-initially-dismissed=true] .announcementBar_3WsW{display:none}.skipToContent_1oUP{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_1oUP:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.announcementBar_3WsW{background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);height:var(--docusaurus-announcement-bar-height);position:relative;width:100%}.announcementBarClose_38nx{font-size:1.25rem;height:100%;position:absolute;right:0;top:0;width:55px}.announcementBarContent_3EUC{font-size:85%;padding:5px 0;text-align:center;width:100%}.announcementBarCloseable_3myR{margin-right:55px}.announcementBarContent_3EUC a{color:inherit;text-decoration:underline}.react-toggle{cursor:pointer;position:relative;touch-action:pan-x;user-select:none}.react-toggle-screenreader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed}.react-toggle-track{background-color:#4d4d4d;border-radius:30px;height:24px;transition:.2s;width:50px}.react-toggle-track-check,.react-toggle-track-x{bottom:0;height:10px;margin:auto 0;top:0;position:absolute}.react-toggle-track-check{left:8px;opacity:0;transition:opacity .25s;width:14px}.react-toggle--checked .react-toggle-track-check,.react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-check{opacity:1;transition:opacity .25s}.react-toggle-track-x{right:10px;width:10px}.react-toggle--checked .react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-x{opacity:0}.react-toggle-thumb{background-color:#fafafa;border:1px solid #4d4d4d;border-radius:50%;height:22px;left:1px;position:absolute;top:1px;transition:.25s;width:22px}.react-toggle--checked .react-toggle-thumb,[data-theme=dark] .react-toggle .react-toggle-thumb{left:27px}.react-toggle--focus .react-toggle-thumb,.react-toggle:hover .react-toggle-thumb{box-shadow:0 0 2px 3px var(--ifm-color-primary)}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{box-shadow:0 0 5px 5px var(--ifm-color-primary)}.toggle_71bT{align-items:center;display:flex;height:10px;justify-content:center;width:10px}.toggle_71bT:before{position:absolute}.iconExternalLink_3J9K{margin-left:.3rem;position:relative;top:1px}html[data-theme=dark] .themedImage--dark_hz6m,html[data-theme=light] .themedImage--light_3UqQ{display:initial}.navbarHideable_2qcr{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_3yey{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_MyFc{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.codeBlockContent_hGly:hover>.copyButton_Ue-o,.codeBlockTitle_eoMF:hover+.codeBlockContent_hGly .copyButton_Ue-o,.copyButton_Ue-o:focus,.footerLogoLink_MyFc:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.main-wrapper{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}.sidebarMenuIcon_fgN0{vertical-align:middle}.sidebarMenuCloseIcon_1lpH{align-items:center;display:inline-flex;font-size:1.5rem;height:24px;justify-content:center;line-height:.9;width:24px}.menu__list .menu__list{overflow-y:hidden;transition:height var(--ifm-transition-fast) linear;will-change:height}.menu__list-item--collapsed .menu__list{overflow:hidden;height:0!important}.codeBlockContent_hGly{direction:ltr;position:relative}.codeBlockTitle_eoMF{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:var(--ifm-global-radius);border-top-right-radius:var(--ifm-global-radius);font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockWithTitle_2JqI{border-top-left-radius:0;border-top-right-radius:0}.copyButton_Ue-o{background:rgba(0,0,0,.3);border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);opacity:0;padding:.4rem .5rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out;-webkit-user-select:none;-ms-user-select:none;user-select:none}.codeBlockLines_39YC{display:flex;flex-direction:column;float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.heroBanner_3P7f{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_1r9m,.mdxPageWrapper_3qD3{justify-content:center}.buttons_1r9m,.features_3azU{align-items:center;display:flex}.features_3azU{padding:2rem 0;width:100%}.featureImage_ZtzX{height:200px;width:200px}.anchor{display:block;position:relative;top:-.5rem}.sidebar_2ahu,.tableOfContents_35-E{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast)}.enhancedAnchor_2LWZ{top:calc(var(--ifm-navbar-height)*-1 - .5rem)}.h1Heading_27L5{font-size:3rem;margin-bottom:calc(var(--ifm-leading-desktop)*var(--ifm-leading))}.docMainContainer_3ufF,.docPage_31aa{display:flex;width:100%}.iconEdit_2_ui{margin-right:.3em;vertical-align:sub}.blogPostData_291c{font-size:.9rem}.blogPostDetailsFull_3kfx{flex-direction:column}.sidebar_2ahu{top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_2hhb{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.sidebarItemList_2xAf{font-size:.9rem;list-style:none;padding-left:0}.sidebarItem_2UVv{margin-top:.7rem}.tableOfContents_35-E{top:calc(var(--ifm-navbar-height) + 1rem)}.lastUpdated_3DPF{font-size:smaller;font-style:italic;margin-top:.2rem}@media (min-width:997px){.sidebar_15mo{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_267A{padding-top:0}.sidebarHidden_2kNb{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_3h0W{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_3h0W img{height:2rem;margin-right:.5rem}.menu_Bmed{flex-grow:1;padding:.5rem}.menuLinkText_2aKo{cursor:auto}.menuLinkText_2aKo:hover{background:none}.menuWithAnnouncementBar_2WvA{margin-bottom:var(--docusaurus-announcement-bar-height)}.collapseSidebarButton_1CGd{background-color:var(--ifm-button-background-color);border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_3E-R{margin-top:4px;transform:rotate(180deg)}.expandSidebarButtonIcon_1naQ,html[dir=rtl] .collapseSidebarButtonIcon_3E-R{transform:rotate(0)}html[data-theme=dark] .collapseSidebarButton_1CGd,html[data-theme=dark] .collapsedDocSidebar_2JMH:focus,html[data-theme=dark] .collapsedDocSidebar_2JMH:hover{background-color:var(--collapse-button-bg-color-dark)}.collapsedDocSidebar_2JMH:focus,.collapsedDocSidebar_2JMH:hover,html[data-theme=dark] .collapseSidebarButton_1CGd:focus,html[data-theme=dark] .collapseSidebarButton_1CGd:hover{background-color:var(--ifm-color-emphasis-200)}.docMainContainer_3ufF{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_3NYZ{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docSidebarContainer_3Kbt{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_3pA8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.collapsedDocSidebar_2JMH{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;position:sticky;top:0;transition:background-color var(--ifm-transition-fast) ease}html[dir=rtl] .expandSidebarButtonIcon_1naQ{transform:rotate(180deg)}.docItemWrapperEnhanced_2vyJ{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}@media only screen and (min-width:997px){.docItemCol_3FnS{max-width:75%!important}.lastUpdated_3DPF{text-align:right}}@media screen and (min-width:1024px){:root{--docusaurus-announcement-bar-height:30px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:1200px){h1{--ifm-h1-font-size:calc(1.375rem + 1.5vw)}}@media screen and (max-width:997px){.displayOnlyInLargeViewport_GrZ2{display:none!important}}@media (max-width:996px){.row .col.col.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0;max-width:var(--ifm-col-width)}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator,.navbar__item{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.menu--responsive .menu__button,.navbar__toggle{display:inherit}.menu--responsive:not(.menu--show) .menu__list{display:none;opacity:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.pills--block .pills__item:not(:first-child){margin-top:var(--ifm-pills-spacing)}.pills--block .pills__item:not(:last-child){margin-bottom:var(--ifm-pills-spacing)}.tabs--block .tabs__item:not(:first-child){margin-top:var(--ifm-tabs-spacing)}.tabs--block .tabs__item:not(:last-child){margin-bottom:var(--ifm-tabs-spacing)}}@media only screen and (max-width:996px){.sidebar_2ahu,.tableOfContents_35-E{display:none}.docItemContainer_gpai{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_3P7f{padding:2rem}}@media screen and (max-width:576px){.announcementBarClose_38nx{width:35px}.announcementBarContent_3EUC{width:auto}.announcementBarCloseable_3myR{margin-right:35px}}@media (pointer:fine){.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media print{.announcementBar_3WsW,.footer,.menu,.navbar,.pagination-nav,.table-of-contents{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_39YC{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/014d94b1.b0b92d1f.js b/assets/js/014d94b1.b0b92d1f.js new file mode 100644 index 0000000..1eee123 --- /dev/null +++ b/assets/js/014d94b1.b0b92d1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3550],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),g=d(n),c=r,y=g["".concat(s,".").concat(c)]||g[c]||m[c]||l;return n?a.createElement(y,o(o({ref:t},p),{},{components:n})):a.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[g]="string"==typeof e?e:r,o[1]=i;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},o=void 0,i={unversionedId:"apis/models/chatEvent",id:"version-v1.0.0-beta.4/apis/models/chatEvent",isDocsHomePage:!1,title:"ChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/models/chatEvent.md",sourceDirName:"apis/models",slug:"/apis/models/chatEvent",permalink:"/laravel-chat-system/docs/apis/models/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/models/chatEvent.md",version:"v1.0.0-beta.4",frontMatter:{id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Conversation",permalink:"/laravel-chat-system/docs/apis/models/conversation"},next:{title:"CanMakeChatEvent",permalink:"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],d={toc:s},p="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Models\\ChatEvent")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,r.yg)("td",{parentName:"tr",align:null},"the type of the event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"all")),(0,r.yg)("td",{parentName:"tr",align:null},"bool"),(0,r.yg)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"withall"},(0,r.yg)("inlineCode",{parentName:"h3"},"withAll()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,r.yg)("h3",{id:"notmessenger"},(0,r.yg)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker|int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"message"},(0,r.yg)("inlineCode",{parentName:"h3"},"message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,r.yg)("h3",{id:"maker"},(0,r.yg)("inlineCode",{parentName:"h3"},"maker()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,r.yg)("h3",{id:"made"},(0,r.yg)("inlineCode",{parentName:"h3"},"made()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.0155eebe.js b/assets/js/01a85c17.0155eebe.js deleted file mode 100644 index 0d5a1b4..0000000 --- a/assets/js/01a85c17.0155eebe.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4013],{5601:function(e,a,t){"use strict";t.d(a,{Z:function(){return d}});var r=t(7294),n=t(6010),s=t(6742),l="sidebar_2ahu",i="sidebarItemTitle_2hhb",c="sidebarItemList_2xAf",m="sidebarItem_2UVv",o="sidebarItemLink_1RT6",u="sidebarItemLinkActive_12pM",g=t(4973);function d(e){var a=e.sidebar;return 0===a.items.length?null:r.createElement("nav",{className:(0,n.Z)(l,"thin-scrollbar"),"aria-label":(0,g.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},r.createElement("div",{className:(0,n.Z)(i,"margin-bottom--md")},a.title),r.createElement("ul",{className:c},a.items.map((function(e){return r.createElement("li",{key:e.permalink,className:m},r.createElement(s.Z,{isNavLink:!0,to:e.permalink,className:o,activeClassName:u},e.title))}))))}},94:function(e,a,t){"use strict";t.r(a);var r=t(7294),n=t(6016),s=t(6742),l=t(5601),i=t(4973),c=t(9306);a.default=function(e){var a=e.tags,t=e.sidebar,m=(0,i.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"}),o={};Object.keys(a).forEach((function(e){var a=function(e){return e[0].toUpperCase()}(e);o[a]=o[a]||[],o[a].push(e)}));var u=Object.entries(o).sort((function(e,a){var t=e[0],r=a[0];return t.localeCompare(r)})).map((function(e){var t=e[0],n=e[1];return r.createElement("article",{key:t},r.createElement("h2",null,t),n.map((function(e){return r.createElement(s.Z,{className:"padding-right--md",href:a[e].permalink,key:e},a[e].name," (",a[e].count,")")})),r.createElement("hr",null))})).filter((function(e){return null!=e}));return r.createElement(n.Z,{title:m,wrapperClassName:c.kM.wrapper.blogPages,pageClassName:c.kM.page.blogTagsListPage,searchMetadatas:{tag:"blog_tags_list"}},r.createElement("div",{className:"container margin-vert--lg"},r.createElement("div",{className:"row"},r.createElement("aside",{className:"col col--3"},r.createElement(l.Z,{sidebar:t})),r.createElement("main",{className:"col col--7"},r.createElement("h1",null,m),r.createElement("section",{className:"margin-vert--lg"},u)))))}}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.4f4083ce.js b/assets/js/01a85c17.4f4083ce.js new file mode 100644 index 0000000..ab0cb7c --- /dev/null +++ b/assets/js/01a85c17.4f4083ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8209],{9937:(e,t,a)=>{a.d(t,{A:()=>m});var s=a(6540),r=a(53),i=a(4676);const l={sidebar:"sidebar_q+wC",sidebarItemTitle:"sidebarItemTitle_9G5K",sidebarItemList:"sidebarItemList_6T4b",sidebarItem:"sidebarItem_cjdF",sidebarItemLink:"sidebarItemLink_zyXk",sidebarItemLinkActive:"sidebarItemLinkActive_wcJs"};var n=a(4798);function m(e){let{sidebar:t}=e;return 0===t.items.length?null:s.createElement("nav",{className:(0,r.A)(l.sidebar,"thin-scrollbar"),"aria-label":(0,n.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},s.createElement("div",{className:(0,r.A)(l.sidebarItemTitle,"margin-bottom--md")},t.title),s.createElement("ul",{className:l.sidebarItemList},t.items.map((e=>s.createElement("li",{key:e.permalink,className:l.sidebarItem},s.createElement(i.A,{isNavLink:!0,to:e.permalink,className:l.sidebarItemLink,activeClassName:l.sidebarItemLinkActive},e.title))))))}},3395:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var s=a(6540),r=a(5241),i=a(4676),l=a(9937),n=a(4798),m=a(3155);const c=function(e){const{tags:t,sidebar:a}=e,c=(0,n.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"}),d={};Object.keys(t).forEach((e=>{const t=function(e){return e[0].toUpperCase()}(e);d[t]=d[t]||[],d[t].push(e)}));const o=Object.entries(d).sort(((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)})).map((e=>{let[a,r]=e;return s.createElement("article",{key:a},s.createElement("h2",null,a),r.map((e=>s.createElement(i.A,{className:"padding-right--md",href:t[e].permalink,key:e},t[e].name," (",t[e].count,")"))),s.createElement("hr",null))})).filter((e=>null!=e));return s.createElement(r.A,{title:c,wrapperClassName:m.GN.wrapper.blogPages,pageClassName:m.GN.page.blogTagsListPage,searchMetadatas:{tag:"blog_tags_list"}},s.createElement("div",{className:"container margin-vert--lg"},s.createElement("div",{className:"row"},s.createElement("aside",{className:"col col--3"},s.createElement(l.A,{sidebar:a})),s.createElement("main",{className:"col col--7"},s.createElement("h1",null,c),s.createElement("section",{className:"margin-vert--lg"},o)))))}}}]); \ No newline at end of file diff --git a/assets/js/06999ba5.3c016fd8.js b/assets/js/06999ba5.3c016fd8.js new file mode 100644 index 0000000..bc95815 --- /dev/null +++ b/assets/js/06999ba5.3c016fd8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1028],{5680:(e,a,n)=>{n.d(a,{xA:()=>c,yg:()=>p});var t=n(6540);function s(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function r(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(s[n]=e[n]);return s}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=t.createContext({}),g=function(e){var a=t.useContext(l),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},c=function(e){var a=g(e.components);return t.createElement(l.Provider,{value:a},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(e,a){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=g(n),m=s,p=d["".concat(l,".").concat(m)]||d[m]||u[m]||r;return n?t.createElement(p,i(i({ref:a},c),{},{components:n})):t.createElement(p,i({ref:a},c))}));function p(e,a){var n=arguments,s=a&&a.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in a)hasOwnProperty.call(a,l)&&(o[l]=a[l]);o.originalType=e,o[d]="string"==typeof e?e:s,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var t=n(8168),s=(n(6540),n(5680));const r={id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},i=void 0,o={unversionedId:"guides/guides.message",id:"version-v1.0.0-beta.0/guides/guides.message",isDocsHomePage:!1,title:"Using Message",description:"Creating message",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/message.md",sourceDirName:"guides",slug:"/guides/message",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/message.md",version:"v1.0.0-beta.0",frontMatter:{id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation"},next:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent"}},l=[{value:"Creating message",id:"creating-message",children:[]},{value:"Broadcasting Message Created",id:"broadcasting-message-created",children:[]},{value:"Creating an activity message type",id:"creating-an-activity-message-type",children:[]},{value:"Creating a message with token",id:"creating-a-message-with-token",children:[]},{value:"Deleting message",id:"deleting-message",children:[]}],g={toc:l},c="wrapper";function d(e){let{components:a,...n}=e;return(0,s.yg)(c,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"creating-message"},"Creating message"),(0,s.yg)("p",null,"You may create a message within a conversation using its ",(0,s.yg)("inlineCode",{parentName:"p"},"messages")," relationship method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,s.yg)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,s.yg)("p",null,"You may broadcast a ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,s.yg)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,s.yg)("p",null,"A message type is default to ",(0,s.yg)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,s.yg)("inlineCode",{parentName:"p"},"system")," or an ",(0,s.yg)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createActivityMessage([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,s.yg)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,s.yg)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,s.yg)("h2",{id:"deleting-message"},"Deleting message"),(0,s.yg)("p",null,"You may delete message(s) with ",(0,s.yg)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,s.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/06999ba5.92042d4d.js b/assets/js/06999ba5.92042d4d.js deleted file mode 100644 index 1f66d6c..0000000 --- a/assets/js/06999ba5.92042d4d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5115],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return g}});var a=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=c(n),g=s,p=m["".concat(l,".").concat(g)]||m[g]||d[g]||r;return n?a.createElement(p,i(i({ref:t},u),{},{components:n})):a.createElement(p,i({ref:t},u))}));function g(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:s,i[1]=o;for(var c=2;cconversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,r.kt)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,r.kt)("p",null,"You may broadcast a ",(0,r.kt)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,r.kt)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,r.kt)("p",null,"A message type is default to ",(0,r.kt)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,r.kt)("inlineCode",{parentName:"p"},"system")," or an ",(0,r.kt)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createActivityMessage([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,r.kt)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,r.kt)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,r.kt)("h2",{id:"deleting-message"},"Deleting message"),(0,r.kt)("p",null,"You may delete message(s) with ",(0,r.kt)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,r.kt)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,r.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/09222012.490527da.js b/assets/js/09222012.490527da.js new file mode 100644 index 0000000..bbd0e4c --- /dev/null +++ b/assets/js/09222012.490527da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7621],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>u});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),l=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=l(a),m=n,u=d["".concat(c,".").concat(m)]||d[m]||g[m]||s;return a?r.createElement(u,o(o({ref:t},p),{},{components:a})):r.createElement(u,o({ref:t},p))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var l=2;l{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var r=a(8168),n=(a(6540),a(5680));const s={id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},o=void 0,i={unversionedId:"apis/events/message/messageCreated",id:"version-v1.0.0-beta.0/apis/events/message/messageCreated",isDocsHomePage:!1,title:"Message Created Event",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/events/message/created.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/created",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/events/message/created.md",version:"v1.0.0-beta.0",frontMatter:{id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Message Events",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events"},next:{title:"ChatSytem",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem"}},c=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],l={toc:c},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.yg)(p,(0,r.A)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"namespace"},(0,n.yg)("strong",{parentName:"h2"},"Namespace")),(0,n.yg)("p",null,(0,n.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Created")),(0,n.yg)("h2",{id:"broadcasts-as"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message"))),(0,n.yg)("h2",{id:"broadcasts-with"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message")," type ",(0,n.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IMessage"))),(0,n.yg)("h2",{id:"broadcasts-on-channels"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/09222012.c85f1f6a.js b/assets/js/09222012.c85f1f6a.js deleted file mode 100644 index d41326a..0000000 --- a/assets/js/09222012.c85f1f6a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7094],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(n),m=a,v=u["".concat(c,".").concat(m)]||u[m]||d[m]||s;return n?r.createElement(v,o(o({ref:t},p),{},{components:n})):r.createElement(v,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var l=2;lNamespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],p={toc:l};function d(e){var t=e.components,n=(0,a.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Created")),(0,s.kt)("h2",{id:"broadcasts-as"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message"))),(0,s.kt)("h2",{id:"broadcasts-with"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IMessage"))),(0,s.kt)("h2",{id:"broadcasts-on-channels"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/097e01eb.678b3f34.js b/assets/js/097e01eb.678b3f34.js new file mode 100644 index 0000000..884ce3f --- /dev/null +++ b/assets/js/097e01eb.678b3f34.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1262],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>v});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(t),d=a,v=u["".concat(c,".").concat(d)]||u[d]||g[d]||o;return t?r.createElement(v,i(i({ref:n},p),{},{components:t})):r.createElement(v,i({ref:n},p))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},i=void 0,s={unversionedId:"guides/guides.conversation",id:"version-v1.0.0-beta.0/guides/guides.conversation",isDocsHomePage:!1,title:"Using Conversation",description:"Creating conversation",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/conversation.md",sourceDirName:"guides",slug:"/guides/conversation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/conversation.md",version:"v1.0.0-beta.0",frontMatter:{id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Using Routes",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes"},next:{title:"Using Message",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message"}},c=[{value:"Creating conversation",id:"creating-conversation",children:[]},{value:"Creating conversation type",id:"creating-conversation-type",children:[]},{value:"Adding/removing user/participant to conversation",id:"addingremoving-userparticipant-to-conversation",children:[]},{value:"Deleting conversation",id:"deleting-conversation",children:[]}],l={toc:c},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.yg)(p,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"creating-conversation"},"Creating conversation"),(0,a.yg)("p",null,"When conversation is created, the system will automatically add the creator as a participant of the conversation using the ",(0,a.yg)("inlineCode",{parentName:"p"},"conversation.user_id")," if only the chatSystem Observer have been registered. see ",(0,a.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registering-observers")," "),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,a.yg)("details",null,(0,a.yg)("summary",null,"output"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,a.yg)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,a.yg)("p",null,"You may create a conversation of another type such as ",(0,a.yg)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,a.yg)("details",null,(0,a.yg)("summary",null,"output"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,a.yg)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,a.yg)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,a.yg)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,a.yg)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,a.yg)("p",null,"You may delete conversation with ",(0,a.yg)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,a.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,a.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/097e01eb.85e15081.js b/assets/js/097e01eb.85e15081.js deleted file mode 100644 index 6f6df3b..0000000 --- a/assets/js/097e01eb.85e15081.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5825],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return v}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(t),v=a,m=d["".concat(c,".").concat(v)]||d[v]||p[v]||o;return t?r.createElement(m,i(i({ref:n},u),{},{components:t})):r.createElement(m,i({ref:n},u))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;lconversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"output"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,o.kt)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,o.kt)("p",null,"You may create a conversation of another type such as ",(0,o.kt)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"output"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,o.kt)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,o.kt)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,o.kt)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,o.kt)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,o.kt)("p",null,"You may delete conversation with ",(0,o.kt)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,o.kt)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,o.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0c30993e.432a88d0.js b/assets/js/0c30993e.432a88d0.js new file mode 100644 index 0000000..bd971b8 --- /dev/null +++ b/assets/js/0c30993e.432a88d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5979],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>v});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),l=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return a.createElement(c.Provider,{value:n},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(t),d=r,v=u["".concat(c,".").concat(d)]||u[d]||g[d]||o;return t?a.createElement(v,i(i({ref:n},p),{},{components:t})):a.createElement(v,i({ref:n},p))}));function v(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[u]="string"==typeof e?e:r,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=t(8168),r=(t(6540),t(5680));const o={id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},i=void 0,s={unversionedId:"guides/guides.conversation",id:"version-v1.0-alpha.3/guides/guides.conversation",isDocsHomePage:!1,title:"Using Conversation",description:"Creating conversation",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/conversation.md",sourceDirName:"guides",slug:"/guides/conversation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/conversation.md",version:"v1.0-alpha.3",frontMatter:{id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Using Routes",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes"},next:{title:"Using Message",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/message"}},c=[{value:"Creating conversation",id:"creating-conversation",children:[]},{value:"Creating conversation type",id:"creating-conversation-type",children:[]},{value:"Adding/removing user/participant to conversation",id:"addingremoving-userparticipant-to-conversation",children:[]},{value:"Deleting conversation",id:"deleting-conversation",children:[]}],l={toc:c},p="wrapper";function u(e){let{components:n,...t}=e;return(0,r.yg)(p,(0,a.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"creating-conversation"},"Creating conversation"),(0,r.yg)("p",null,"When conversation is created, the system will automatically add the creator as a participant of the conversation using the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation.user_id")," if only the chatSystem Observer have been registered. see ",(0,r.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registering-observers")," "),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,r.yg)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,r.yg)("p",null,"You may create a conversation of another type such as ",(0,r.yg)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,r.yg)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,r.yg)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,r.yg)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,r.yg)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,r.yg)("p",null,"You may delete conversation with ",(0,r.yg)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,r.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0c30993e.fe507d52.js b/assets/js/0c30993e.fe507d52.js deleted file mode 100644 index ee5fca5..0000000 --- a/assets/js/0c30993e.fe507d52.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1249],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return p},kt:function(){return v}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(t),v=a,m=d["".concat(c,".").concat(v)]||d[v]||u[v]||o;return t?r.createElement(m,i(i({ref:n},p),{},{components:t})):r.createElement(m,i({ref:n},p))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;lconversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"output"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,o.kt)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,o.kt)("p",null,"You may create a conversation of another type such as ",(0,o.kt)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"output"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,o.kt)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,o.kt)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,o.kt)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,o.kt)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,o.kt)("p",null,"You may delete conversation with ",(0,o.kt)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,o.kt)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,o.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.3e5d10fd.js b/assets/js/0e384e19.3e5d10fd.js deleted file mode 100644 index 636de81..0000000 --- a/assets/js/0e384e19.3e5d10fd.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9671],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,v=m["".concat(s,".").concat(d)]||m[d]||u[d]||i;return n?r.createElement(v,o(o({ref:t},p),{},{components:n})):r.createElement(v,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;cOverview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],p={toc:c};function u(e){var t=e.components,n=(0,a.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"overview"},(0,i.kt)("inlineCode",{parentName:"h2"},"Overview")),(0,i.kt)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,i.kt)("h2",{id:"features"},"Features"),(0,i.kt)("p",null,"Here are the main features chat system provides."),(0,i.kt)("h3",{id:"conversation"},"Conversation"),(0,i.kt)("p",null,"The package gives you ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,i.kt)("h3",{id:"message"},"Message"),(0,i.kt)("p",null,"The package gives you flexible ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user")," message type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"system")," message type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"activity")," message type")),(0,i.kt)("h3",{id:"chat-events"},"Chat Events"),(0,i.kt)("p",null,"The package gives you ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"read")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"delete")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.ad01d692.js b/assets/js/0e384e19.ad01d692.js new file mode 100644 index 0000000..54fa716 --- /dev/null +++ b/assets/js/0e384e19.ad01d692.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3976],{5680:(e,t,a)=>{a.d(t,{xA:()=>c,yg:()=>g});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,g=u["".concat(s,".").concat(m)]||u[m]||y[m]||i;return a?n.createElement(g,o(o({ref:t},c),{},{components:a})):n.createElement(g,o({ref:t},c))}));function g(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const i={id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},o=void 0,l={unversionedId:"intro",id:"intro",isDocsHomePage:!1,title:"Simple Laravel Chat Package",description:"Overview",source:"@site/docs/intro.md",sourceDirName:".",slug:"/",permalink:"/laravel-chat-system/docs/next/",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/intro.md",version:"current",frontMatter:{id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},sidebar:"docs",next:{title:"Installation",permalink:"/laravel-chat-system/docs/next/install"}},s=[{value:"Overview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],p={toc:s},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"overview"},(0,r.yg)("inlineCode",{parentName:"h2"},"Overview")),(0,r.yg)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,r.yg)("h2",{id:"features"},"Features"),(0,r.yg)("p",null,"Here are the main features chat system provides."),(0,r.yg)("h3",{id:"conversation"},"Conversation"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,r.yg)("h3",{id:"message"},"Message"),(0,r.yg)("p",null,"The package gives you flexible ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"user")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"system")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"activity")," message type")),(0,r.yg)("h3",{id:"chat-events"},"Chat Events"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"read")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"delete")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e7c3800.25826c75.js b/assets/js/0e7c3800.25826c75.js new file mode 100644 index 0000000..e591fc7 --- /dev/null +++ b/assets/js/0e7c3800.25826c75.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2761],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=l(n),h=o,y=d["".concat(c,".").concat(h)]||d[h]||m[h]||s;return n?r.createElement(y,a(a({ref:t},u),{},{components:n})):r.createElement(y,a({ref:t},u))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=n.length,a=new Array(s);a[0]=h;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var r=n(8168),o=(n(6540),n(5680));const s={id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},a=void 0,i={unversionedId:"guides/configure",id:"version-v1.0.0-beta.0/guides/configure",isDocsHomePage:!1,title:"ChatSystem configuration",description:"Publish config file",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/configure.md",sourceDirName:"guides",slug:"/guides/configure",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/configure.md",version:"v1.0.0-beta.0",frontMatter:{id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Requirements",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/requirements"},next:{title:"Using Providers",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers"}},c=[{value:"Publish config file",id:"publish-config-file",children:[]}],l={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h2",{id:"publish-config-file"},"Publish config file"),(0,o.yg)("p",null,"publish the config file if not published"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-php"},'\nreturn [\n /*\n * ChatSystem Models\n */\n "models" => [\n /*\n * The model you want to use as a User model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Myckhel\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Myckhel\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\Message`\n */\n "message" => Myckhel\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Myckhel\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Myckhel\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Myckhel\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e7c3800.43038fe9.js b/assets/js/0e7c3800.43038fe9.js deleted file mode 100644 index fddf940..0000000 --- a/assets/js/0e7c3800.43038fe9.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8607],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return h}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=l(t),h=o,p=m["".concat(c,".").concat(h)]||m[h]||d[h]||s;return t?r.createElement(p,a(a({ref:n},u),{},{components:t})):r.createElement(p,a({ref:n},u))}));function h(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var s=t.length,a=new Array(s);a[0]=m;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var l=2;l [\n /*\n * The model you want to use as a User model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Myckhel\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Myckhel\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\Message`\n */\n "message" => Myckhel\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Myckhel\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Myckhel\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Myckhel\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/13451d4c.662e7380.js b/assets/js/13451d4c.662e7380.js new file mode 100644 index 0000000..bd271d8 --- /dev/null +++ b/assets/js/13451d4c.662e7380.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6338],{5680:(e,r,n)=>{n.d(r,{xA:()=>p,yg:()=>g});var t=n(6540);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var d=t.createContext({}),c=function(e){var r=t.useContext(d),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=c(e.components);return t.createElement(d.Provider,{value:r},e.children)},l="mdxType",v={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,d=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),l=c(n),u=s,g=l["".concat(d,".").concat(u)]||l[u]||v[u]||i;return n?t.createElement(g,o(o({ref:r},p),{},{components:n})):t.createElement(g,o({ref:r},p))}));function g(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=u;var a={};for(var d in r)hasOwnProperty.call(r,d)&&(a[d]=r[d]);a.originalType=e,a[l]="string"==typeof e?e:s,o[1]=a;for(var c=2;c{n.r(r),n.d(r,{contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var t=n(8168),s=(n(6540),n(5680));const i={id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},o=void 0,a={unversionedId:"guides/providers",id:"version-v1.0.0-beta.4/guides/providers",isDocsHomePage:!1,title:"ChatSystem Providers",description:"Registering Providers",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/providers.md",sourceDirName:"guides",slug:"/guides/providers",permalink:"/laravel-chat-system/docs/guides/providers",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/providers.md",version:"v1.0.0-beta.4",frontMatter:{id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/guides/configure"},next:{title:"Using Models",permalink:"/laravel-chat-system/docs/guides/models"}},d=[{value:"Registering Providers",id:"registering-providers",children:[{value:"Registering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],c={toc:d},p="wrapper";function l(e){let{components:r,...n}=e;return(0,s.yg)(p,(0,t.A)({},c,n,{components:r,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"registering-providers"},"Registering Providers"),(0,s.yg)("h3",{id:"registering-observers"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,s.yg)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,s.yg)("h3",{id:"registering-policies"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,s.yg)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,s.yg)("h3",{id:"registering-broadcast-routes"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,s.yg)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,s.yg)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,s.yg)("h3",{id:"overriding-chatsystem-observer-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,s.yg)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Binkode\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Binkode\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Binkode\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,s.yg)("p",null,"Then you have to unregister the extended observer registered with ",(0,s.yg)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,s.yg)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,s.yg)("h3",{id:"overriding-chatsystem-policy-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,s.yg)("p",null,"You may want to overried some specific Policy methods such as ",(0,s.yg)("inlineCode",{parentName:"p"},"view"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"delete")," method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Binkode\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Binkode\\ChatSystem\\Contracts\\IConversation;\nuse Binkode\\ChatSystem\\Contracts\\IChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(IChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(IChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/137e37e3.047619d1.js b/assets/js/137e37e3.047619d1.js new file mode 100644 index 0000000..bedfa1a --- /dev/null +++ b/assets/js/137e37e3.047619d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9161],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(r),u=n,g=y["".concat(l,".").concat(u)]||y[u]||m[u]||s;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,o=new Array(s);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[y]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=r(8168),n=(r(6540),r(5680));const s={id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},o=void 0,i={unversionedId:"apis/chatsystem",id:"version-v1.0-alpha.3/apis/chatsystem",isDocsHomePage:!1,title:"ChatSytem APIs",description:"registerPolicies()",source:"@site/versioned_docs/version-v1.0-alpha.3/apis/chatSystem.md",sourceDirName:"apis",slug:"/apis/chatsytem",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/apis/chatSystem.md",version:"v1.0-alpha.3",frontMatter:{id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created"}},l=[{value:"registerPolicies()",id:"registerpolicies",children:[]},{value:"registerObservers()",id:"registerobservers",children:[]},{value:"registerBroadcastRoutes()",id:"registerbroadcastroutes",children:[]},{value:"async()",id:"async",children:[]}],c={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,a.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"registerpolicies"},"registerPolicies()"),(0,n.yg)("p",null,"method to register policies ChatSystem provides."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerPolicies();\n")),(0,n.yg)("h2",{id:"registerobservers"},"registerObservers()"),(0,n.yg)("p",null,"method to register observers ChatSystem provides."),(0,n.yg)("h4",{id:"params"},"@Params"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("strong",{parentName:"li"},(0,n.yg)("inlineCode",{parentName:"strong"},"exclude"))," | array of models name to exclude from register | ",(0,n.yg)("inlineCode",{parentName:"li"},"array"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerObservers(exclude: ['conversation' => true]);\n")),(0,n.yg)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,n.yg)("p",null,"method to register broadcast routes ChatSystem provides."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,n.yg)("h2",{id:"async"},"async()"),(0,n.yg)("p",null,"method to asynchronously call fuctions if only ",(0,n.yg)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,n.yg)("h4",{id:"params-1"},"@Params"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("strong",{parentName:"li"},(0,n.yg)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,n.yg)("inlineCode",{parentName:"li"},"callback arguments"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/137e37e3.ea56fe56.js b/assets/js/137e37e3.ea56fe56.js deleted file mode 100644 index 9d25683..0000000 --- a/assets/js/137e37e3.ea56fe56.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2076],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return d}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=c(r),d=a,y=m["".concat(l,".").concat(d)]||m[d]||u[d]||s;return r?n.createElement(y,o(o({ref:t},p),{},{components:r})):n.createElement(y,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var c=2;c true]);\n")),(0,s.kt)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,s.kt)("p",null,"method to register broadcast routes ChatSystem provides."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,s.kt)("h2",{id:"async"},"async()"),(0,s.kt)("p",null,"method to asynchronously call fuctions if only ",(0,s.kt)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,s.kt)("h4",{id:"params-1"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,s.kt)("inlineCode",{parentName:"li"},"callback arguments"))),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15e7592a.9820c88e.js b/assets/js/15e7592a.9820c88e.js new file mode 100644 index 0000000..def2388 --- /dev/null +++ b/assets/js/15e7592a.9820c88e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7356],{5680:(e,t,a)=>{a.d(t,{xA:()=>d,yg:()=>y});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(a),u=r,y=p["".concat(s,".").concat(u)]||p[u]||h[u]||i;return a?n.createElement(y,l(l({ref:t},d),{},{components:a})):n.createElement(y,l({ref:t},d))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,l[1]=o;for(var c=2;c{a.r(t),a.d(t,{contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const i={id:"hasChatEvent",title:"HasChatEvent APIs",sidebar_label:"HasChatEvent",slug:"/apis/traits/chatEvent/hasChatEvent"},l=void 0,o={unversionedId:"apis/traits/chatEvent/hasChatEvent",id:"version-v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent",isDocsHomePage:!1,title:"HasChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent.md",sourceDirName:"apis/traits/chatEvent",slug:"/apis/traits/chatEvent/hasChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent.md",version:"v1.0.0-beta.0",frontMatter:{id:"hasChatEvent",title:"HasChatEvent APIs",sidebar_label:"HasChatEvent",slug:"/apis/traits/chatEvent/hasChatEvent"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"CanMakeChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent"},next:{title:"HasMessage",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage"}},s=[{value:"Namespace",id:"namespace",children:[{value:"whereNotTrashed()",id:"wherenottrashed",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"chatEvent()",id:"chatevent",children:[]},{value:"delivered()",id:"delivered",children:[]},{value:"trashed()",id:"trashed",children:[]},{value:"read()",id:"read",children:[]}]}],c={toc:s},d="wrapper";function p(e){let{components:t,...a}=e;return(0,r.yg)(d,(0,n.A)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"wherenottrashed"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotTrashed()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where model does not have trashed items\nby the given maker.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has many chat_events")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphMany"))),(0,r.yg)("h3",{id:"chatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one chat_events")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h3",{id:"delivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"delivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one delivered events")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker"))," | chatEvent maker to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,r.yg)("h3",{id:"trashed"},(0,r.yg)("inlineCode",{parentName:"h3"},"trashed()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one trashed events")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h3",{id:"read"},(0,r.yg)("inlineCode",{parentName:"h3"},"read()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one read events")),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15e7592a.c64709db.js b/assets/js/15e7592a.c64709db.js deleted file mode 100644 index ba9de46..0000000 --- a/assets/js/15e7592a.c64709db.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2499],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),h=r,v=p["".concat(s,".").concat(h)]||p[h]||u[h]||i;return n?a.createElement(v,o(o({ref:t},d),{},{components:n})):a.createElement(v,o({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,o[1]=l;for(var c=2;cNamespace",id:"namespace",children:[{value:"whereNotTrashed()",id:"wherenottrashed",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"chatEvent()",id:"chatevent",children:[]},{value:"delivered()",id:"delivered",children:[]},{value:"trashed()",id:"trashed",children:[]},{value:"read()",id:"read",children:[]}]}],d={toc:c};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"namespace"},(0,i.kt)("strong",{parentName:"h2"},"Namespace")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,i.kt)("h3",{id:"wherenottrashed"},(0,i.kt)("inlineCode",{parentName:"h3"},"whereNotTrashed()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"adds query where model does not have trashed items\nby the given maker.")),(0,i.kt)("h4",{id:"return"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,i.kt)("h4",{id:"params"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))),(0,i.kt)("h3",{id:"chatevents"},(0,i.kt)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has many chat_events")),(0,i.kt)("h4",{id:"return-1"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphMany"))),(0,i.kt)("h3",{id:"chatevent"},(0,i.kt)("inlineCode",{parentName:"h3"},"chatEvent()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one chat_events")),(0,i.kt)("h4",{id:"return-2"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))),(0,i.kt)("h3",{id:"delivered"},(0,i.kt)("inlineCode",{parentName:"h3"},"delivered()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one delivered events")),(0,i.kt)("h4",{id:"return-3"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))),(0,i.kt)("h4",{id:"params-1"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?maker"))," | chatEvent maker to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,i.kt)("h3",{id:"trashed"},(0,i.kt)("inlineCode",{parentName:"h3"},"trashed()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one trashed events")),(0,i.kt)("h4",{id:"return-4"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))),(0,i.kt)("h3",{id:"read"},(0,i.kt)("inlineCode",{parentName:"h3"},"read()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one read events")),(0,i.kt)("h4",{id:"return-5"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/17896441.63947286.js b/assets/js/17896441.63947286.js deleted file mode 100644 index cbb4bb2..0000000 --- a/assets/js/17896441.63947286.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7918],{8070:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return T}});var n=a(7294),r=a(6742),l=a(4973);var i=function(e){var t=e.metadata;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,l.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n.createElement("div",{className:"pagination-nav__item"},t.previous&&n.createElement(r.Z,{className:"pagination-nav__link",to:t.previous.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(l.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")),n.createElement("div",{className:"pagination-nav__label"},"\xab ",t.previous.title))),n.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t.next&&n.createElement(r.Z,{className:"pagination-nav__link",to:t.next.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(l.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next")),n.createElement("div",{className:"pagination-nav__label"},t.next.title," \xbb"))))},s=a(2263),o=a(907),c=a(9306);var d={unreleased:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(l.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(l.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function m(e){var t=d[e.versionMetadata.banner];return n.createElement(t,e)}function u(e){var t=e.versionLabel,a=e.to,i=e.onClick;return n.createElement(l.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(r.Z,{to:a,onClick:i},n.createElement(l.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){var t,a=e.versionMetadata,r=(0,s.Z)().siteConfig.title,l=(0,o.gA)({failfast:!0}).pluginId,i=(0,c.J)(l).savePreferredVersionName,d=(0,o.Jo)(l),v=d.latestDocSuggestion,h=d.latestVersionSuggestion,E=null!=v?v:(t=h).docs.find((function(e){return e.id===t.mainDocId}));return n.createElement("div",{className:"alert alert--warning margin-bottom--md",role:"alert"},n.createElement("div",null,n.createElement(m,{siteTitle:r,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(u,{versionLabel:h.label,to:E.path,onClick:function(){return i(h.name)}})))}var h=function(e){var t=e.versionMetadata;return"none"===t.banner?n.createElement(n.Fragment,null):n.createElement(v,{versionMetadata:t})},E=a(1217);function f(e){var t=e.lastUpdatedAt,a=e.formattedLastUpdatedAt;return n.createElement(l.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:n.createElement("b",null,n.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function p(e){var t=e.lastUpdatedBy;return n.createElement(l.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:n.createElement("b",null,t)}}," by {user}")}function g(e){var t=e.lastUpdatedAt,a=e.formattedLastUpdatedAt,r=e.lastUpdatedBy;return n.createElement(n.Fragment,null,n.createElement(l.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?n.createElement(f,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:r?n.createElement(p,{lastUpdatedBy:r}):""}},"Last updated{atDate}{byUser}"),!1)}var b=a(571),_=a(6146),N=a(6159),L=a(6010),Z="docItemContainer_33ec",k="lastUpdated_3DPF",U="docItemCol_3FnS";var T=function(e){var t,a=e.content,r=e.versionMetadata,l=a.metadata,s=a.frontMatter,c=s.image,d=s.keywords,m=s.hide_title,u=s.hide_table_of_contents,v=l.description,f=l.title,p=l.editUrl,T=l.lastUpdatedAt,y=l.formattedLastUpdatedAt,w=l.lastUpdatedBy,A=(0,o.gA)({failfast:!0}).pluginId,C=(0,o.gB)(A).length>1,B=!m&&void 0===a.contentTitle;return n.createElement(n.Fragment,null,n.createElement(E.Z,{title:f,description:v,keywords:d,image:c}),n.createElement("div",{className:"row"},n.createElement("div",{className:(0,L.Z)("col",(t={},t[U]=!u,t))},n.createElement(h,{versionMetadata:r}),n.createElement("div",{className:Z},n.createElement("article",null,C&&n.createElement("span",{className:"badge badge--secondary"},"Version: ",r.label),n.createElement("div",{className:"markdown"},B&&n.createElement(N.N,null,f),n.createElement(a,null)),(p||T||w)&&n.createElement("footer",{className:"row docusaurus-mt-lg"},n.createElement("div",{className:"col"},p&&n.createElement(_.Z,{editUrl:p})),n.createElement("div",{className:(0,L.Z)("col",k)},(T||w)&&n.createElement(g,{lastUpdatedAt:T,formattedLastUpdatedAt:y,lastUpdatedBy:w})))),n.createElement(i,{metadata:l}))),!u&&a.toc&&n.createElement("div",{className:"col col--3"},n.createElement(b.Z,{toc:a.toc}))))}},6146:function(e,t,a){"use strict";a.d(t,{Z:function(){return d}});var n=a(7294),r=a(4973),l=a(2122),i=a(9756),s=a(6010),o="iconEdit_2_ui",c=function(e){var t=e.className,a=(0,i.Z)(e,["className"]);return n.createElement("svg",(0,l.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(o,t),"aria-hidden":"true"},a),n.createElement("g",null,n.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function d(e){var t=e.editUrl;return n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},n.createElement(c,null),n.createElement(r.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},6159:function(e,t,a){"use strict";a.d(t,{N:function(){return m},Z:function(){return u}});var n=a(9756),r=a(2122),l=a(7294),i=a(6010),s=a(4973),o=a(9306),c="enhancedAnchor_2LWZ",d="h1Heading_27L5",m=function(e){var t=Object.assign({},e);return l.createElement("header",null,l.createElement("h1",(0,r.Z)({},t,{id:void 0,className:d}),t.children))},u=function(e){return"h1"===e?m:(t=e,function(e){var a,r=e.id,d=(0,n.Z)(e,["id"]),m=(0,o.LU)().navbar.hideOnScroll;return r?l.createElement(t,d,l.createElement("a",{"aria-hidden":"true",tabIndex:-1,className:(0,i.Z)("anchor",(a={},a[c]=!m,a)),id:r}),d.children,l.createElement("a",{className:"hash-link",href:"#"+r,title:(0,s.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"#")):l.createElement(t,d)});var t}},571:function(e,t,a){"use strict";a.d(t,{Z:function(){return c}});var n=a(7294),r=a(6010);var l=function(e,t,a){var r=(0,n.useState)(void 0),l=r[0],i=r[1];(0,n.useEffect)((function(){function n(){var n=function(){var e=Array.from(document.getElementsByClassName("anchor")),t=e.find((function(e){return e.getBoundingClientRect().top>=a}));if(t){if(t.getBoundingClientRect().top>=a){var n=e[e.indexOf(t)-1];return null!=n?n:t}return t}return e[e.length-1]}();if(n)for(var r=0,s=!1,o=document.getElementsByClassName(e);r{a.r(t),a.d(t,{default:()=>U});var n=a(6540),l=a(4676),r=a(4798);const i=function(e){const{metadata:t}=e;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n.createElement("div",{className:"pagination-nav__item"},t.previous&&n.createElement(l.A,{className:"pagination-nav__link",to:t.previous.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(r.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")),n.createElement("div",{className:"pagination-nav__label"},"\xab ",t.previous.title))),n.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t.next&&n.createElement(l.A,{className:"pagination-nav__link",to:t.next.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(r.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next")),n.createElement("div",{className:"pagination-nav__label"},t.next.title," \xbb"))))};var s=a(4586),o=a(4098),c=a(3155);const d={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(r.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(r.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function m(e){const t=d[e.versionMetadata.banner];return n.createElement(t,e)}function u(e){let{versionLabel:t,to:a,onClick:i}=e;return n.createElement(r.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.A,{to:a,onClick:i},n.createElement(r.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{versionMetadata:t}=e;const{siteConfig:{title:a}}=(0,s.A)(),{pluginId:l}=(0,o.vT)({failfast:!0}),{savePreferredVersionName:r}=(0,c.g1)(l),{latestDocSuggestion:i,latestVersionSuggestion:d}=(0,o.HW)(l),v=i??(h=d).docs.find((e=>e.id===h.mainDocId));var h;return n.createElement("div",{className:"alert alert--warning margin-bottom--md",role:"alert"},n.createElement("div",null,n.createElement(m,{siteTitle:a,versionMetadata:t})),n.createElement("div",{className:"margin-top--md"},n.createElement(u,{versionLabel:d.label,to:v.path,onClick:()=>r(d.name)})))}const h=function(e){let{versionMetadata:t}=e;return"none"===t.banner?n.createElement(n.Fragment,null):n.createElement(v,{versionMetadata:t})};var p=a(8139);function E(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a}=e;return n.createElement(r.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:n.createElement("b",null,n.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function g(e){let{lastUpdatedBy:t}=e;return n.createElement(r.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:n.createElement("b",null,t)}}," by {user}")}function b(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a,lastUpdatedBy:l}=e;return n.createElement(n.Fragment,null,n.createElement(r.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?n.createElement(E,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:l?n.createElement(g,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var f=a(1461),A=a(6458),_=a(6287),N=a(53);const L="docItemContainer_oiyr",T="lastUpdated_wj+Z",k="docItemCol_zHA2";const U=function(e){const{content:t,versionMetadata:a}=e,{metadata:l,frontMatter:r}=t,{image:s,keywords:c,hide_title:d,hide_table_of_contents:m}=r,{description:u,title:v,editUrl:E,lastUpdatedAt:g,formattedLastUpdatedAt:U,lastUpdatedBy:y}=l,{pluginId:w}=(0,o.vT)({failfast:!0}),C=(0,o.jh)(w).length>1,x=!d&&void 0===t.contentTitle;return n.createElement(n.Fragment,null,n.createElement(p.A,{title:v,description:u,keywords:c,image:s}),n.createElement("div",{className:"row"},n.createElement("div",{className:(0,N.A)("col",{[k]:!m})},n.createElement(h,{versionMetadata:a}),n.createElement("div",{className:L},n.createElement("article",null,C&&n.createElement("span",{className:"badge badge--secondary"},"Version: ",a.label),n.createElement("div",{className:"markdown"},x&&n.createElement(_.e,null,v),n.createElement(t,null)),(E||g||y)&&n.createElement("footer",{className:"row docusaurus-mt-lg"},n.createElement("div",{className:"col"},E&&n.createElement(A.A,{editUrl:E})),n.createElement("div",{className:(0,N.A)("col",T)},(g||y)&&n.createElement(b,{lastUpdatedAt:g,formattedLastUpdatedAt:U,lastUpdatedBy:y})))),n.createElement(i,{metadata:l}))),!m&&t.toc&&n.createElement("div",{className:"col col--3"},n.createElement(f.A,{toc:t.toc}))))}},6458:(e,t,a)=>{a.d(t,{A:()=>c});var n=a(6540),l=a(4798),r=a(8168),i=a(53);const s="iconEdit_mS5F",o=e=>{let{className:t,...a}=e;return n.createElement("svg",(0,r.A)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,i.A)(s,t),"aria-hidden":"true"},a),n.createElement("g",null,n.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function c(e){let{editUrl:t}=e;return n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},n.createElement(o,null),n.createElement(l.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},6287:(e,t,a)=>{a.d(t,{e:()=>d,A:()=>m});var n=a(8168),l=a(6540),r=a(53),i=a(4798),s=a(3155);const o="enhancedAnchor_WiXH",c="h1Heading_dC7a",d=function(e){let{...t}=e;return l.createElement("header",null,l.createElement("h1",(0,n.A)({},t,{id:void 0,className:c}),t.children))},m=e=>{return"h1"===e?d:(t=e,function(e){let{id:a,...n}=e;const{navbar:{hideOnScroll:c}}=(0,s.pN)();return a?l.createElement(t,n,l.createElement("a",{"aria-hidden":"true",tabIndex:-1,className:(0,r.A)("anchor",{[o]:!c}),id:a}),n.children,l.createElement("a",{className:"hash-link",href:`#${a}`,title:(0,i.T)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"#")):l.createElement(t,n)});var t}},1461:(e,t,a)=>{a.d(t,{A:()=>c});var n=a(6540),l=a(53);const r=function(e,t,a){const[l,r]=(0,n.useState)(void 0);(0,n.useEffect)((()=>{function n(){const n=function(){const e=Array.from(document.getElementsByClassName("anchor")),t=e.find((e=>{const{top:t}=e.getBoundingClientRect();return t>=a}));if(t){if(t.getBoundingClientRect().top>=a){return e[e.indexOf(t)-1]??t}return t}return e[e.length-1]}();if(n){let a=0,i=!1;const s=document.getElementsByClassName(e);for(;a{document.removeEventListener("scroll",n),document.removeEventListener("resize",n)}}))},i="tableOfContents_vrFS",s="table-of-contents__link";function o(e){let{toc:t,isChild:a}=e;return t.length?n.createElement("ul",{className:a?"":"table-of-contents table-of-contents__left-border"},t.map((e=>n.createElement("li",{key:e.id},n.createElement("a",{href:`#${e.id}`,className:s,dangerouslySetInnerHTML:{__html:e.value}}),n.createElement(o,{isChild:!0,toc:e.children}))))):null}const c=function(e){let{toc:t}=e;return r(s,"table-of-contents__link--active",100),n.createElement("div",{className:(0,l.A)(i,"thin-scrollbar")},n.createElement(o,{toc:t}))}}}]); \ No newline at end of file diff --git a/assets/js/18878762.7c29ad88.js b/assets/js/18878762.7c29ad88.js deleted file mode 100644 index 5a226af..0000000 --- a/assets/js/18878762.7c29ad88.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8247],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return h}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=p(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||u[h]||s;return n?r.createElement(m,o(o({ref:t},c),{},{components:n})):r.createElement(m,o({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var p=2;p{n.d(t,{xA:()=>c,yg:()=>m});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(n),h=a,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||s;return n?r.createElement(m,o(o({ref:t},c),{},{components:n})):r.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=h;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(8168),a=(n(6540),n(5680));const s={id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},o=void 0,i={unversionedId:"guides/guides.routes",id:"version-v1.0-alpha.3/guides/guides.routes",isDocsHomePage:!1,title:"Using Routes",description:"ChatSystem provides basic usage through some route endpoints.",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/routes.md",sourceDirName:"guides",slug:"/guides/routes",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/routes.md",version:"v1.0-alpha.3",frontMatter:{id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Using Models",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/models"},next:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation"}},l=[],p={toc:l},c="wrapper";function u(e){let{components:t,...n}=e;return(0,a.yg)(c,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"ChatSystem provides basic usage through some route endpoints.\nYou may make use of them if suites your use cases."),(0,a.yg)("p",null,"Checkout api documentation for each route below: ",(0,a.yg)("a",{parentName:"p",href:"https://documenter.getpostman.com/view/9558301/TzXwEyDq#83bc243b-8297-417d-9fd8-18a557e4826e"},"Postman documentation link"),"."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre"},"+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| Domain | Method | URI | Name | Action | Middleware |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| | GET|HEAD | api/chat_events | chat_events.index | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/chat_events | chat_events.store | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/chat_events/{chat_event} | chat_events.show | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/chat_events/{chat_event} | chat_events.update | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/chat_events/{chat_event} | chat_events.destroy | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations | conversations.index | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/conversations | conversations.store | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/count | generated::qP7MgZeXOQ2KO9kH | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@count | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/{conversation} | conversations.show | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/conversations/{conversation} | conversations.update | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/conversations/{conversation} | conversations.destroy | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages | generated::P5UtLfEaXJNWQUcU | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@delete | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages | messages.index | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/messages | messages.store | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages/{message} | messages.show | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/messages/{message} | messages.update | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages/{message} | messages.destroy | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.503cefa3.js b/assets/js/1be78505.503cefa3.js new file mode 100644 index 0000000..609a7f3 --- /dev/null +++ b/assets/js/1be78505.503cefa3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8714,9090],{106:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Z});var n=a(6540),o=a(5680),i=a(4586),l=a(5920),s=a(5241),r=a(8168),c=a(53),d=a(3155),m=a(4911),u=a(9312),b=a(5515),p=a(4676),h=a(6654),E=a(1773);const f=e=>n.createElement("svg",(0,r.A)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),n.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})));var v=a(1952),C=a(6359),g=a(4798);const A="sidebar_a3j0",k="sidebarWithHideableNavbar_VlPv",_="sidebarHidden_OqfG",N="sidebarLogo_hmkv",S="menu_cyFh",T="menuLinkText_lRH+",I="menuWithAnnouncementBar_+O1J",y="collapseSidebarButton_eoK2",M="collapseSidebarButtonIcon_e+kA",R="sidebarMenuIcon_iZzd",x="sidebarMenuCloseIcon_6kU2",w=(e,t)=>"link"===e.type?(0,d.ys)(e.href,t):"category"===e.type&&e.items.some((e=>w(e,t))),B=(0,n.memo)((function(e){let{items:t,...a}=e;return t.map(((e,t)=>n.createElement(P,(0,r.A)({key:t,item:e},a))))}));function P(e){return"category"===e.item.type?n.createElement(L,e):n.createElement(H,e)}function L(e){let{item:t,onItemClick:a,collapsible:o,activePath:i,...l}=e;const{items:s,label:m}=t,u=w(t,i),b=(0,d.ZC)(u),[p,h]=(0,n.useState)((()=>!!o&&(!u&&t.collapsed))),E=(0,n.useRef)(null),[f,v]=(0,n.useState)(void 0),C=function(e){void 0===e&&(e=!0),v(e?`${E.current?.scrollHeight}px`:void 0)};(0,n.useEffect)((()=>{u&&!b&&p&&h(!1)}),[u,b,p]);const g=(0,n.useCallback)((e=>{e.preventDefault(),f||C(),setTimeout((()=>h((e=>!e))),100)}),[f]);return 0===s.length?null:n.createElement("li",{className:(0,c.A)("menu__list-item",{"menu__list-item--collapsed":p})},n.createElement("a",(0,r.A)({className:(0,c.A)("menu__link",{"menu__link--sublist":o,"menu__link--active":o&&u,[T]:!o}),onClick:o?g:void 0,href:o?"#":void 0},l),m),n.createElement("ul",{className:"menu__list",ref:E,style:{height:f},onTransitionEnd:()=>{p||C(!1)}},n.createElement(B,{items:s,tabIndex:p?"-1":"0",onItemClick:a,collapsible:o,activePath:i})))}function H(e){let{item:t,onItemClick:a,activePath:o,collapsible:i,...l}=e;const{href:s,label:d}=t,m=w(t,o);return n.createElement("li",{className:"menu__list-item",key:d},n.createElement(p.A,(0,r.A)({className:(0,c.A)("menu__link",{"menu__link--active":m}),to:s},(0,h.A)(s)&&{isNavLink:!0,exact:!0,onClick:a},l),(0,h.A)(s)?d:n.createElement("span",null,d,n.createElement(C.A,null))))}function D(e){let{onClick:t}=e;return n.createElement("button",{type:"button",title:(0,g.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,g.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,c.A)("button button--secondary button--outline",y),onClick:t},n.createElement(f,{className:M}))}function W(e){let{responsiveSidebarOpened:t,onClick:a}=e;return n.createElement("button",{"aria-label":t?(0,g.T)({id:"theme.docs.sidebar.responsiveCloseButtonLabel",message:"Close menu",description:"The ARIA label for close button of mobile doc sidebar"}):(0,g.T)({id:"theme.docs.sidebar.responsiveOpenButtonLabel",message:"Open menu",description:"The ARIA label for open button of mobile doc sidebar"}),"aria-haspopup":"true",className:"button button--secondary button--sm menu__button",type:"button",onClick:a},t?n.createElement("span",{className:(0,c.A)(R,x)},"\xd7"):n.createElement(v.A,{className:R,height:24,width:24}))}const O=function(e){let{path:t,sidebar:a,sidebarCollapsible:o=!0,onCollapse:i,isHidden:l}=e;const s=function(){const{isClosed:e}=(0,d.Mj)(),[t,a]=(0,n.useState)(!e);return(0,b.A)((t=>{let{scrollY:n}=t;e||a(0===n)})),t}(),{navbar:{hideOnScroll:r},hideableSidebar:p}=(0,d.pN)(),{isClosed:h}=(0,d.Mj)(),{showResponsiveSidebar:f,closeResponsiveSidebar:v,toggleResponsiveSidebar:C}=function(){const[e,t]=(0,n.useState)(!1);(0,m.A)(e);const a=(0,u.A)();return(0,n.useEffect)((()=>{a===u.X.desktop&&t(!1)}),[a]),{showResponsiveSidebar:e,closeResponsiveSidebar:(0,n.useCallback)((e=>{e.target.blur(),t(!1)}),[t]),toggleResponsiveSidebar:(0,n.useCallback)((()=>{t((e=>!e))}),[t])}}();return n.createElement("div",{className:(0,c.A)(A,{[k]:r,[_]:l})},r&&n.createElement(E.A,{tabIndex:-1,className:N}),n.createElement("nav",{className:(0,c.A)("menu","menu--responsive","thin-scrollbar",S,{"menu--show":f,[I]:!h&&s}),"aria-label":(0,g.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Sidebar navigation",description:"The ARIA label for documentation menu"})},n.createElement(W,{responsiveSidebarOpened:f,onClick:C}),n.createElement("ul",{className:"menu__list"},n.createElement(B,{items:a,onItemClick:v,collapsible:o,activePath:t}))),p&&n.createElement(D,{onClick:i}))};var F=a(8607),z=a(9090),U=a(6347);const j={docPage:"docPage_lDyR",docMainContainer:"docMainContainer_r8cw",docMainContainerEnhanced:"docMainContainerEnhanced_SOUu",docSidebarContainer:"docSidebarContainer_0YBq",docSidebarContainerHidden:"docSidebarContainerHidden_Qlt2",collapsedDocSidebar:"collapsedDocSidebar_zZpm",expandSidebarButtonIcon:"expandSidebarButtonIcon_cxi8",docItemWrapperEnhanced:"docItemWrapperEnhanced_aT5H"};function G(e){let{currentDocRoute:t,versionMetadata:a,children:l}=e;const{siteConfig:r,isClient:m}=(0,i.A)(),{pluginId:u,version:b}=a,{sidebarName:p,sidebar:h}=function(e){let{versionMetadata:t,currentDocRoute:a}=e;const{permalinkToSidebar:n,docsSidebars:o}=t,i=n[a.path]||n[(l=a.path,l.endsWith("/")?l:`${l}/`)]||n[function(e){return e.endsWith("/")?e.slice(0,-1):e}(a.path)];var l;return{sidebar:o[i],sidebarName:i}}({versionMetadata:a,currentDocRoute:t}),[E,v]=(0,n.useState)(!1),[C,A]=(0,n.useState)(!1),k=(0,n.useCallback)((()=>{C&&A(!1),v(!E)}),[C]);return n.createElement(s.A,{key:m,wrapperClassName:d.GN.wrapper.docPages,pageClassName:d.GN.page.docPage,searchMetadatas:{version:b,tag:(0,d.tU)(u,b)}},n.createElement("div",{className:j.docPage},h&&n.createElement("aside",{className:(0,c.A)(j.docSidebarContainer,{[j.docSidebarContainerHidden]:E}),onTransitionEnd:e=>{e.currentTarget.classList.contains(j.docSidebarContainer)&&E&&A(!0)}},n.createElement(O,{key:p,sidebar:h,path:t.path,sidebarCollapsible:r.themeConfig?.sidebarCollapsible??!0,onCollapse:k,isHidden:C}),C&&n.createElement("div",{className:j.collapsedDocSidebar,title:(0,g.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,g.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:k,onClick:k},n.createElement(f,{className:j.expandSidebarButtonIcon}))),n.createElement("main",{className:(0,c.A)(j.docMainContainer,{[j.docMainContainerEnhanced]:E||!h})},n.createElement("div",{className:(0,c.A)("container padding-top--md padding-bottom--lg",j.docItemWrapper,{[j.docItemWrapperEnhanced]:E})},n.createElement(o.xA,{components:F.A},l)))))}const Z=function(e){const{route:{routes:t},versionMetadata:a,location:o}=e,i=t.find((e=>(0,U.B6)(o.pathname,e)));return i?n.createElement(G,{currentDocRoute:i,versionMetadata:a},(0,l.A)(t,{versionMetadata:a})):n.createElement(z.default,e)}},9090:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});var n=a(6540),o=a(5241),i=a(4798);const l=function(){return n.createElement(o.A,{title:(0,i.T)({id:"theme.NotFound.title",message:"Page Not Found"})},n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(i.A,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(i.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(i.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."))))))}}}]); \ No newline at end of file diff --git a/assets/js/1be78505.60f177c0.js b/assets/js/1be78505.60f177c0.js deleted file mode 100644 index 834c668..0000000 --- a/assets/js/1be78505.60f177c0.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9514,4608],{3616:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return Y}});var n=a(7294),i=a(3905),o=a(2263),r=a(6291),l=a(6016),c=a(2122),s=a(9756),d=a(6010),u=a(9306),m=a(1839),b=a(3783),p=a(7898),h=a(6742),f=a(3919),v=a(5537),E=function(e){return n.createElement("svg",(0,c.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),n.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))},C=a(4478),g=a(8617),k=a(4973),_="sidebar_15mo",N="sidebarWithHideableNavbar_267A",Z="sidebarHidden_2kNb",S="sidebarLogo_3h0W",I="menu_Bmed",M="menuLinkText_2aKo",T="menuWithAnnouncementBar_2WvA",y="collapseSidebarButton_1CGd",A="collapseSidebarButtonIcon_3E-R",R="sidebarMenuIcon_fgN0",w="sidebarMenuCloseIcon_1lpH",x=function e(t,a){return"link"===t.type?(0,u.Mg)(t.href,a):"category"===t.type&&t.items.some((function(t){return e(t,a)}))},L=(0,n.memo)((function(e){var t=e.items,a=(0,s.Z)(e,["items"]);return t.map((function(e,t){return n.createElement(P,(0,c.Z)({key:t,item:e},a))}))}));function P(e){switch(e.item.type){case"category":return n.createElement(B,e);case"link":default:return n.createElement(D,e)}}function B(e){var t,a=e.item,i=e.onItemClick,o=e.collapsible,r=e.activePath,l=(0,s.Z)(e,["item","onItemClick","collapsible","activePath"]),m=a.items,b=a.label,p=x(a,r),h=(0,u.D9)(p),f=(0,n.useState)((function(){return!!o&&(!p&&a.collapsed)})),v=f[0],E=f[1],C=(0,n.useRef)(null),g=(0,n.useState)(void 0),k=g[0],_=g[1],N=function(e){var t;void 0===e&&(e=!0),_(e?(null==(t=C.current)?void 0:t.scrollHeight)+"px":void 0)};(0,n.useEffect)((function(){p&&!h&&v&&E(!1)}),[p,h,v]);var Z=(0,n.useCallback)((function(e){e.preventDefault(),k||N(),setTimeout((function(){return E((function(e){return!e}))}),100)}),[k]);return 0===m.length?null:n.createElement("li",{className:(0,d.Z)("menu__list-item",{"menu__list-item--collapsed":v})},n.createElement("a",(0,c.Z)({className:(0,d.Z)("menu__link",(t={"menu__link--sublist":o,"menu__link--active":o&&p},t[M]=!o,t)),onClick:o?Z:void 0,href:o?"#":void 0},l),b),n.createElement("ul",{className:"menu__list",ref:C,style:{height:k},onTransitionEnd:function(){v||N(!1)}},n.createElement(L,{items:m,tabIndex:v?"-1":"0",onItemClick:i,collapsible:o,activePath:r})))}function D(e){var t=e.item,a=e.onItemClick,i=e.activePath,o=(e.collapsible,(0,s.Z)(e,["item","onItemClick","activePath","collapsible"])),r=t.href,l=t.label,u=x(t,i);return n.createElement("li",{className:"menu__list-item",key:l},n.createElement(h.Z,(0,c.Z)({className:(0,d.Z)("menu__link",{"menu__link--active":u}),to:r},(0,f.Z)(r)&&{isNavLink:!0,exact:!0,onClick:a},o),(0,f.Z)(r)?l:n.createElement("span",null,l,n.createElement(g.Z,null))))}function H(e){var t=e.onClick;return n.createElement("button",{type:"button",title:(0,k.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,k.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,d.Z)("button button--secondary button--outline",y),onClick:t},n.createElement(E,{className:A}))}function W(e){var t=e.responsiveSidebarOpened,a=e.onClick;return n.createElement("button",{"aria-label":t?(0,k.I)({id:"theme.docs.sidebar.responsiveCloseButtonLabel",message:"Close menu",description:"The ARIA label for close button of mobile doc sidebar"}):(0,k.I)({id:"theme.docs.sidebar.responsiveOpenButtonLabel",message:"Open menu",description:"The ARIA label for open button of mobile doc sidebar"}),"aria-haspopup":"true",className:"button button--secondary button--sm menu__button",type:"button",onClick:a},t?n.createElement("span",{className:(0,d.Z)(R,w)},"\xd7"):n.createElement(C.Z,{className:R,height:24,width:24}))}var F=function(e){var t,a,i=e.path,o=e.sidebar,r=e.sidebarCollapsible,l=void 0===r||r,c=e.onCollapse,s=e.isHidden,h=function(){var e=(0,u.nT)().isClosed,t=(0,n.useState)(!e),a=t[0],i=t[1];return(0,p.Z)((function(t){var a=t.scrollY;e||i(0===a)})),a}(),f=(0,u.LU)(),E=f.navbar.hideOnScroll,C=f.hideableSidebar,g=(0,u.nT)().isClosed,M=function(){var e=(0,n.useState)(!1),t=e[0],a=e[1];(0,m.Z)(t);var i=(0,b.Z)();return(0,n.useEffect)((function(){i===b.D.desktop&&a(!1)}),[i]),{showResponsiveSidebar:t,closeResponsiveSidebar:(0,n.useCallback)((function(e){e.target.blur(),a(!1)}),[a]),toggleResponsiveSidebar:(0,n.useCallback)((function(){a((function(e){return!e}))}),[a])}}(),y=M.showResponsiveSidebar,A=M.closeResponsiveSidebar,R=M.toggleResponsiveSidebar;return n.createElement("div",{className:(0,d.Z)(_,(t={},t[N]=E,t[Z]=s,t))},E&&n.createElement(v.Z,{tabIndex:-1,className:S}),n.createElement("nav",{className:(0,d.Z)("menu","menu--responsive","thin-scrollbar",I,(a={"menu--show":y},a[T]=!g&&h,a)),"aria-label":(0,k.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Sidebar navigation",description:"The ARIA label for documentation menu"})},n.createElement(W,{responsiveSidebarOpened:y,onClick:R}),n.createElement("ul",{className:"menu__list"},n.createElement(L,{items:o,onItemClick:A,collapsible:l,activePath:i}))),C&&n.createElement(H,{onClick:c}))},O=a(7277),K=a(4608),z=a(5977),J={docMainContainer:"docMainContainer_3ufF",docPage:"docPage_31aa",docMainContainerEnhanced:"docMainContainerEnhanced_3NYZ",docSidebarContainer:"docSidebarContainer_3Kbt",docSidebarContainerHidden:"docSidebarContainerHidden_3pA8",collapsedDocSidebar:"collapsedDocSidebar_2JMH",expandSidebarButtonIcon:"expandSidebarButtonIcon_1naQ",docItemWrapperEnhanced:"docItemWrapperEnhanced_2vyJ"};function U(e){var t,a,r,c,s,m=e.currentDocRoute,b=e.versionMetadata,p=e.children,h=(0,o.Z)(),f=h.siteConfig,v=h.isClient,C=b.pluginId,g=b.version,_=function(e){var t,a=e.versionMetadata,n=e.currentDocRoute,i=a.permalinkToSidebar,o=a.docsSidebars,r=i[n.path]||i[(t=n.path,t.endsWith("/")?t:t+"/")]||i[function(e){return e.endsWith("/")?e.slice(0,-1):e}(n.path)];return{sidebar:o[r],sidebarName:r}}({versionMetadata:b,currentDocRoute:m}),N=_.sidebarName,Z=_.sidebar,S=(0,n.useState)(!1),I=S[0],M=S[1],T=(0,n.useState)(!1),y=T[0],A=T[1],R=(0,n.useCallback)((function(){y&&A(!1),M(!I)}),[y]);return n.createElement(l.Z,{key:v,wrapperClassName:u.kM.wrapper.docPages,pageClassName:u.kM.page.docPage,searchMetadatas:{version:g,tag:(0,u.os)(C,g)}},n.createElement("div",{className:J.docPage},Z&&n.createElement("aside",{className:(0,d.Z)(J.docSidebarContainer,(t={},t[J.docSidebarContainerHidden]=I,t)),onTransitionEnd:function(e){e.currentTarget.classList.contains(J.docSidebarContainer)&&I&&A(!0)}},n.createElement(F,{key:N,sidebar:Z,path:m.path,sidebarCollapsible:null==(a=null==(r=f.themeConfig)?void 0:r.sidebarCollapsible)||a,onCollapse:R,isHidden:y}),y&&n.createElement("div",{className:J.collapsedDocSidebar,title:(0,k.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,k.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:R,onClick:R},n.createElement(E,{className:J.expandSidebarButtonIcon}))),n.createElement("main",{className:(0,d.Z)(J.docMainContainer,(c={},c[J.docMainContainerEnhanced]=I||!Z,c))},n.createElement("div",{className:(0,d.Z)("container padding-top--md padding-bottom--lg",J.docItemWrapper,(s={},s[J.docItemWrapperEnhanced]=I,s))},n.createElement(i.Zo,{components:O.Z},p)))))}var Y=function(e){var t=e.route.routes,a=e.versionMetadata,i=e.location,o=t.find((function(e){return(0,z.LX)(i.pathname,e)}));return o?n.createElement(U,{currentDocRoute:o,versionMetadata:a},(0,r.Z)(t,{versionMetadata:a})):n.createElement(K.default,e)}},4608:function(e,t,a){"use strict";a.r(t);var n=a(7294),i=a(6016),o=a(4973);t.default=function(){return n.createElement(i.Z,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})},n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."))))))}}}]); \ No newline at end of file diff --git a/assets/js/1c6097b5.be27fa45.js b/assets/js/1c6097b5.be27fa45.js new file mode 100644 index 0000000..1b81943 --- /dev/null +++ b/assets/js/1c6097b5.be27fa45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7806],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>y});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=n.createContext({}),s=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},u=function(e){var r=s(e.components);return n.createElement(c.Provider,{value:r},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(t),m=i,y=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return t?n.createElement(y,a(a({ref:r},u),{},{components:t})):n.createElement(y,a({ref:r},u))}));function y(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[p]="string"==typeof e?e:i,a[1]=l;for(var s=2;s{t.r(r),t.d(r,{contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=t(8168),i=(t(6540),t(5680));const o={id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},a=void 0,l={unversionedId:"require",id:"require",isDocsHomePage:!1,title:"Requirements",description:"Laravel Version",source:"@site/docs/require.md",sourceDirName:".",slug:"/requirements",permalink:"/laravel-chat-system/docs/next/requirements",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/require.md",version:"current",frontMatter:{id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},sidebar:"docs",previous:{title:"Installation",permalink:"/laravel-chat-system/docs/next/install"},next:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/next/guides/configure"}},c=[{value:"Laravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],s={toc:c},u="wrapper";function p(e){let{components:r,...t}=e;return(0,i.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h2",{id:"laravel-version"},(0,i.yg)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,i.yg)("p",null,"This package requires laravel 6 or higher."),(0,i.yg)("h2",{id:"php-version"},(0,i.yg)("inlineCode",{parentName:"h2"},"PHP Version")),(0,i.yg)("p",null,"This package requires php 8 or higher."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c6097b5.ebf8cca6.js b/assets/js/1c6097b5.ebf8cca6.js deleted file mode 100644 index f08119a..0000000 --- a/assets/js/1c6097b5.ebf8cca6.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6968],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return s},kt:function(){return d}});var n=t(7294);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),m=u(t),d=i,f=m["".concat(l,".").concat(d)]||m[d]||p[d]||o;return t?n.createElement(f,a(a({ref:r},s),{},{components:t})):n.createElement(f,a({ref:r},s))}));function d(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c.mdxType="string"==typeof e?e:i,a[1]=c;for(var u=2;uLaravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],s={toc:u};function p(e){var r=e.components,t=(0,i.Z)(e,["components"]);return(0,o.kt)("wrapper",(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"laravel-version"},(0,o.kt)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,o.kt)("p",null,"This package requires laravel 6 or higher."),(0,o.kt)("h2",{id:"php-version"},(0,o.kt)("inlineCode",{parentName:"h2"},"PHP Version")),(0,o.kt)("p",null,"This package requires php 8 or higher."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c8e0551.b4640fb2.js b/assets/js/1c8e0551.b4640fb2.js new file mode 100644 index 0000000..770fa90 --- /dev/null +++ b/assets/js/1c8e0551.b4640fb2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6609],{4060:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v1.0.0-beta.0","label":"v1.0.0-beta.0","banner":"unmaintained","isLast":false,"docsSidebars":{"version-v1.0.0-beta.0/docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/v1.0.0-beta.0/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/v1.0.0-beta.0/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/v1.0.0-beta.0/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Traits","items":[{"collapsed":false,"type":"category","label":"ChatEvent","items":[{"type":"link","label":"CanMakeChatEvent","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent"},{"type":"link","label":"HasChatEvent","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent"}]},{"collapsed":false,"type":"category","label":"Message","items":[{"type":"link","label":"HasMessage","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage"}]}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/message":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/models":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/install":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/v1.0.0-beta.0/requirements":"version-v1.0.0-beta.0/docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/1c8e0551.b55f2ab6.js b/assets/js/1c8e0551.b55f2ab6.js deleted file mode 100644 index 4b3a247..0000000 --- a/assets/js/1c8e0551.b55f2ab6.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7698],{8856:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"default","version":"v1.0.0-beta.0","label":"v1.0.0-beta.0","banner":"none","isLast":true,"docsSidebars":{"version-v1.0.0-beta.0/docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Traits","items":[{"collapsed":false,"type":"category","label":"ChatEvent","items":[{"type":"link","label":"CanMakeChatEvent","href":"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent"},{"type":"link","label":"HasChatEvent","href":"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent"}]},{"collapsed":false,"type":"category","label":"Message","items":[{"type":"link","label":"HasMessage","href":"/laravel-chat-system/docs/apis/traits/message/hasMessage"}]}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/apis/chatsytem":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/events/message/created":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/events/message/events":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/models/chatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/models/conversation":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/models/message":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/apis/traits/message/hasMessage":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/broadcasts":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/configure":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/chatEvent":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/conversation":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/message":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/routes":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/models":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/guides/providers":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/install":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/":"version-v1.0.0-beta.0/docs","/laravel-chat-system/docs/requirements":"version-v1.0.0-beta.0/docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.170e1da5.js b/assets/js/1f391b9e.170e1da5.js deleted file mode 100644 index d209025..0000000 --- a/assets/js/1f391b9e.170e1da5.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3085],{7979:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return u}});var r=n(7294),a=n(6010),c=n(6016),l=n(3905),o=n(7277),i=n(571),s=n(9306),m="mdxPageWrapper_3qD3";var u=function(e){var t=e.content,n=t.frontMatter,u=t.metadata,d=n.title,f=n.description,v=n.wrapperClassName,p=n.hide_table_of_contents,E=u.permalink;return r.createElement(c.Z,{title:d,description:f,permalink:E,wrapperClassName:null!=v?v:s.kM.wrapper.mdxPages,pageClassName:s.kM.page.mdxPage},r.createElement("main",{className:"container container--fluid margin-vert--lg"},r.createElement("div",{className:(0,a.Z)("row",m)},r.createElement("div",{className:(0,a.Z)("col",!p&&"col--8")},r.createElement(l.Zo,{components:o.Z},r.createElement(t,null))),!p&&t.toc&&r.createElement("div",{className:"col col--2"},r.createElement(i.Z,{toc:t.toc})))))}},571:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(7294),a=n(6010);var c=function(e,t,n){var a=(0,r.useState)(void 0),c=a[0],l=a[1];(0,r.useEffect)((function(){function r(){var r=function(){var e=Array.from(document.getElementsByClassName("anchor")),t=e.find((function(e){return e.getBoundingClientRect().top>=n}));if(t){if(t.getBoundingClientRect().top>=n){var r=e[e.indexOf(t)-1];return null!=r?r:t}return t}return e[e.length-1]}();if(r)for(var a=0,o=!1,i=document.getElementsByClassName(e);a{n.r(t),n.d(t,{default:()=>d});var c=n(6540),a=n(53),r=n(5241),l=n(5680),s=n(8607),o=n(1461),i=n(3155);const m="mdxPageWrapper_eQvw";const d=function(e){const{content:t}=e,{frontMatter:n,metadata:d}=t,{title:u,description:f,wrapperClassName:p,hide_table_of_contents:E}=n,{permalink:v}=d;return c.createElement(r.A,{title:u,description:f,permalink:v,wrapperClassName:p??i.GN.wrapper.mdxPages,pageClassName:i.GN.page.mdxPage},c.createElement("main",{className:"container container--fluid margin-vert--lg"},c.createElement("div",{className:(0,a.A)("row",m)},c.createElement("div",{className:(0,a.A)("col",!E&&"col--8")},c.createElement(l.xA,{components:s.A},c.createElement(t,null))),!E&&t.toc&&c.createElement("div",{className:"col col--2"},c.createElement(o.A,{toc:t.toc})))))}},1461:(e,t,n)=>{n.d(t,{A:()=>i});var c=n(6540),a=n(53);const r=function(e,t,n){const[a,r]=(0,c.useState)(void 0);(0,c.useEffect)((()=>{function c(){const c=function(){const e=Array.from(document.getElementsByClassName("anchor")),t=e.find((e=>{const{top:t}=e.getBoundingClientRect();return t>=n}));if(t){if(t.getBoundingClientRect().top>=n){return e[e.indexOf(t)-1]??t}return t}return e[e.length-1]}();if(c){let n=0,l=!1;const s=document.getElementsByClassName(e);for(;n{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}))},l="tableOfContents_vrFS",s="table-of-contents__link";function o(e){let{toc:t,isChild:n}=e;return t.length?c.createElement("ul",{className:n?"":"table-of-contents table-of-contents__left-border"},t.map((e=>c.createElement("li",{key:e.id},c.createElement("a",{href:`#${e.id}`,className:s,dangerouslySetInnerHTML:{__html:e.value}}),c.createElement(o,{isChild:!0,toc:e.children}))))):null}const i=function(e){let{toc:t}=e;return r(s,"table-of-contents__link--active",100),c.createElement("div",{className:(0,a.A)(l,"thin-scrollbar")},c.createElement(o,{toc:t}))}}}]); \ No newline at end of file diff --git a/assets/js/23eddd52.dc442f8e.js b/assets/js/23eddd52.dc442f8e.js new file mode 100644 index 0000000..ac70aba --- /dev/null +++ b/assets/js/23eddd52.dc442f8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9568],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>y});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),u=r,y=p["".concat(s,".").concat(u)]||p[u]||h[u]||i;return n?a.createElement(y,l(l({ref:t},d),{},{components:n})):a.createElement(y,l({ref:t},d))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const i={id:"hasChatEvent",title:"HasChatEvent APIs",sidebar_label:"HasChatEvent",slug:"/apis/traits/chatEvent/hasChatEvent"},l=void 0,o={unversionedId:"apis/traits/chatEvent/hasChatEvent",id:"apis/traits/chatEvent/hasChatEvent",isDocsHomePage:!1,title:"HasChatEvent APIs",description:"Namespace",source:"@site/docs/apis/traits/chatEvent/hasChatEvent.md",sourceDirName:"apis/traits/chatEvent",slug:"/apis/traits/chatEvent/hasChatEvent",permalink:"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/traits/chatEvent/hasChatEvent.md",version:"current",frontMatter:{id:"hasChatEvent",title:"HasChatEvent APIs",sidebar_label:"HasChatEvent",slug:"/apis/traits/chatEvent/hasChatEvent"},sidebar:"docs",previous:{title:"CanMakeChatEvent",permalink:"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent"},next:{title:"HasMessage",permalink:"/laravel-chat-system/docs/next/apis/traits/message/hasMessage"}},s=[{value:"Namespace",id:"namespace",children:[{value:"whereNotTrashed()",id:"wherenottrashed",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"chatEvent()",id:"chatevent",children:[]},{value:"delivered()",id:"delivered",children:[]},{value:"trashed()",id:"trashed",children:[]},{value:"read()",id:"read",children:[]}]}],c={toc:s},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.yg)(d,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"wherenottrashed"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotTrashed()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where model does not have trashed items\nby the given maker.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has many chat_events")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphMany"))),(0,r.yg)("h3",{id:"chatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one chat_events")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h3",{id:"delivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"delivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one delivered events")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker"))," | chatEvent maker to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,r.yg)("h3",{id:"trashed"},(0,r.yg)("inlineCode",{parentName:"h3"},"trashed()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one trashed events")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h3",{id:"read"},(0,r.yg)("inlineCode",{parentName:"h3"},"read()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one read events")),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/23eddd52.f33fc930.js b/assets/js/23eddd52.f33fc930.js deleted file mode 100644 index bdbb40a..0000000 --- a/assets/js/23eddd52.f33fc930.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2371],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return h}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),h=r,m=p["".concat(s,".").concat(h)]||p[h]||u[h]||i;return n?a.createElement(m,l(l({ref:t},d),{},{components:n})):a.createElement(m,l({ref:t},d))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=p;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:r,l[1]=o;for(var c=2;cNamespace",id:"namespace",children:[{value:"whereNotTrashed()",id:"wherenottrashed",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"chatEvent()",id:"chatevent",children:[]},{value:"delivered()",id:"delivered",children:[]},{value:"trashed()",id:"trashed",children:[]},{value:"read()",id:"read",children:[]}]}],d={toc:c};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"namespace"},(0,i.kt)("strong",{parentName:"h2"},"Namespace")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,i.kt)("h3",{id:"wherenottrashed"},(0,i.kt)("inlineCode",{parentName:"h3"},"whereNotTrashed()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"adds query where model does not have trashed items\nby the given maker.")),(0,i.kt)("h4",{id:"return"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,i.kt)("h4",{id:"params"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))),(0,i.kt)("h3",{id:"chatevents"},(0,i.kt)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has many chat_events")),(0,i.kt)("h4",{id:"return-1"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphMany"))),(0,i.kt)("h3",{id:"chatevent"},(0,i.kt)("inlineCode",{parentName:"h3"},"chatEvent()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one chat_events")),(0,i.kt)("h4",{id:"return-2"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))),(0,i.kt)("h3",{id:"delivered"},(0,i.kt)("inlineCode",{parentName:"h3"},"delivered()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one delivered events")),(0,i.kt)("h4",{id:"return-3"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))),(0,i.kt)("h4",{id:"params-1"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?maker"))," | chatEvent maker to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,i.kt)("h3",{id:"trashed"},(0,i.kt)("inlineCode",{parentName:"h3"},"trashed()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one trashed events")),(0,i.kt)("h4",{id:"return-4"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))),(0,i.kt)("h3",{id:"read"},(0,i.kt)("inlineCode",{parentName:"h3"},"read()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has one read events")),(0,i.kt)("h4",{id:"return-5"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphOne"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/255abc40.3115a547.js b/assets/js/255abc40.3115a547.js new file mode 100644 index 0000000..c0b9ebd --- /dev/null +++ b/assets/js/255abc40.3115a547.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6439],{5680:(e,n,t)=>{t.d(n,{xA:()=>d,yg:()=>m});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(t),u=r,m=p["".concat(l,".").concat(u)]||p[u]||g[u]||s;return t?a.createElement(m,i(i({ref:n},d),{},{components:t})):a.createElement(m,i({ref:n},d))}));function m(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=u;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var c=2;c{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=t(8168),r=(t(6540),t(5680));const s={id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},i=void 0,o={unversionedId:"guides/broadcasts",id:"guides/broadcasts",isDocsHomePage:!1,title:"ChatSystem Broadcast Events",description:"Listening to Message\\Created event",source:"@site/docs/guides/broadcasts.md",sourceDirName:"guides",slug:"/guides/broadcasts",permalink:"/laravel-chat-system/docs/next/guides/broadcasts",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/broadcasts.md",version:"current",frontMatter:{id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},sidebar:"docs",previous:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/next/guides/chatEvent"},next:{title:"Message",permalink:"/laravel-chat-system/docs/next/apis/models/message"}},l=[{value:"Listening to MessageCreated event",id:"listening-to-messagecreated-event",children:[]},{value:"Listening to MessageEvents event",id:"listening-to-messageevents-event",children:[]}],c={toc:l},d="wrapper";function p(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"listening-to-messagecreated-event"},"Listening to Message\\Created event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"Message\\Created Event")," on broadcast channel:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-new.user.{$participantId}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")," to each conversation participants")),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-created.${conversation_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,r.yg)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,r.yg)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,r.yg)("inlineCode",{parentName:"p"},"event->type")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,r.yg)("inlineCode",{parentName:"p"},"true")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),"."),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/255abc40.e78887e9.js b/assets/js/255abc40.e78887e9.js deleted file mode 100644 index d6ffeb1..0000000 --- a/assets/js/255abc40.e78887e9.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3744],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=c(n),m=r,g=u["".concat(l,".").concat(m)]||u[m]||p[m]||s;return n?a.createElement(g,i(i({ref:t},d),{},{components:n})):a.createElement(g,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var c=2;c {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,s.kt)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,s.kt)("p",null,"From the frontend channel, you may listen to ",(0,s.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,s.kt)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,s.kt)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,s.kt)("inlineCode",{parentName:"p"},"event->type")," is ",(0,s.kt)("inlineCode",{parentName:"p"},"delete")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,s.kt)("inlineCode",{parentName:"p"},"true")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,s.kt)("inlineCode",{parentName:"p"},"message"),"."),(0,s.kt)("p",null,"Using Laravel Echo as example broadcast client"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/26455e38.892e516b.js b/assets/js/26455e38.892e516b.js deleted file mode 100644 index 4ede955..0000000 --- a/assets/js/26455e38.892e516b.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9154],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return d}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=l(r),d=a,y=m["".concat(c,".").concat(d)]||m[d]||p[d]||s;return r?n.createElement(y,o(o({ref:t},u),{},{components:r})):n.createElement(y,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var l=2;l true]);\n")),(0,s.kt)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,s.kt)("p",null,"method to register broadcast routes ChatSystem provides."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,s.kt)("h2",{id:"async"},"async()"),(0,s.kt)("p",null,"method to asynchronously call fuctions if only ",(0,s.kt)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,s.kt)("h4",{id:"params-1"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,s.kt)("inlineCode",{parentName:"li"},"callback arguments"))),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/26455e38.a79586d4.js b/assets/js/26455e38.a79586d4.js new file mode 100644 index 0000000..6c443bc --- /dev/null +++ b/assets/js/26455e38.a79586d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6581],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(r),u=n,g=y["".concat(l,".").concat(u)]||y[u]||m[u]||s;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,o=new Array(s);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[y]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=r(8168),n=(r(6540),r(5680));const s={id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},o=void 0,i={unversionedId:"apis/chatsystem",id:"version-v1.0.0-beta.0/apis/chatsystem",isDocsHomePage:!1,title:"ChatSytem APIs",description:"registerPolicies()",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/chatSystem.md",sourceDirName:"apis",slug:"/apis/chatsytem",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/chatSystem.md",version:"v1.0.0-beta.0",frontMatter:{id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created"}},l=[{value:"registerPolicies()",id:"registerpolicies",children:[]},{value:"registerObservers()",id:"registerobservers",children:[]},{value:"registerBroadcastRoutes()",id:"registerbroadcastroutes",children:[]},{value:"async()",id:"async",children:[]}],c={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,a.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"registerpolicies"},"registerPolicies()"),(0,n.yg)("p",null,"method to register policies ChatSystem provides."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerPolicies();\n")),(0,n.yg)("h2",{id:"registerobservers"},"registerObservers()"),(0,n.yg)("p",null,"method to register observers ChatSystem provides."),(0,n.yg)("h4",{id:"params"},"@Params"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("strong",{parentName:"li"},(0,n.yg)("inlineCode",{parentName:"strong"},"exclude"))," | array of models name to exclude from register | ",(0,n.yg)("inlineCode",{parentName:"li"},"array"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerObservers(exclude: ['conversation' => true]);\n")),(0,n.yg)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,n.yg)("p",null,"method to register broadcast routes ChatSystem provides."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,n.yg)("h2",{id:"async"},"async()"),(0,n.yg)("p",null,"method to asynchronously call fuctions if only ",(0,n.yg)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,n.yg)("h4",{id:"params-1"},"@Params"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("strong",{parentName:"li"},(0,n.yg)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,n.yg)("inlineCode",{parentName:"li"},"callback arguments"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/27aed3f4.c4bd722d.js b/assets/js/27aed3f4.c4bd722d.js new file mode 100644 index 0000000..92c7fda --- /dev/null +++ b/assets/js/27aed3f4.c4bd722d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5981],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=t.createContext({}),g=function(e){var a=t.useContext(s),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},p=function(e){var a=g(e.components);return t.createElement(s.Provider,{value:a},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=g(n),y=r,u=d["".concat(s,".").concat(y)]||d[y]||m[y]||l;return n?t.createElement(u,i(i({ref:a},p),{},{components:n})):t.createElement(u,i({ref:a},p))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=y;var o={};for(var s in a)hasOwnProperty.call(a,s)&&(o[s]=a[s]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var t=n(8168),r=(n(6540),n(5680));const l={id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},i=void 0,o={unversionedId:"apis/models/conversation",id:"version-v1.0.0-beta.4/apis/models/conversation",isDocsHomePage:!1,title:"Conversation APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/models/conversation.md",sourceDirName:"apis/models",slug:"/apis/models/conversation",permalink:"/laravel-chat-system/docs/apis/models/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/models/conversation.md",version:"v1.0.0-beta.4",frontMatter:{id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Message",permalink:"/laravel-chat-system/docs/apis/models/message"},next:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/apis/models/chatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createActivityMessage()",id:"createactivitymessage",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDeliver()",id:"makedeliver-1",children:[]}]}],g={toc:s},p="wrapper";function d(e){let{components:a,...n}=e;return(0,r.yg)(p,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Models\\Conversation")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"name")),(0,r.yg)("td",{parentName:"tr",align:null},"string","|","null"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation name")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,r.yg)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"wherehaslastmessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,r.yg)("h3",{id:"wherenotparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"createmessatewithtoken"},(0,r.yg)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,r.yg)("inlineCode",{parentName:"li"},"string|int")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,r.yg)("h3",{id:"addparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Models\\ConversationUser"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"removeparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"null|bool"))),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"createactivitymessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"createActivityMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createActivityMessage(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makedeliver"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-6"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDeliver(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"last_message"},(0,r.yg)("inlineCode",{parentName:"h3"},"last_message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,r.yg)("h3",{id:"participant"},(0,r.yg)("inlineCode",{parentName:"h3"},"participant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipants"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,r.yg)("h3",{id:"messages"},(0,r.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,r.yg)("h3",{id:"unread"},(0,r.yg)("inlineCode",{parentName:"h3"},"unread()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,r.yg)("h3",{id:"undelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,r.yg)("h3",{id:"doesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,r.yg)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,r.yg)("h3",{id:"author"},(0,r.yg)("inlineCode",{parentName:"h3"},"author()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makedeliver-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/33d4be6b.96be1e80.js b/assets/js/33d4be6b.96be1e80.js new file mode 100644 index 0000000..b31edf0 --- /dev/null +++ b/assets/js/33d4be6b.96be1e80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8126],{5680:(e,t,a)=>{a.d(t,{xA:()=>c,yg:()=>g});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,g=u["".concat(s,".").concat(m)]||u[m]||y[m]||i;return a?n.createElement(g,o(o({ref:t},c),{},{components:a})):n.createElement(g,o({ref:t},c))}));function g(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const i={id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},o=void 0,l={unversionedId:"intro",id:"version-v1.0.0-beta.4/intro",isDocsHomePage:!1,title:"Simple Laravel Chat Package",description:"Overview",source:"@site/versioned_docs/version-v1.0.0-beta.4/intro.md",sourceDirName:".",slug:"/",permalink:"/laravel-chat-system/docs/",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/intro.md",version:"v1.0.0-beta.4",frontMatter:{id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},sidebar:"version-v1.0.0-beta.4/docs",next:{title:"Installation",permalink:"/laravel-chat-system/docs/install"}},s=[{value:"Overview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],p={toc:s},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"overview"},(0,r.yg)("inlineCode",{parentName:"h2"},"Overview")),(0,r.yg)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,r.yg)("h2",{id:"features"},"Features"),(0,r.yg)("p",null,"Here are the main features chat system provides."),(0,r.yg)("h3",{id:"conversation"},"Conversation"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,r.yg)("h3",{id:"message"},"Message"),(0,r.yg)("p",null,"The package gives you flexible ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"user")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"system")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"activity")," message type")),(0,r.yg)("h3",{id:"chat-events"},"Chat Events"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"read")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"delete")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/34bd3ebc.5f0ba096.js b/assets/js/34bd3ebc.5f0ba096.js new file mode 100644 index 0000000..1a6e60b --- /dev/null +++ b/assets/js/34bd3ebc.5f0ba096.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3445],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=d(n),u=r,y=p["".concat(s,".").concat(u)]||p[u]||h[u]||i;return n?a.createElement(y,l(l({ref:t},c),{},{components:n})):a.createElement(y,l({ref:t},c))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[p]="string"==typeof e?e:r,l[1]=o;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const i={id:"hasChatEvent",title:"HasChatEvent APIs",sidebar_label:"HasChatEvent",slug:"/apis/traits/chatEvent/hasChatEvent"},l=void 0,o={unversionedId:"apis/traits/chatEvent/hasChatEvent",id:"version-v1.0.0-beta.4/apis/traits/chatEvent/hasChatEvent",isDocsHomePage:!1,title:"HasChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/traits/chatEvent/hasChatEvent.md",sourceDirName:"apis/traits/chatEvent",slug:"/apis/traits/chatEvent/hasChatEvent",permalink:"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/traits/chatEvent/hasChatEvent.md",version:"v1.0.0-beta.4",frontMatter:{id:"hasChatEvent",title:"HasChatEvent APIs",sidebar_label:"HasChatEvent",slug:"/apis/traits/chatEvent/hasChatEvent"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"CanMakeChatEvent",permalink:"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent"},next:{title:"HasMessage",permalink:"/laravel-chat-system/docs/apis/traits/message/hasMessage"}},s=[{value:"Namespace",id:"namespace",children:[{value:"whereNotTrashed()",id:"wherenottrashed",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"chatEvent()",id:"chatevent",children:[]},{value:"delivered()",id:"delivered",children:[]},{value:"trashed()",id:"trashed",children:[]},{value:"read()",id:"read",children:[]}]}],d={toc:s},c="wrapper";function p(e){let{components:t,...n}=e;return(0,r.yg)(c,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"wherenottrashed"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotTrashed()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where model does not have trashed items\nby the given maker.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has many chat_events")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphMany"))),(0,r.yg)("h3",{id:"chatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one chat_events")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h3",{id:"delivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"delivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one delivered events")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker"))," | chatEvent maker to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,r.yg)("h3",{id:"trashed"},(0,r.yg)("inlineCode",{parentName:"h3"},"trashed()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one trashed events")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))),(0,r.yg)("h3",{id:"read"},(0,r.yg)("inlineCode",{parentName:"h3"},"read()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has one read events")),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphOne"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3570154c.27e051b8.js b/assets/js/3570154c.27e051b8.js new file mode 100644 index 0000000..6023c85 --- /dev/null +++ b/assets/js/3570154c.27e051b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8475],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,d=p["".concat(i,".").concat(f)]||p[f]||m[f]||a;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={slug:"hello-world",title:"Hello",author:"Endilie Yacop Sucipto",author_title:"Maintainer of Docusaurus",author_url:"https://github.com/endiliey",author_image_url:"https://avatars1.githubusercontent.com/u/17883920?s=460&v=4",tags:["hello","docusaurus"]},l=void 0,c={permalink:"/laravel-chat-system/blog/hello-world",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/blog/2019-05-29-hello-world.md",source:"@site/blog/2019-05-29-hello-world.md",title:"Hello",description:"Welcome to this blog. This blog is created with Docusaurus 2 alpha.",date:"2019-05-29T00:00:00.000Z",formattedDate:"May 29, 2019",tags:[{label:"hello",permalink:"/laravel-chat-system/blog/tags/hello"},{label:"docusaurus",permalink:"/laravel-chat-system/blog/tags/docusaurus"}],readingTime:.12,truncated:!0},i=[],u={toc:i},s="wrapper";function p(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Welcome to this blog. This blog is created with ",(0,o.yg)("a",{parentName:"p",href:"https://v2.docusaurus.io/"},(0,o.yg)("strong",{parentName:"a"},"Docusaurus 2 alpha")),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3570154c.b9d40de7.js b/assets/js/3570154c.b9d40de7.js deleted file mode 100644 index 5802089..0000000 --- a/assets/js/3570154c.b9d40de7.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3707],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),f=i(r),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||a;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,l[1]=c;for(var i=2;i{n.d(t,{xA:()=>p,yg:()=>y});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),g=d(n),c=r,y=g["".concat(s,".").concat(c)]||g[c]||m[c]||l;return n?a.createElement(y,o(o({ref:t},p),{},{components:n})):a.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[g]="string"==typeof e?e:r,o[1]=i;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},o=void 0,i={unversionedId:"apis/models/chatEvent",id:"apis/models/chatEvent",isDocsHomePage:!1,title:"ChatEvent APIs",description:"Namespace",source:"@site/docs/apis/models/chatEvent.md",sourceDirName:"apis/models",slug:"/apis/models/chatEvent",permalink:"/laravel-chat-system/docs/next/apis/models/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/models/chatEvent.md",version:"current",frontMatter:{id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},sidebar:"docs",previous:{title:"Conversation",permalink:"/laravel-chat-system/docs/next/apis/models/conversation"},next:{title:"CanMakeChatEvent",permalink:"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],d={toc:s},p="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Models\\ChatEvent")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,r.yg)("td",{parentName:"tr",align:null},"the type of the event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"all")),(0,r.yg)("td",{parentName:"tr",align:null},"bool"),(0,r.yg)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"withall"},(0,r.yg)("inlineCode",{parentName:"h3"},"withAll()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,r.yg)("h3",{id:"notmessenger"},(0,r.yg)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker|int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"message"},(0,r.yg)("inlineCode",{parentName:"h3"},"message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,r.yg)("h3",{id:"maker"},(0,r.yg)("inlineCode",{parentName:"h3"},"maker()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,r.yg)("h3",{id:"made"},(0,r.yg)("inlineCode",{parentName:"h3"},"made()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37a05969.60ca6f5d.js b/assets/js/37a05969.60ca6f5d.js deleted file mode 100644 index 0ea524f..0000000 --- a/assets/js/37a05969.60ca6f5d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[271],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return u}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(n),u=r,k=c["".concat(s,".").concat(u)]||c[u]||m[u]||l;return n?a.createElement(k,o(o({ref:t},d),{},{components:n})):a.createElement(k,o({ref:t},d))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var p=2;pNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],d={toc:p};function m(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\ChatEvent")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"maker_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"id of the model making event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"maker_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"class of the model making event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"made_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"made_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,l.kt)("td",{parentName:"tr",align:null},"the type of the event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"all")),(0,l.kt)("td",{parentName:"tr",align:null},"bool"),(0,l.kt)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Methods that build queries."),(0,l.kt)("h3",{id:"withall"},(0,l.kt)("inlineCode",{parentName:"h3"},"withAll()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,l.kt)("h3",{id:"notmessenger"},(0,l.kt)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,l.kt)("inlineCode",{parentName:"li"},"IChatEventMaker|int"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"message"},(0,l.kt)("inlineCode",{parentName:"h3"},"message()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,l.kt)("h3",{id:"conversation"},(0,l.kt)("inlineCode",{parentName:"h3"},"conversation()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,l.kt)("h3",{id:"maker"},(0,l.kt)("inlineCode",{parentName:"h3"},"maker()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,l.kt)("h3",{id:"made"},(0,l.kt)("inlineCode",{parentName:"h3"},"made()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37ec4886.57f3bf7a.js b/assets/js/37ec4886.57f3bf7a.js deleted file mode 100644 index d7c9ea8..0000000 --- a/assets/js/37ec4886.57f3bf7a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2996],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return p},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(a),m=r,v=u["".concat(c,".").concat(m)]||u[m]||d[m]||s;return a?n.createElement(v,o(o({ref:t},p),{},{components:a})):n.createElement(v,o({ref:t},p))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var l=2;lNamespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],p={toc:l};function d(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Created")),(0,s.kt)("h2",{id:"broadcasts-as"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message"))),(0,s.kt)("h2",{id:"broadcasts-with"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IMessage"))),(0,s.kt)("h2",{id:"broadcasts-on-channels"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37ec4886.7d618776.js b/assets/js/37ec4886.7d618776.js new file mode 100644 index 0000000..0741bc0 --- /dev/null +++ b/assets/js/37ec4886.7d618776.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2831],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>u});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(a),m=n,u=d["".concat(l,".").concat(m)]||d[m]||g[m]||s;return a?r.createElement(u,o(o({ref:t},p),{},{components:a})):r.createElement(u,o({ref:t},p))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=a(8168),n=(a(6540),a(5680));const s={id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},o=void 0,i={unversionedId:"apis/events/message/messageCreated",id:"version-v1.0-alpha.3/apis/events/message/messageCreated",isDocsHomePage:!1,title:"Message Created Event",description:"Namespace",source:"@site/versioned_docs/version-v1.0-alpha.3/apis/events/message/created.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/created",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/apis/events/message/created.md",version:"v1.0-alpha.3",frontMatter:{id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Message Events",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events"},next:{title:"ChatSytem",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem"}},l=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],c={toc:l},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.yg)(p,(0,r.A)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"namespace"},(0,n.yg)("strong",{parentName:"h2"},"Namespace")),(0,n.yg)("p",null,(0,n.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Created")),(0,n.yg)("h2",{id:"broadcasts-as"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message"))),(0,n.yg)("h2",{id:"broadcasts-with"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message")," type ",(0,n.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IMessage"))),(0,n.yg)("h2",{id:"broadcasts-on-channels"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/391c3402.3db5db98.js b/assets/js/391c3402.3db5db98.js new file mode 100644 index 0000000..972eeef --- /dev/null +++ b/assets/js/391c3402.3db5db98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1720],{5680:(e,a,t)=>{t.d(a,{xA:()=>c,yg:()=>g});var n=t(6540);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=n.createContext({}),p=function(e){var a=n.useContext(s),t=a;return e&&(t="function"==typeof e?e(a):o(o({},a),e)),t},c=function(e){var a=p(e.components);return n.createElement(s.Provider,{value:a},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},m=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(t),m=r,g=u["".concat(s,".").concat(m)]||u[m]||y[m]||i;return t?n.createElement(g,o(o({ref:a},c),{},{components:t})):n.createElement(g,o({ref:a},c))}));function g(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var s in a)hasOwnProperty.call(a,s)&&(l[s]=a[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p{t.r(a),t.d(a,{contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=t(8168),r=(t(6540),t(5680));const i={id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},o=void 0,l={unversionedId:"intro",id:"version-v1.0-alpha.3/intro",isDocsHomePage:!1,title:"Simple Laravel Chat Package",description:"Overview",source:"@site/versioned_docs/version-v1.0-alpha.3/intro.md",sourceDirName:".",slug:"/",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/intro.md",version:"v1.0-alpha.3",frontMatter:{id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},sidebar:"version-v1.0-alpha.3/docs",next:{title:"Installation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/install"}},s=[{value:"Overview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],p={toc:s},c="wrapper";function u(e){let{components:a,...t}=e;return(0,r.yg)(c,(0,n.A)({},p,t,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"overview"},(0,r.yg)("inlineCode",{parentName:"h2"},"Overview")),(0,r.yg)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,r.yg)("h2",{id:"features"},"Features"),(0,r.yg)("p",null,"Here are the main features chat system provides."),(0,r.yg)("h3",{id:"conversation"},"Conversation"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,r.yg)("h3",{id:"message"},"Message"),(0,r.yg)("p",null,"The package gives you flexible ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"user")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"system")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"activity")," message type")),(0,r.yg)("h3",{id:"chat-events"},"Chat Events"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"read")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"delete")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/391c3402.a1fa3a78.js b/assets/js/391c3402.a1fa3a78.js deleted file mode 100644 index ca85f7c..0000000 --- a/assets/js/391c3402.a1fa3a78.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3290],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return v}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),v=r,d=m["".concat(s,".").concat(v)]||m[v]||u[v]||i;return n?a.createElement(d,o(o({ref:t},c),{},{components:n})):a.createElement(d,o({ref:t},c))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,o[1]=l;for(var p=2;pOverview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],c={toc:p};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"overview"},(0,i.kt)("inlineCode",{parentName:"h2"},"Overview")),(0,i.kt)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,i.kt)("h2",{id:"features"},"Features"),(0,i.kt)("p",null,"Here are the main features chat system provides."),(0,i.kt)("h3",{id:"conversation"},"Conversation"),(0,i.kt)("p",null,"The package gives you ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,i.kt)("h3",{id:"message"},"Message"),(0,i.kt)("p",null,"The package gives you flexible ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user")," message type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"system")," message type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"activity")," message type")),(0,i.kt)("h3",{id:"chat-events"},"Chat Events"),(0,i.kt)("p",null,"The package gives you ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"read")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"delete")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393be207.5b1b7bf3.js b/assets/js/393be207.5b1b7bf3.js new file mode 100644 index 0000000..ea93d87 --- /dev/null +++ b/assets/js/393be207.5b1b7bf3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4134],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),i=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(l.Provider,{value:r},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),f=i(t),m=o,y=f["".concat(l,".").concat(m)]||f[m]||s[m]||a;return t?n.createElement(y,c(c({ref:r},u),{},{components:t})):n.createElement(y,c({ref:r},u))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=m;var p={};for(var l in r)hasOwnProperty.call(r,l)&&(p[l]=r[l]);p.originalType=e,p[f]="string"==typeof e?e:o,c[1]=p;for(var i=2;i{t.r(r),t.d(r,{contentTitle:()=>c,default:()=>f,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const a={title:"Markdown page example"},c="Markdown page example",p={type:"mdx",permalink:"/laravel-chat-system/markdown-page",source:"@site/src/pages/markdown-page.md"},l=[],i={toc:l},u="wrapper";function f(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},i,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"markdown-page-example"},"Markdown page example"),(0,o.yg)("p",null,"You don't need React to write simple standalone pages."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393be207.c860b568.js b/assets/js/393be207.c860b568.js deleted file mode 100644 index e3c7a9c..0000000 --- a/assets/js/393be207.c860b568.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7414],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),s=i(r),m=o,y=s["".concat(u,".").concat(m)]||s[m]||f[m]||a;return r?n.createElement(y,c(c({ref:t},l),{},{components:r})):n.createElement(y,c({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=s;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p.mdxType="string"==typeof e?e:o,c[1]=p;for(var i=2;i=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=c(n),d=a,m=h["".concat(o,".").concat(d)]||h[d]||u[d]||i;return n?r.createElement(m,s(s({ref:t},p),{},{components:n})):r.createElement(m,s({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=h;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:a,s[1]=l;for(var c=2;cInstall",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]},{value:"Setup User Model",id:"setup-user-model",children:[]}],p={toc:c};function u(e){var t=e.components,n=(0,a.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"install"},(0,i.kt)("inlineCode",{parentName:"h2"},"Install")),(0,i.kt)("p",null,"Via Composer"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"composer require myckhel/laravel-chat-system\n")),(0,i.kt)("h2",{id:"setup"},(0,i.kt)("inlineCode",{parentName:"h2"},"Setup")),(0,i.kt)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"config")," directory"),(0,i.kt)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,i.kt)("p",null,"migration files should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,i.kt)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,i.kt)("p",null,"seeders files should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,i.kt)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,i.kt)("p",null,"factories files should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,i.kt)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Myckhel\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,i.kt)("p",null,"all resources files should be copied to the respective directories"),(0,i.kt)("h2",{id:"setup-user-model"},(0,i.kt)("inlineCode",{parentName:"h2"},"Setup User Model")),(0,i.kt)("p",null,"In order to start working with chat-system, you need to setup your User model by implementing ",(0,i.kt)("strong",{parentName:"p"},"IChatEventMaker")," Interface and using the ",(0,i.kt)("a",{parentName:"p",href:"/laravel-chat-system/docs/apis/traits/message/hasMessage"},"HasMessage"),", ",(0,i.kt)("a",{parentName:"p",href:"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent"},"CanMakeChatEvent")," Traits."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Traits\\Message\\HasMessage;\nuse Myckhel\\ChatSystem\\Traits\\ChatEvent\\CanMakeChatEvent;\nuse Myckhel\\ChatSystem\\Contracts\\IChatEventMaker;\n\n\nclass User implements IChatEventMaker\n{\n use HasMessage, CanMakeChatEvent;\n...\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ff56a6d.f357aac3.js b/assets/js/3ff56a6d.f357aac3.js new file mode 100644 index 0000000..3598c48 --- /dev/null +++ b/assets/js/3ff56a6d.f357aac3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8282],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>g});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),c=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(a),u=n,g=d["".concat(o,".").concat(u)]||d[u]||h[u]||i;return a?r.createElement(g,s(s({ref:t},p),{},{components:a})):r.createElement(g,s({ref:t},p))}));function g(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,s=new Array(i);s[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[d]="string"==typeof e?e:n,s[1]=l;for(var c=2;c{a.r(t),a.d(t,{contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>o});var r=a(8168),n=(a(6540),a(5680));const i={id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},s=void 0,l={unversionedId:"install",id:"version-v1.0.0-beta.0/install",isDocsHomePage:!1,title:"Installation",description:"Install",source:"@site/versioned_docs/version-v1.0.0-beta.0/install.md",sourceDirName:".",slug:"/install",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/install",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/install.md",version:"v1.0.0-beta.0",frontMatter:{id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Introduction",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/"},next:{title:"Requirements",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/requirements"}},o=[{value:"Install",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]},{value:"Setup User Model",id:"setup-user-model",children:[]}],c={toc:o},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.yg)(p,(0,r.A)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"install"},(0,n.yg)("inlineCode",{parentName:"h2"},"Install")),(0,n.yg)("p",null,"Via Composer"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"composer require myckhel/laravel-chat-system\n")),(0,n.yg)("h2",{id:"setup"},(0,n.yg)("inlineCode",{parentName:"h2"},"Setup")),(0,n.yg)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,n.yg)("p",null,(0,n.yg)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"config")," directory"),(0,n.yg)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,n.yg)("p",null,"migration files should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,n.yg)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,n.yg)("p",null,"seeders files should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,n.yg)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,n.yg)("p",null,"factories files should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,n.yg)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Myckhel\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,n.yg)("p",null,"all resources files should be copied to the respective directories"),(0,n.yg)("h2",{id:"setup-user-model"},(0,n.yg)("inlineCode",{parentName:"h2"},"Setup User Model")),(0,n.yg)("p",null,"In order to start working with chat-system, you need to setup your User model by implementing ",(0,n.yg)("strong",{parentName:"p"},"IChatEventMaker")," Interface and using the ",(0,n.yg)("a",{parentName:"p",href:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage"},"HasMessage"),", ",(0,n.yg)("a",{parentName:"p",href:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent"},"CanMakeChatEvent")," Traits."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Traits\\Message\\HasMessage;\nuse Myckhel\\ChatSystem\\Traits\\ChatEvent\\CanMakeChatEvent;\nuse Myckhel\\ChatSystem\\Contracts\\IChatEventMaker;\n\n\nclass User implements IChatEventMaker\n{\n use HasMessage, CanMakeChatEvent;\n...\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/40fa82e9.1b212e0f.js b/assets/js/40fa82e9.1b212e0f.js new file mode 100644 index 0000000..4d6aae2 --- /dev/null +++ b/assets/js/40fa82e9.1b212e0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4620],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>h});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=l(t),p=o,h=d["".concat(c,".").concat(p)]||d[p]||m[p]||s;return t?r.createElement(h,a(a({ref:n},u),{},{components:t})):r.createElement(h,a({ref:n},u))}));function h(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var s=t.length,a=new Array(s);a[0]=p;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{t.r(n),t.d(n,{contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var r=t(8168),o=(t(6540),t(5680));const s={id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},a=void 0,i={unversionedId:"guides/configure",id:"version-v1.0.0-beta.4/guides/configure",isDocsHomePage:!1,title:"ChatSystem configuration",description:"Publish config file",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/configure.md",sourceDirName:"guides",slug:"/guides/configure",permalink:"/laravel-chat-system/docs/guides/configure",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/configure.md",version:"v1.0.0-beta.4",frontMatter:{id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Requirements",permalink:"/laravel-chat-system/docs/requirements"},next:{title:"Using Providers",permalink:"/laravel-chat-system/docs/guides/providers"}},c=[{value:"Publish config file",id:"publish-config-file",children:[]}],l={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,o.yg)(u,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h2",{id:"publish-config-file"},"Publish config file"),(0,o.yg)("p",null,"publish the config file if not published"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-php"},'\nreturn [\n /*\n * ChatSystem Models\n */\n "models" => [\n /*\n * The model you want to use as a User model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Binkode\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Binkode\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Binkode\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Binkode\\ChatSystem\\Models\\Message`\n */\n "message" => Binkode\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Binkode\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Binkode\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Binkode\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Binkode\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42aaa084.900e34f8.js b/assets/js/42aaa084.900e34f8.js new file mode 100644 index 0000000..afbfcef --- /dev/null +++ b/assets/js/42aaa084.900e34f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6256],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>h});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,s=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,h=u["".concat(p,".").concat(m)]||u[m]||d[m]||s;return n?r.createElement(h,a(a({ref:t},c),{},{components:n})):r.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=n.length,a=new Array(s);a[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var r=n(8168),o=(n(6540),n(5680));const s={id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},a=void 0,i={unversionedId:"guides/guides.routes",id:"guides/guides.routes",isDocsHomePage:!1,title:"Using Routes",description:"ChatSystem provides basic usage through some route endpoints.",source:"@site/docs/guides/routes.md",sourceDirName:"guides",slug:"/guides/routes",permalink:"/laravel-chat-system/docs/next/guides/routes",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/routes.md",version:"current",frontMatter:{id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},sidebar:"docs",previous:{title:"Using Models",permalink:"/laravel-chat-system/docs/next/guides/models"},next:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/next/guides/conversation"}},p=[],l={toc:p},c="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(c,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"ChatSystem provides basic usage through some route endpoints.\nYou may make use of them if suites your use cases."),(0,o.yg)("p",null,"Checkout api documentation for each route below: ",(0,o.yg)("a",{parentName:"p",href:"https://documenter.getpostman.com/view/9558301/TzXwEyDq#83bc243b-8297-417d-9fd8-18a557e4826e"},"Postman documentation link"),"."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| Domain | Method | URI | Name | Action | Middleware |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| | GET|HEAD | api/chat_events | chat_events.index | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/chat_events | chat_events.store | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/chat_events/{chat_event} | chat_events.show | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/chat_events/{chat_event} | chat_events.update | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/chat_events/{chat_event} | chat_events.destroy | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations | conversations.index | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/conversations | conversations.store | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/count | generated::qP7MgZeXOQ2KO9kH | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@count | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/{conversation} | conversations.show | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/conversations/{conversation} | conversations.update | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/conversations/{conversation} | conversations.destroy | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages | generated::P5UtLfEaXJNWQUcU | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@delete | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages | messages.index | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/messages | messages.store | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages/{message} | messages.show | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/messages/{message} | messages.update | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages/{message} | messages.destroy | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42aaa084.dee69c08.js b/assets/js/42aaa084.dee69c08.js deleted file mode 100644 index 747f376..0000000 --- a/assets/js/42aaa084.dee69c08.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9485],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,s=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=l(n),m=s,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(h,a(a({ref:t},p),{},{components:n})):r.createElement(h,a({ref:t},p))}));function m(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var o=n.length,a=new Array(o);a[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l{t.d(n,{xA:()=>c,yg:()=>u});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),d=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return a.createElement(l.Provider,{value:n},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=d(t),m=r,u=p["".concat(l,".").concat(m)]||p[m]||g[m]||s;return t?a.createElement(u,i(i({ref:n},c),{},{components:t})):a.createElement(u,i({ref:n},c))}));function u(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var d=2;d{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=t(8168),r=(t(6540),t(5680));const s={id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},i=void 0,o={unversionedId:"guides/broadcasts",id:"version-v1.0.0-beta.4/guides/broadcasts",isDocsHomePage:!1,title:"ChatSystem Broadcast Events",description:"Listening to Message\\Created event",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/broadcasts.md",sourceDirName:"guides",slug:"/guides/broadcasts",permalink:"/laravel-chat-system/docs/guides/broadcasts",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/broadcasts.md",version:"v1.0.0-beta.4",frontMatter:{id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/guides/chatEvent"},next:{title:"Message",permalink:"/laravel-chat-system/docs/apis/models/message"}},l=[{value:"Listening to MessageCreated event",id:"listening-to-messagecreated-event",children:[]},{value:"Listening to MessageEvents event",id:"listening-to-messageevents-event",children:[]}],d={toc:l},c="wrapper";function p(e){let{components:n,...t}=e;return(0,r.yg)(c,(0,a.A)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"listening-to-messagecreated-event"},"Listening to Message\\Created event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"Message\\Created Event")," on broadcast channel:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-new.user.{$participantId}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")," to each conversation participants")),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-created.${conversation_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,r.yg)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,r.yg)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,r.yg)("inlineCode",{parentName:"p"},"event->type")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,r.yg)("inlineCode",{parentName:"p"},"true")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),"."),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44852a98.cfdd7c25.js b/assets/js/44852a98.cfdd7c25.js new file mode 100644 index 0000000..88a2cb6 --- /dev/null +++ b/assets/js/44852a98.cfdd7c25.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6498],{6338:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v1.0.0-beta.4","label":"v1.0.0-beta.4","banner":"none","isLast":true,"docsSidebars":{"version-v1.0.0-beta.4/docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Traits","items":[{"collapsed":false,"type":"category","label":"ChatEvent","items":[{"type":"link","label":"CanMakeChatEvent","href":"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent"},{"type":"link","label":"HasChatEvent","href":"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent"}]},{"collapsed":false,"type":"category","label":"Message","items":[{"type":"link","label":"HasMessage","href":"/laravel-chat-system/docs/apis/traits/message/hasMessage"}]}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/apis/chatsytem":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/events/message/created":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/events/message/events":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/models/chatEvent":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/models/conversation":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/models/message":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/apis/traits/message/hasMessage":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/broadcasts":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/configure":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/chatEvent":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/conversation":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/message":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/routes":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/models":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/guides/providers":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/install":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/":"version-v1.0.0-beta.4/docs","/laravel-chat-system/docs/requirements":"version-v1.0.0-beta.4/docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/4608.ebd08ef4.js b/assets/js/4608.ebd08ef4.js deleted file mode 100644 index 337fdac..0000000 --- a/assets/js/4608.ebd08ef4.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4608],{4608:function(e,t,n){"use strict";n.r(t);var a=n(7294),o=n(6016),l=n(4973);t.default=function(){return a.createElement(o.Z,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."))))))}}}]); \ No newline at end of file diff --git a/assets/js/491860cd.050d69e7.js b/assets/js/491860cd.050d69e7.js new file mode 100644 index 0000000..79f235f --- /dev/null +++ b/assets/js/491860cd.050d69e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4978],{5680:(e,a,t)=>{t.d(a,{xA:()=>p,yg:()=>u});var n=t(6540);function r(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function s(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=n.createContext({}),g=function(e){var a=n.useContext(l),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},p=function(e){var a=g(e.components);return n.createElement(l.Provider,{value:a},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var a=e.children;return n.createElement(n.Fragment,{},a)}},m=n.forwardRef((function(e,a){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),y=g(t),m=r,u=y["".concat(l,".").concat(m)]||y[m]||d[m]||s;return t?n.createElement(u,i(i({ref:a},p),{},{components:t})):n.createElement(u,i({ref:a},p))}));function u(e,a){var t=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var l in a)hasOwnProperty.call(a,l)&&(o[l]=a[l]);o.originalType=e,o[y]="string"==typeof e?e:r,i[1]=o;for(var g=2;g{t.r(a),t.d(a,{contentTitle:()=>i,default:()=>y,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=t(8168),r=(t(6540),t(5680));const s={id:"hasMessage",title:"HasMessage APIs",sidebar_label:"HasMessage",slug:"/apis/traits/message/hasMessage"},i=void 0,o={unversionedId:"apis/traits/message/hasMessage",id:"version-v1.0.0-beta.0/apis/traits/message/hasMessage",isDocsHomePage:!1,title:"HasMessage APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/traits/message/hasMessage.md",sourceDirName:"apis/traits/message",slug:"/apis/traits/message/hasMessage",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/traits/message/hasMessage.md",version:"v1.0.0-beta.0",frontMatter:{id:"hasMessage",title:"HasMessage APIs",sidebar_label:"HasMessage",slug:"/apis/traits/message/hasMessage"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"HasChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent"},next:{title:"Message Events",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events"}},l=[{value:"Namespace",id:"namespace",children:[{value:"messages()",id:"messages",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"conversations()",id:"conversations",children:[]},{value:"relatedToMessage()",id:"relatedtomessage",children:[]},{value:"relatedToConversation()",id:"relatedtoconversation",children:[]}]}],g={toc:l},p="wrapper";function y(e){let{components:a,...t}=e;return(0,r.yg)(p,(0,n.A)({},g,t,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"messages"},(0,r.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query for model's messages")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation messages to query for | ",(0,r.yg)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser belongs to message | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?reply"))," | adds where reply query | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h3",{id:"undelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query for model where it messages has not been delivered")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h3",{id:"conversations"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversations()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query for model's conversations")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversations to query for | ",(0,r.yg)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser is a participant | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h3",{id:"relatedtomessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"relatedToMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"checks wherther model is related to the given message")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?message"))," | message to compare relation with | ",(0,r.yg)("inlineCode",{parentName:"li"},"IMessage"))),(0,r.yg)("h3",{id:"relatedtoconversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"relatedToConversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"checks wherther model is related to the given conversation")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation to compare relation with | ",(0,r.yg)("inlineCode",{parentName:"li"},"IConversation"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/491860cd.3aa81a02.js b/assets/js/491860cd.3aa81a02.js deleted file mode 100644 index ba11638..0000000 --- a/assets/js/491860cd.3aa81a02.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7070],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return u},kt:function(){return c}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),p=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=p(a),c=r,k=m["".concat(l,".").concat(c)]||m[c]||d[c]||s;return a?n.createElement(k,i(i({ref:t},u),{},{components:a})):n.createElement(k,i({ref:t},u))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,i=new Array(s);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;pNamespace",id:"namespace",children:[{value:"messages()",id:"messages",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"conversations()",id:"conversations",children:[]},{value:"relatedToMessage()",id:"relatedtomessage",children:[]},{value:"relatedToConversation()",id:"relatedtoconversation",children:[]}]}],u={toc:p};function d(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,s.kt)("h3",{id:"messages"},(0,s.kt)("inlineCode",{parentName:"h3"},"messages()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"adds query for model's messages")),(0,s.kt)("h4",{id:"return"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,s.kt)("h4",{id:"params"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation messages to query for | ",(0,s.kt)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,s.kt)("h4",{id:"params-1"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser belongs to message | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h4",{id:"params-2"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?reply"))," | adds where reply query | ",(0,s.kt)("inlineCode",{parentName:"li"},"array"))),(0,s.kt)("h4",{id:"params-3"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h3",{id:"undelivered"},(0,s.kt)("inlineCode",{parentName:"h3"},"undelivered()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"adds query for model where it messages has not been delivered")),(0,s.kt)("h4",{id:"return-1"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,s.kt)("h3",{id:"conversations"},(0,s.kt)("inlineCode",{parentName:"h3"},"conversations()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"adds query for model's conversations")),(0,s.kt)("h4",{id:"return-2"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,s.kt)("h4",{id:"params-4"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?conversation"))," | conversations to query for | ",(0,s.kt)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,s.kt)("h4",{id:"params-5"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser is a participant | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h4",{id:"params-6"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h3",{id:"relatedtomessage"},(0,s.kt)("inlineCode",{parentName:"h3"},"relatedToMessage()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"checks wherther model is related to the given message")),(0,s.kt)("h4",{id:"return-3"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"bool"))),(0,s.kt)("h4",{id:"params-7"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?message"))," | message to compare relation with | ",(0,s.kt)("inlineCode",{parentName:"li"},"IMessage"))),(0,s.kt)("h3",{id:"relatedtoconversation"},(0,s.kt)("inlineCode",{parentName:"h3"},"relatedToConversation()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"checks wherther model is related to the given conversation")),(0,s.kt)("h4",{id:"return-4"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"bool"))),(0,s.kt)("h4",{id:"params-8"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation to compare relation with | ",(0,s.kt)("inlineCode",{parentName:"li"},"IConversation"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49cb310b.3fdd19ac.js b/assets/js/49cb310b.3fdd19ac.js deleted file mode 100644 index e464e70..0000000 --- a/assets/js/49cb310b.3fdd19ac.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8398],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},h={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=l(t),m=o,p=d["".concat(c,".").concat(m)]||d[m]||h[m]||s;return t?r.createElement(p,a(a({ref:n},u),{},{components:t})):r.createElement(p,a({ref:n},u))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var s=t.length,a=new Array(s);a[0]=d;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var l=2;l [\n /*\n * The model you want to use as a User model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\ChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Myckhel\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Myckhel\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\Message`\n */\n "message" => Myckhel\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Myckhel\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Myckhel\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Myckhel\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49cb310b.3fe9bbd9.js b/assets/js/49cb310b.3fe9bbd9.js new file mode 100644 index 0000000..eb978a9 --- /dev/null +++ b/assets/js/49cb310b.3fe9bbd9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7591],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>p});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function s(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},h="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),h=c(t),m=o,p=h["".concat(l,".").concat(m)]||h[m]||d[m]||a;return t?r.createElement(p,s(s({ref:n},u),{},{components:t})):r.createElement(p,s({ref:n},u))}));function p(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,s=new Array(a);s[0]=m;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i[h]="string"==typeof e?e:o,s[1]=i;for(var c=2;c{t.r(n),t.d(n,{contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var r=t(8168),o=(t(6540),t(5680));const a={id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},s=void 0,i={unversionedId:"guides/configure",id:"version-v1.0-alpha.3/guides/configure",isDocsHomePage:!1,title:"ChatSystem configuration",description:"Publish config file",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/configure.md",sourceDirName:"guides",slug:"/guides/configure",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/configure.md",version:"v1.0-alpha.3",frontMatter:{id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Requirements",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/requirements"},next:{title:"Using Providers",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers"}},l=[{value:"Publish config file",id:"publish-config-file",children:[]}],c={toc:l},u="wrapper";function h(e){let{components:n,...t}=e;return(0,o.yg)(u,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h2",{id:"publish-config-file"},"Publish config file"),(0,o.yg)("p",null,"publish the config file if not published"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-php"},'\nreturn [\n /*\n * ChatSystem Models\n */\n "models" => [\n /*\n * The model you want to use as a User model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\ChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Myckhel\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Myckhel\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\Message`\n */\n "message" => Myckhel\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Myckhel\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Myckhel\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Myckhel\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b6591f7.000356ab.js b/assets/js/4b6591f7.000356ab.js deleted file mode 100644 index 77886f0..0000000 --- a/assets/js/4b6591f7.000356ab.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6594],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,v=m["".concat(l,".").concat(d)]||m[d]||u[d]||i;return n?r.createElement(v,o(o({ref:t},p),{},{components:n})):r.createElement(v,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var c=2;cOverview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],p={toc:c};function u(e){var t=e.components,n=(0,a.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"overview"},(0,i.kt)("inlineCode",{parentName:"h2"},"Overview")),(0,i.kt)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,i.kt)("h2",{id:"features"},"Features"),(0,i.kt)("p",null,"Here are the main features chat system provides."),(0,i.kt)("h3",{id:"conversation"},"Conversation"),(0,i.kt)("p",null,"The package gives you ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,i.kt)("h3",{id:"message"},"Message"),(0,i.kt)("p",null,"The package gives you flexible ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user")," message type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"system")," message type"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"activity")," message type")),(0,i.kt)("h3",{id:"chat-events"},"Chat Events"),(0,i.kt)("p",null,"The package gives you ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,i.kt)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"read")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"delete")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b6591f7.ed9ed271.js b/assets/js/4b6591f7.ed9ed271.js new file mode 100644 index 0000000..c4e0085 --- /dev/null +++ b/assets/js/4b6591f7.ed9ed271.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8481],{5680:(e,t,a)=>{a.d(t,{xA:()=>c,yg:()=>g});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(a),m=r,g=u["".concat(s,".").concat(m)]||u[m]||y[m]||i;return a?n.createElement(g,o(o({ref:t},c),{},{components:a})):n.createElement(g,o({ref:t},c))}));function g(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:r,o[1]=l;for(var p=2;p{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const i={id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},o=void 0,l={unversionedId:"intro",id:"version-v1.0.0-beta.0/intro",isDocsHomePage:!1,title:"Simple Laravel Chat Package",description:"Overview",source:"@site/versioned_docs/version-v1.0.0-beta.0/intro.md",sourceDirName:".",slug:"/",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/intro.md",version:"v1.0.0-beta.0",frontMatter:{id:"intro",title:"Simple Laravel Chat Package",sidebar_label:"Introduction",slug:"/"},sidebar:"version-v1.0.0-beta.0/docs",next:{title:"Installation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/install"}},s=[{value:"Overview",id:"overview",children:[]},{value:"Features",id:"features",children:[{value:"Conversation",id:"conversation",children:[]},{value:"Message",id:"message",children:[]},{value:"Chat Events",id:"chat-events",children:[]}]}],p={toc:s},c="wrapper";function u(e){let{components:t,...a}=e;return(0,r.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"overview"},(0,r.yg)("inlineCode",{parentName:"h2"},"Overview")),(0,r.yg)("p",null,"This package allows you to integrate chatting into your laravel application."),(0,r.yg)("h2",{id:"features"},"Features"),(0,r.yg)("p",null,"Here are the main features chat system provides."),(0,r.yg)("h3",{id:"conversation"},"Conversation"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," support which can have multiple participants.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"group")," conversation type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"issue")," conversation type")),(0,r.yg)("h3",{id:"message"},"Message"),(0,r.yg)("p",null,"The package gives you flexible ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," support which can belong to a ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation")," and authored by a user.\n",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"user")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"system")," message type"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"activity")," message type")),(0,r.yg)("h3",{id:"chat-events"},"Chat Events"),(0,r.yg)("p",null,"The package gives you ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," support which could be use for persisting events for ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/message"},"message")," and ",(0,r.yg)("a",{parentName:"p",href:"./apis/models/conversation"},"conversation"),"."),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"./apis/models/chatevent"},"chat events")," can be of types such as:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"read")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"delete")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"deliver"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c86028c.b576b629.js b/assets/js/4c86028c.b576b629.js new file mode 100644 index 0000000..59e1f04 --- /dev/null +++ b/assets/js/4c86028c.b576b629.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1151],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>u});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(a),y=r,u=m["".concat(s,".").concat(y)]||m[y]||d[y]||i;return a?n.createElement(u,o(o({ref:t},p),{},{components:a})):n.createElement(u,o({ref:t},p))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=y;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const i={id:"canMakeChatEvent",title:"CanMakeChatEvent APIs",sidebar_label:"CanMakeChatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent"},o=void 0,l={unversionedId:"apis/traits/chatEvent/canMakeChatEvent",id:"version-v1.0.0-beta.4/apis/traits/chatEvent/canMakeChatEvent",isDocsHomePage:!1,title:"CanMakeChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/traits/chatEvent/canMakeChatEvent.md",sourceDirName:"apis/traits/chatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent",permalink:"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/traits/chatEvent/canMakeChatEvent.md",version:"v1.0.0-beta.4",frontMatter:{id:"canMakeChatEvent",title:"CanMakeChatEvent APIs",sidebar_label:"CanMakeChatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/apis/models/chatEvent"},next:{title:"HasChatEvent",permalink:"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent"}},s=[{value:"Namespace",id:"namespace",children:[{value:"chatEventMakers()",id:"chateventmakers",children:[]}]}],c={toc:s},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.yg)(p,(0,n.A)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"chateventmakers"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEventMakers()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has many chat event makers.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphMany"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?id"))," | chatEvent id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | chatEvent type to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_type"))," | chatEvent made_type to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4e11e886.31990f8a.js b/assets/js/4e11e886.31990f8a.js deleted file mode 100644 index 5dac4f1..0000000 --- a/assets/js/4e11e886.31990f8a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6891],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),m=s(n),d=r,h=m["".concat(l,".").concat(d)]||m[d]||u[d]||i;return n?a.createElement(h,o(o({ref:t},p),{},{components:n})):a.createElement(h,o({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,o[1]=c;for(var s=2;sNamespace",id:"namespace",children:[{value:"chatEventMakers()",id:"chateventmakers",children:[]}]}],p={toc:s};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"namespace"},(0,i.kt)("strong",{parentName:"h2"},"Namespace")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,i.kt)("h3",{id:"chateventmakers"},(0,i.kt)("inlineCode",{parentName:"h3"},"chatEventMakers()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has many chat event makers.")),(0,i.kt)("h4",{id:"return"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphMany"))),(0,i.kt)("h4",{id:"params"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?id"))," | chatEvent id to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))),(0,i.kt)("h4",{id:"params-1"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?type"))," | chatEvent type to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"string"))),(0,i.kt)("h4",{id:"params-2"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))),(0,i.kt)("h4",{id:"params-3"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?made_type"))," | chatEvent made_type to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4e11e886.3ecbc820.js b/assets/js/4e11e886.3ecbc820.js new file mode 100644 index 0000000..9d1238a --- /dev/null +++ b/assets/js/4e11e886.3ecbc820.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6641],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>d});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),s=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=s(a),u=r,d=m["".concat(c,".").concat(u)]||m[u]||y[u]||i;return a?n.createElement(d,l(l({ref:t},p),{},{components:a})):n.createElement(d,l({ref:t},p))}));function d(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[m]="string"==typeof e?e:r,l[1]=o;for(var s=2;s{a.r(t),a.d(t,{contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=a(8168),r=(a(6540),a(5680));const i={id:"canMakeChatEvent",title:"CanMakeChatEvent APIs",sidebar_label:"CanMakeChatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent"},l=void 0,o={unversionedId:"apis/traits/chatEvent/canMakeChatEvent",id:"apis/traits/chatEvent/canMakeChatEvent",isDocsHomePage:!1,title:"CanMakeChatEvent APIs",description:"Namespace",source:"@site/docs/apis/traits/chatEvent/canMakeChatEvent.md",sourceDirName:"apis/traits/chatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent",permalink:"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/traits/chatEvent/canMakeChatEvent.md",version:"current",frontMatter:{id:"canMakeChatEvent",title:"CanMakeChatEvent APIs",sidebar_label:"CanMakeChatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent"},sidebar:"docs",previous:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/next/apis/models/chatEvent"},next:{title:"HasChatEvent",permalink:"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent"}},c=[{value:"Namespace",id:"namespace",children:[{value:"chatEventMakers()",id:"chateventmakers",children:[]}]}],s={toc:c},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.yg)(p,(0,n.A)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"chateventmakers"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEventMakers()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has many chat event makers.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphMany"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?id"))," | chatEvent id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | chatEvent type to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_type"))," | chatEvent made_type to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/50d39d4f.6d65ffd0.js b/assets/js/50d39d4f.6d65ffd0.js new file mode 100644 index 0000000..c40a914 --- /dev/null +++ b/assets/js/50d39d4f.6d65ffd0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4914],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>v});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=l(n),g=r,v=p["".concat(c,".").concat(g)]||p[g]||u[g]||s;return n?a.createElement(v,i(i({ref:t},d),{},{components:n})):a.createElement(v,i({ref:t},d))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var l=2;l{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var a=n(8168),r=(n(6540),n(5680));const s={id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},i=void 0,o={unversionedId:"guides/guides.chatEvent",id:"version-v1.0.0-beta.0/guides/guides.chatEvent",isDocsHomePage:!1,title:"Using ChatEvent",description:"Creating chatEvent",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/chatEvent.md",sourceDirName:"guides",slug:"/guides/chatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/chatEvent.md",version:"v1.0.0-beta.0",frontMatter:{id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Using Message",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message"},next:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts"}},c=[{value:"Creating chatEvent",id:"creating-chatevent",children:[]},{value:"Broadcasting chatEvent",id:"broadcasting-chatevent",children:[]}],l={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.yg)(d,(0,a.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"creating-chatevent"},"Creating chatEvent"),(0,r.yg)("p",null,"You may create chat events by a ",(0,r.yg)("inlineCode",{parentName:"p"},"IChatEventMaker")," model for ",(0,r.yg)("inlineCode",{parentName:"p"},"Message")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"Conversation")," models.\nfor example, creating a read event for a particular message."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$user->chatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,r.yg)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,r.yg)("p",null,"By default, everytime chat is event is created, a ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,r.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/50d39d4f.e15329a1.js b/assets/js/50d39d4f.e15329a1.js deleted file mode 100644 index 34d51d5..0000000 --- a/assets/js/50d39d4f.e15329a1.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5074],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=l(n),m=r,v=p["".concat(c,".").concat(m)]||p[m]||u[m]||s;return n?a.createElement(v,i(i({ref:t},d),{},{components:n})):a.createElement(v,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var l=2;lchatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,s.kt)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,s.kt)("p",null,"By default, everytime chat is event is created, a ",(0,s.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,s.kt)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5241.d9687448.js b/assets/js/5241.d9687448.js new file mode 100644 index 0000000..f0bba65 --- /dev/null +++ b/assets/js/5241.d9687448.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5241],{6359:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(6540);const r="iconExternalLink_wgqa",l=e=>{let{width:t=13.5,height:n=13.5}=e;return a.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r},a.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},1952:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(8168),r=n(6540);const l=e=>{let{width:t=30,height:n=30,className:l,...c}=e;return r.createElement("svg",(0,a.A)({className:l,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},c),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}},5241:(e,t,n)=>{n.d(t,{A:()=>be});var a=n(6540),r=n(53),l=n(6347),c=n(4798),o=n(3155);const s="skipToContent_OuoZ";function i(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}const m=function(){const e=(0,a.useRef)(null),{action:t}=(0,l.W6)();return(0,o.$G)((n=>{let{location:a}=n;e.current&&!a.hash&&"POP"!==t&&i(e.current)})),a.createElement("div",{ref:e},a.createElement("a",{href:"#",className:s,onClick:e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")||document.querySelector(".main-wrapper");t&&i(t)}},a.createElement(c.A,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))},u="announcementBar_axC9",d="announcementBarClose_A3A1",h="announcementBarContent_6uhP",f="announcementBarCloseable_y4cp";const v=function(){const{isClosed:e,close:t}=(0,o.Mj)(),{announcementBar:n}=(0,o.pN)();if(!n)return null;const{content:l,backgroundColor:s,textColor:i,isCloseable:m}=n;return!l||m&&e?null:a.createElement("div",{className:u,style:{backgroundColor:s,color:i},role:"banner"},a.createElement("div",{className:(0,r.A)(h,{[f]:m}),dangerouslySetInnerHTML:{__html:l}}),m?a.createElement("button",{type:"button",className:(0,r.A)(d,"clean-btn"),onClick:t,"aria-label":(0,c.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},a.createElement("span",{"aria-hidden":"true"},"\xd7")):null)};var g=n(8168);const E=()=>null;var b=n(4586);const p={toggle:"toggle_iYfV"},A=e=>{let{icon:t,style:n}=e;return a.createElement("span",{className:(0,r.A)(p.toggle,p.dark),style:n},t)},k=e=>{let{icon:t,style:n}=e;return a.createElement("span",{className:(0,r.A)(p.toggle,p.light),style:n},t)},_=(0,a.memo)((e=>{let{className:t,icons:n,checked:l,disabled:c,onChange:o}=e;const[s,i]=(0,a.useState)(l),[m,u]=(0,a.useState)(!1),d=(0,a.useRef)(null);return a.createElement("div",{className:(0,r.A)("react-toggle",t,{"react-toggle--checked":s,"react-toggle--focus":m,"react-toggle--disabled":c})},a.createElement("div",{className:"react-toggle-track",role:"button",tabIndex:-1,onClick:()=>d.current?.click()},a.createElement("div",{className:"react-toggle-track-check"},n.checked),a.createElement("div",{className:"react-toggle-track-x"},n.unchecked),a.createElement("div",{className:"react-toggle-thumb"})),a.createElement("input",{ref:d,checked:s,type:"checkbox",className:"react-toggle-screenreader-only","aria-label":"Switch between dark and light mode",onChange:o,onClick:()=>i(!s),onFocus:()=>u(!0),onBlur:()=>u(!1)}))}));function N(e){const{colorMode:{switchConfig:{darkIcon:t,darkIconStyle:n,lightIcon:r,lightIconStyle:l}}}=(0,o.pN)(),{isClient:c}=(0,b.A)();return a.createElement(_,(0,g.A)({disabled:!c,icons:{checked:a.createElement(A,{icon:t,style:n}),unchecked:a.createElement(k,{icon:r,style:l})}},e))}var w=n(4785),y=n(5515);const C=e=>{const t=(0,l.zy)(),[n,r]=(0,a.useState)(e),c=(0,a.useRef)(!1),[s,i]=(0,a.useState)(0),m=(0,a.useCallback)((e=>{null!==e&&i(e.getBoundingClientRect().height)}),[]);return(0,y.A)(((t,n)=>{let{scrollY:a}=t,{scrollY:l}=n;if(!e)return;if(a=l?r(!1):a+i{e&&!t.location.hash&&r(!0)})),(0,a.useEffect)((()=>{e&&t.hash&&(c.current=!0)}),[t.hash]),{navbarRef:m,isNavbarVisible:n}};var L=n(4911),I=n(9312),D=n(3031);const T=e=>{let{width:t=20,height:n=20,...r}=e;return a.createElement("svg",(0,g.A)({viewBox:"0 0 20 20",width:t,height:n,"aria-hidden":"true"},r),a.createElement("path",{fill:"currentColor",d:"M19.753 10.909c-.624-1.707-2.366-2.726-4.661-2.726-.09 0-.176.002-.262.006l-.016-2.063 3.525-.607c.115-.019.133-.119.109-.231-.023-.111-.167-.883-.188-.976-.027-.131-.102-.127-.207-.109-.104.018-3.25.461-3.25.461l-.013-2.078c-.001-.125-.069-.158-.194-.156l-1.025.016c-.105.002-.164.049-.162.148l.033 2.307s-3.061.527-3.144.543c-.084.014-.17.053-.151.143.019.09.19 1.094.208 1.172.018.08.072.129.188.107l2.924-.504.035 2.018c-1.077.281-1.801.824-2.256 1.303-.768.807-1.207 1.887-1.207 2.963 0 1.586.971 2.529 2.328 2.695 3.162.387 5.119-3.06 5.769-4.715 1.097 1.506.256 4.354-2.094 5.98-.043.029-.098.129-.033.207l.619.756c.08.096.206.059.256.023 2.51-1.73 3.661-4.515 2.869-6.683zm-7.386 3.188c-.966-.121-.944-.914-.944-1.453 0-.773.327-1.58.876-2.156a3.21 3.21 0 011.229-.799l.082 4.277a2.773 2.773 0 01-1.243.131zm2.427-.553l.046-4.109c.084-.004.166-.01.252-.01.773 0 1.494.145 1.885.361.391.217-1.023 2.713-2.183 3.758zm-8.95-7.668a.196.196 0 00-.196-.145h-1.95a.194.194 0 00-.194.144L.008 16.916c-.017.051-.011.076.062.076h1.733c.075 0 .099-.023.114-.072l1.008-3.318h3.496l1.008 3.318c.016.049.039.072.113.072h1.734c.072 0 .078-.025.062-.076-.014-.05-3.083-9.741-3.494-11.04zm-2.618 6.318l1.447-5.25 1.447 5.25H3.226z"}))};function x(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,...l}=e;const{i18n:{currentLocale:c,locales:s,localeConfigs:i}}=(0,b.A)(),m=(0,o.oK)();function u(e){return i[e].label}const d=[...n,...s.map((e=>{const t=`pathname://${m.createUrl({locale:e,fullyQualified:!1})}`;return{isNavLink:!0,label:u(e),to:t,target:"_self",autoAddBaseUrl:!1,className:e===c?"dropdown__link--active":"",style:{textTransform:"capitalize"}}})),...r],h=t?"Languages":u(c);return a.createElement(D.A,(0,g.A)({},l,{href:"#",mobile:t,label:a.createElement("span",null,a.createElement(T,{style:{verticalAlign:"text-bottom",marginRight:5}}),a.createElement("span",null,h)),items:d}))}function S(e){let{mobile:t}=e;return t?null:a.createElement(E,null)}const B={default:()=>D.A,localeDropdown:()=>x,search:()=>S,docsVersion:()=>n(6467).A,docsVersionDropdown:()=>n(7754).A,doc:()=>n(8240).A};function M(e){let{type:t,...n}=e;const r=function(e){void 0===e&&(e="default");const t=B[e];if(!t)throw new Error(`No NavbarItem component found for type "${e}".`);return t()}(t);return a.createElement(r,n)}var R=n(1773),V=n(1952);const z="displayOnlyInLargeViewport_cxYs",$="navbarHideable_RReh",P="navbarHidden_FBwS",H="right";const U=function(){const{navbar:{items:e,hideOnScroll:t,style:n},colorMode:{disableSwitch:l}}=(0,o.pN)(),[c,s]=(0,a.useState)(!1),{isDarkTheme:i,setLightTheme:m,setDarkTheme:u}=(0,w.A)(),{navbarRef:d,isNavbarVisible:h}=C(t);(0,L.A)(c);const f=(0,a.useCallback)((()=>{s(!0)}),[s]),v=(0,a.useCallback)((()=>{s(!1)}),[s]),b=(0,a.useCallback)((e=>e.target.checked?u():m()),[m,u]),p=(0,I.A)();(0,a.useEffect)((()=>{p===I.X.desktop&&s(!1)}),[p]);const A=e.some((e=>"search"===e.type)),{leftItems:k,rightItems:_}=function(e){return{leftItems:e.filter((e=>"left"===(e.position??H))),rightItems:e.filter((e=>"right"===(e.position??H)))}}(e);return a.createElement("nav",{ref:d,className:(0,r.A)("navbar","navbar--fixed-top",{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":c,[$]:t,[P]:t&&!h})},a.createElement("div",{className:"navbar__inner"},a.createElement("div",{className:"navbar__items"},null!=e&&0!==e.length&&a.createElement("button",{"aria-label":"Navigation bar toggle",className:"navbar__toggle clean-btn",type:"button",tabIndex:0,onClick:f,onKeyDown:f},a.createElement(V.A,null)),a.createElement(R.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title"}),k.map(((e,t)=>a.createElement(M,(0,g.A)({},e,{key:t}))))),a.createElement("div",{className:"navbar__items navbar__items--right"},_.map(((e,t)=>a.createElement(M,(0,g.A)({},e,{key:t})))),!l&&a.createElement(N,{className:z,checked:i,onChange:b}),!A&&a.createElement(E,null))),a.createElement("div",{role:"presentation",className:"navbar-sidebar__backdrop",onClick:v}),a.createElement("div",{className:"navbar-sidebar"},a.createElement("div",{className:"navbar-sidebar__brand"},a.createElement(R.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title",onClick:v}),!l&&c&&a.createElement(N,{checked:i,onChange:b})),a.createElement("div",{className:"navbar-sidebar__items"},a.createElement("div",{className:"menu"},a.createElement("ul",{className:"menu__list"},e.map(((e,t)=>a.createElement(M,(0,g.A)({mobile:!0},e,{onClick:v,key:t})))))))))};var O=n(4676),G=n(6025),W=n(6654);const K="footerLogoLink_SRtH";var Y=n(1101),q=n(6359);function F(e){let{to:t,href:n,label:r,prependBaseUrlToHref:l,...c}=e;const o=(0,G.A)(t),s=(0,G.A)(n,{forcePrependBaseUrl:!0});return a.createElement(O.A,(0,g.A)({className:"footer__link-item"},n?{href:l?s:n}:{to:o},c),n&&!(0,W.A)(n)?a.createElement("span",null,r,a.createElement(q.A,null)):r)}const j=e=>{let{sources:t,alt:n}=e;return a.createElement(Y.A,{className:"footer__logo",alt:n,sources:t})};const Q=function(){const{footer:e}=(0,o.pN)(),{copyright:t,links:n=[],logo:l={}}=e||{},c={light:(0,G.A)(l.src),dark:(0,G.A)(l.srcDark||l.src)};return e?a.createElement("footer",{className:(0,r.A)("footer",{"footer--dark":"dark"===e.style})},a.createElement("div",{className:"container"},n&&n.length>0&&a.createElement("div",{className:"row footer__links"},n.map(((e,t)=>a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?a.createElement("div",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?a.createElement("ul",{className:"footer__items"},e.items.map(((e,t)=>e.html?a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):a.createElement("li",{key:e.href||e.to,className:"footer__item"},a.createElement(F,e))))):null)))),(l||t)&&a.createElement("div",{className:"footer__bottom text--center"},l&&(l.src||l.srcDark)&&a.createElement("div",{className:"margin-bottom--sm"},l.href?a.createElement(O.A,{href:l.href,className:K},a.createElement(j,{alt:l.alt,sources:c})):a.createElement(j,{alt:l.alt,sources:c})),t?a.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}}):null))):null};var X=n(8193);const Z=(0,o.Wf)("theme"),J="light",ee="dark",te=e=>e===ee?ee:J,ne=e=>{(0,o.Wf)("theme").set(te(e))},ae=()=>{const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,o.pN)(),[r,l]=(0,a.useState)((e=>X.A.canUseDOM?te(document.documentElement.getAttribute("data-theme")):te(e))(e)),c=(0,a.useCallback)((()=>{l(J),ne(J)}),[]),s=(0,a.useCallback)((()=>{l(ee),ne(ee)}),[]);return(0,a.useEffect)((()=>{document.documentElement.setAttribute("data-theme",te(r))}),[r]),(0,a.useEffect)((()=>{if(!t)try{const e=Z.get();null!==e&&l(te(e))}catch(e){console.error(e)}}),[l]),(0,a.useEffect)((()=>{t&&!n||window.matchMedia("(prefers-color-scheme: dark)").addListener((e=>{let{matches:t}=e;l(t?ee:J)}))}),[]),{isDarkTheme:r===ee,setLightTheme:c,setDarkTheme:s}};var re=n(493);const le=function(e){const{isDarkTheme:t,setLightTheme:n,setDarkTheme:r}=ae();return a.createElement(re.A.Provider,{value:{isDarkTheme:t,setLightTheme:n,setDarkTheme:r}},e.children)},ce="docusaurus.tab.",oe=()=>{const[e,t]=(0,a.useState)({}),n=(0,a.useCallback)(((e,t)=>{(0,o.Wf)(`${ce}${e}`).set(t)}),[]);return(0,a.useEffect)((()=>{try{const e={};(0,o.Eo)().forEach((t=>{if(t.startsWith(ce)){const n=t.substring(15);e[n]=(0,o.Wf)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]),{tabGroupChoices:e,setTabGroupChoices:(e,a)=>{t((t=>({...t,[e]:a}))),n(e,a)}}},se=(0,a.createContext)(void 0);const ie=function(e){const{tabGroupChoices:t,setTabGroupChoices:n}=oe();return a.createElement(se.Provider,{value:{tabGroupChoices:t,setTabGroupChoices:n}},e.children)};function me(e){let{children:t}=e;return a.createElement(le,null,a.createElement(o.oq,null,a.createElement(ie,null,a.createElement(o.VQ,null,t))))}var ue=n(2602);function de(e){let{locale:t,version:n,tag:r}=e;return a.createElement(ue.A,null,t&&a.createElement("meta",{name:"docusaurus_locale",content:t}),n&&a.createElement("meta",{name:"docusaurus_version",content:n}),r&&a.createElement("meta",{name:"docusaurus_tag",content:r}))}var he=n(8139);function fe(){const{i18n:{defaultLocale:e,locales:t}}=(0,b.A)(),n=(0,o.oK)();return a.createElement(ue.A,null,t.map((e=>a.createElement("link",{key:e,rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:e}))),a.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function ve(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,b.A)(),r=function(){const{siteConfig:{url:e}}=(0,b.A)(),{pathname:t}=(0,l.zy)();return e+(0,G.A)(t)}(),c=t?`${n}${t}`:r;return a.createElement(ue.A,null,a.createElement("meta",{property:"og:url",content:c}),a.createElement("link",{rel:"canonical",href:c}))}function ge(e){const{siteConfig:{favicon:t,themeConfig:{metadatas:n,image:r}},i18n:{currentLocale:l,localeConfigs:c}}=(0,b.A)(),{title:s,description:i,image:m,keywords:u,searchMetadatas:d}=e,h=(0,G.A)(t),f=(0,o.s$)(s),v=l,E=c[l].direction;return a.createElement(a.Fragment,null,a.createElement(ue.A,null,a.createElement("html",{lang:v,dir:E}),t&&a.createElement("link",{rel:"shortcut icon",href:h}),a.createElement("title",null,f),a.createElement("meta",{property:"og:title",content:f}),m||r&&a.createElement("meta",{name:"twitter:card",content:"summary_large_image"})),a.createElement(he.A,{description:i,keywords:u,image:m}),a.createElement(ve,null),a.createElement(fe,null),a.createElement(de,(0,g.A)({tag:o.Cy,locale:l},d)),a.createElement(ue.A,null,n.map(((e,t)=>a.createElement("meta",(0,g.A)({key:`metadata_${t}`},e))))))}const Ee=function(){(0,a.useEffect)((()=>{const e="navigation-with-keyboard";function t(t){"keydown"===t.type&&"Tab"===t.key&&document.body.classList.add(e),"mousedown"===t.type&&document.body.classList.remove(e)}return document.addEventListener("keydown",t),document.addEventListener("mousedown",t),()=>{document.body.classList.remove(e),document.removeEventListener("keydown",t),document.removeEventListener("mousedown",t)}}),[])};const be=function(e){const{children:t,noFooter:n,wrapperClassName:l,pageClassName:c}=e;return Ee(),a.createElement(me,null,a.createElement(ge,e),a.createElement(m,null),a.createElement(v,null),a.createElement(U,null),a.createElement("div",{className:(0,r.A)(o.GN.wrapper.main,l,c)},t),!n&&a.createElement(Q,null))}},1773:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(8168),r=n(6540),l=n(4676),c=n(1101),o=n(6025),s=n(4586);const i=e=>{const{siteConfig:{title:t,themeConfig:{navbar:{title:n,logo:i={src:""}}}},isClient:m}=(0,s.A)(),{imageClassName:u,titleClassName:d,...h}=e,f=(0,o.A)(i.href||"/"),v={light:(0,o.A)(i.src),dark:(0,o.A)(i.srcDark||i.src)};return r.createElement(l.A,(0,a.A)({to:f},h,i.target&&{target:i.target}),i.src&&r.createElement(c.A,{key:m,className:u,sources:v,alt:i.alt||n||t}),null!=n&&r.createElement("b",{className:d},n))}},3031:(e,t,n)=>{n.d(t,{A:()=>g});var a=n(8168),r=n(6540),l=n(53),c=n(4676),o=n(6025),s=n(6347),i=n(3155),m=n(6359),u=n(6654);const d="dropdown__link--active";function h(e){let{activeBasePath:t,activeBaseRegex:n,to:l,href:s,label:i,activeClassName:h="navbar__link--active",prependBaseUrlToHref:f,...v}=e;const g=(0,o.A)(l),E=(0,o.A)(t),b=(0,o.A)(s,{forcePrependBaseUrl:!0}),p=i&&s&&!(0,u.A)(s),A=h===d;return r.createElement(c.A,(0,a.A)({},s?{href:f?b:s}:{isNavLink:!0,activeClassName:h,to:g,...t||n?{isActive:(e,t)=>n?new RegExp(n).test(t.pathname):t.pathname.startsWith(E)}:null},v),p?r.createElement("span",null,i,r.createElement(m.A,A&&{width:12,height:12})):i)}function f(e){let{items:t,position:n,className:c,...o}=e;const s=(0,r.useRef)(null),i=(0,r.useRef)(null),[m,u]=(0,r.useState)(!1);(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[s]);const f=function(e,t){return void 0===t&&(t=!1),(0,l.A)({"navbar__item navbar__link":!t,dropdown__link:t},e)};return t?r.createElement("div",{ref:s,className:(0,l.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--left":"left"===n,"dropdown--right":"right"===n,"dropdown--show":m})},r.createElement(h,(0,a.A)({className:f(c)},o,{onClick:o.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!m))}}),o.children??o.label),r.createElement("ul",{ref:i,className:"dropdown__menu"},t.map(((e,n)=>{let{className:l,...c}=e;return r.createElement("li",{key:n},r.createElement(h,(0,a.A)({onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),u(!1);const t=s.current.nextElementSibling;t&&t.focus()}},activeClassName:d,className:f(l,!0)},c)))})))):r.createElement(h,(0,a.A)({className:f(c)},o))}function v(e){let{items:t,className:n,position:c,...o}=e;const m=(0,r.useRef)(null),{pathname:u}=(0,s.zy)(),[d,f]=(0,r.useState)((()=>!t?.some((e=>(0,i.ys)(e.to,u)))??!0)),v=function(e,t){return void 0===t&&(t=!1),(0,l.A)("menu__link",{"menu__link--sublist":t},e)};if(!t)return r.createElement("li",{className:"menu__list-item"},r.createElement(h,(0,a.A)({className:v(n)},o)));const g=m.current?.scrollHeight?`${m.current?.scrollHeight}px`:void 0;return r.createElement("li",{className:(0,l.A)("menu__list-item",{"menu__list-item--collapsed":d})},r.createElement(h,(0,a.A)({role:"button",className:v(n,!0)},o,{onClick:e=>{e.preventDefault(),f((e=>!e))}}),o.children??o.label),r.createElement("ul",{className:"menu__list",ref:m,style:{height:d?void 0:g}},t.map(((e,t)=>{let{className:n,...l}=e;return r.createElement("li",{className:"menu__list-item",key:t},r.createElement(h,(0,a.A)({activeClassName:"menu__link--active",className:v(n)},l,{onClick:o.onClick})))}))))}const g=function(e){let{mobile:t=!1,...n}=e;const a=t?v:f;return r.createElement(a,n)}},8240:(e,t,n)=>{n.d(t,{A:()=>m});var a=n(8168),r=n(6540),l=n(3031),c=n(4098),o=n(53),s=n(3155),i=n(440);function m(e){let{docId:t,activeSidebarClassName:n,label:m,docsPluginId:u,...d}=e;const{activeVersion:h,activeDoc:f}=(0,c.zK)(u),{preferredVersion:v}=(0,s.g1)(u),g=(0,c.r7)(u),E=function(e,t){const n=[].concat(...e.map((e=>e.docs))),a=n.find((e=>e.id===t));if(!a){const a=n.map((e=>e.id)).join("\n- ");throw new Error(`DocNavbarItem: couldn't find any doc with id "${t}" in version${e.length?"s":""} ${e.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${a}`)}return a}((0,i.uniq)([h,v,g].filter(Boolean)),t);return r.createElement(l.A,(0,a.A)({exact:!0},d,{className:(0,o.A)(d.className,{[n]:f&&f.sidebar===E.sidebar}),label:m??E.id,to:E.path}))}},7754:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(8168),r=n(6540),l=n(3031),c=n(4098),o=n(3155);const s=e=>e.docs.find((t=>t.id===e.mainDocId));function i(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:i,dropdownItemsBefore:m,dropdownItemsAfter:u,...d}=e;const h=(0,c.zK)(n),f=(0,c.jh)(n),v=(0,c.r7)(n),{preferredVersion:g,savePreferredVersionName:E}=(0,o.g1)(n);const b=function(){const e=f.map((e=>{const t=h?.alternateDocVersions[e.name]||s(e);return{isNavLink:!0,label:e.label,to:t.path,isActive:()=>e===h?.activeVersion,onClick:()=>{E(e.name)}}})),t=[...m,...e,...u];if(!(t.length<=1))return t}(),p=h.activeVersion??g??v,A=t&&b?"Versions":p.label,k=t&&b?void 0:s(p).path;return r.createElement(l.A,(0,a.A)({},d,{mobile:t,label:A,to:k,items:b,isActive:i?()=>!1:void 0}))}},6467:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(8168),r=n(6540),l=n(3031),c=n(4098),o=n(3155);const s=e=>e.docs.find((t=>t.id===e.mainDocId));function i(e){let{label:t,to:n,docsPluginId:i,...m}=e;const u=(0,c.ir)(i),{preferredVersion:d}=(0,o.g1)(i),h=(0,c.r7)(i),f=u??d??h,v=t??f.label,g=n??s(f).path;return r.createElement(l.A,(0,a.A)({},m,{label:v,to:g}))}},493:(e,t,n)=>{n.d(t,{A:()=>a});const a=n(6540).createContext(void 0)},1101:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(8168),r=n(6540),l=n(53),c=n(4586),o=n(4785);const s={themedImage:"themedImage_TMUO","themedImage--light":"themedImage--light_4Vu1","themedImage--dark":"themedImage--dark_uzRr"},i=e=>{const{isClient:t}=(0,c.A)(),{isDarkTheme:n}=(0,o.A)(),{sources:i,className:m,alt:u="",...d}=e,h=t?n?["dark"]:["light"]:["light","dark"];return r.createElement(r.Fragment,null,h.map((e=>r.createElement("img",(0,a.A)({key:e,src:i[e],alt:u,className:(0,l.A)(s.themedImage,s[`themedImage--${e}`],m)},d)))))}},4911:(e,t,n)=>{n.d(t,{A:()=>r});var a=n(6540);const r=function(e){void 0===e&&(e=!0),(0,a.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}},5515:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(6540),r=n(8193);const l=()=>({scrollX:r.A.canUseDOM?window.pageXOffset:0,scrollY:r.A.canUseDOM?window.pageYOffset:0}),c=function(e,t){void 0===t&&(t=[]);const n=(0,a.useRef)(l()),r=()=>{const t=l();e&&e(t,n.current),n.current=t};(0,a.useEffect)((()=>{const e={passive:!0};return r(),window.addEventListener("scroll",r,e),()=>window.removeEventListener("scroll",r,e)}),t)}},4785:(e,t,n)=>{n.d(t,{A:()=>l});var a=n(6540),r=n(493);const l=function(){const e=(0,a.useContext)(r.A);if(null==e)throw new Error('"useThemeContext" is used outside of "Layout" component. Please see https://docusaurus.io/docs/api/themes/configuration#usethemecontext.');return e}},9312:(e,t,n)=>{n.d(t,{A:()=>c,X:()=>l});var a=n(6540),r=n(8193);const l={desktop:"desktop",mobile:"mobile"};const c=function(){const e=r.A.canUseDOM;function t(){if(e)return window.innerWidth>996?l.desktop:l.mobile}const[n,c]=(0,a.useState)(t);return(0,a.useEffect)((()=>{if(e)return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n);function n(){c(t())}}),[]),n}}}]); \ No newline at end of file diff --git a/assets/js/5345.7e6dcd21.js b/assets/js/5345.7e6dcd21.js new file mode 100644 index 0000000..c98c183 --- /dev/null +++ b/assets/js/5345.7e6dcd21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5345],{4676:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(6540),o=r(4625),a=r(4586),s=r(6654),i=r(8193);const c=(0,n.createContext)({collectLink:()=>{}});var u=r(6025),l=r(440);const f=function(e){let{isNavLink:t,to:r,href:f,activeClassName:d,isActive:p,"data-noBrokenLinkCheck":v,autoAddBaseUrl:g=!0,...h}=e;var y;const{siteConfig:{trailingSlash:m,baseUrl:_}}=(0,a.A)(),{withBaseUrl:b}=(0,u.h)(),w=(0,n.useContext)(c),P=r||f,D=(0,s.A)(P),A=null==P?void 0:P.replace("pathname://","");let E=void 0!==A?(O=A,g&&(e=>e.startsWith("/"))(O)?b(O):O):void 0;var O;E&&D&&(E=(0,l.applyTrailingSlash)(E,{trailingSlash:m,baseUrl:_}));const j=(0,n.useRef)(!1),S=t?o.k2:o.N_,x=i.A.canUseIntersectionObserver;let V;(0,n.useEffect)((()=>(!x&&D&&null!=E&&window.docusaurus.prefetch(E),()=>{x&&V&&V.disconnect()})),[E,x,D]);const I=null!==(y=null==E?void 0:E.startsWith("#"))&&void 0!==y&&y,k=!E||!D||I;return E&&D&&!I&&!v&&w.collectLink(E),k?n.createElement("a",{href:E,...P&&!D&&{target:"_blank",rel:"noopener noreferrer"},...h}):n.createElement(S,{...h,onMouseEnter:()=>{j.current||null==E||(window.docusaurus.preload(E),j.current=!0)},innerRef:e=>{var t,r;x&&e&&D&&(t=e,r=()=>{null!=E&&window.docusaurus.prefetch(E)},V=new window.IntersectionObserver((e=>{e.forEach((e=>{t===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(V.unobserve(t),V.disconnect(),r())}))})),V.observe(t))},to:E||"",...t&&{isActive:p,activeClassName:d}})}},4798:(e,t,r)=>{r.d(t,{A:()=>f,T:()=>l});var n=r(6540);const o=/{\w+}/g,a="{}";function s(e,t){const r=[],s=e.replace(o,(e=>{const o=e.substr(1,e.length-2),s=null==t?void 0:t[o];if(void 0!==s){const e=n.isValidElement(s)?s:String(s);return r.push(e),a}return e}));return 0===r.length?e:r.every((e=>"string"==typeof e))?s.split(a).reduce(((e,t,n)=>{var o;return e.concat(t).concat(null!==(o=r[n])&&void 0!==o?o:"")}),""):s.split(a).reduce(((e,t,o)=>[...e,n.createElement(n.Fragment,{key:o},t,r[o])]),[])}function i(e){let{children:t,values:r}=e;return s(t,r)}var c=r(2654);function u(e){let{id:t,message:r}=e;var n;return null!==(n=c[null!=t?t:r])&&void 0!==n?n:r}function l(e,t){let{message:r,id:n}=e;var o;return s(null!==(o=u({message:r,id:n}))&&void 0!==o?o:r,t)}function f(e){let{children:t,id:r,values:o}=e;var a;const s=null!==(a=u({message:t,id:r}))&&void 0!==a?a:t;return n.createElement(i,{values:o},s)}},6654:(e,t,r)=>{function n(e){return!0===/^(\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!n(e)}r.d(t,{A:()=>o,z:()=>n})},5567:(e,t,r)=>{r.r(t),r.d(t,{BrowserRouter:()=>n.Kd,HashRouter:()=>n.I9,Link:()=>n.N_,MemoryRouter:()=>n.fS,NavLink:()=>n.k2,Prompt:()=>n.XG,Redirect:()=>n.rd,Route:()=>n.qh,Router:()=>n.Ix,StaticRouter:()=>n.kO,Switch:()=>n.dO,generatePath:()=>n.tW,matchPath:()=>n.B6,useHistory:()=>n.W6,useLocation:()=>n.zy,useParams:()=>n.g,useRouteMatch:()=>n.W5,withRouter:()=>n.y});var n=r(4625)},6025:(e,t,r)=>{r.d(t,{A:()=>s,h:()=>a});var n=r(4586),o=r(6654);function a(){const{siteConfig:{baseUrl:e="/",url:t}={}}=(0,n.A)();return{withBaseUrl:(r,n)=>function(e,t,r,n){let{forcePrependBaseUrl:a=!1,absolute:s=!1}=void 0===n?{}:n;if(!r)return r;if(r.startsWith("#"))return r;if((0,o.z)(r))return r;if(a)return t+r;const i=r.startsWith(t)?r:t+r.replace(/^\//,"");return s?e+i:i}(t,e,r,n)}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:r}=a();return r(e,t)}},6588:(e,t,r)=>{r.r(t),r.d(t,{default:()=>a,useAllPluginInstancesData:()=>s,usePluginData:()=>i});var n=r(4586);const o="default";function a(){const{globalData:e}=(0,n.A)();if(!e)throw new Error("Docusaurus global data not found.");return e}function s(e){const t=a()[e];if(!t)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return t}function i(e,t){void 0===t&&(t=o);const r=s(e)[t];if(!r)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return r}},4733:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getDocVersionSuggestions=t.getActiveDocContext=t.getActiveVersion=t.getLatestVersion=t.getActivePlugin=void 0;const n=r(5567);t.getActivePlugin=function(e,t,r){void 0===r&&(r={});const o=Object.entries(e).find((e=>{let[r,o]=e;return!!n.matchPath(t,{path:o.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&r.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a};t.getLatestVersion=e=>e.versions.find((e=>e.isLast));t.getActiveVersion=(e,r)=>{const o=t.getLatestVersion(e);return[...e.versions.filter((e=>e!==o)),o].find((e=>!!n.matchPath(r,{path:e.path,exact:!1,strict:!1})))};t.getActiveDocContext=(e,r)=>{const o=t.getActiveVersion(e,r),a=null==o?void 0:o.docs.find((e=>!!n.matchPath(r,{path:e.path,exact:!0,strict:!1})));return{activeVersion:o,activeDoc:a,alternateDocVersions:a?function(t){const r={};return e.versions.forEach((e=>{e.docs.forEach((n=>{n.id===t&&(r[e.name]=n)}))})),r}(a.id):{}}};t.getDocVersionSuggestions=(e,r)=>{const n=t.getLatestVersion(e),o=t.getActiveDocContext(e,r);return{latestDocSuggestion:null==o?void 0:o.alternateDocVersions[n.name],latestVersionSuggestion:n}}},727:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useDocVersionSuggestions=t.useActiveDocContext=t.useActiveVersion=t.useLatestVersion=t.useVersions=t.useActivePluginAndVersion=t.useActivePlugin=t.useDocsData=t.useAllDocsData=void 0;const n=r(1635),o=r(5567),a=n.__importStar(r(6588)),s=r(4733),i={};t.useAllDocsData=()=>{var e;return null!==(e=a.default()["docusaurus-plugin-content-docs"])&&void 0!==e?e:i};t.useDocsData=e=>a.usePluginData("docusaurus-plugin-content-docs",e);t.useActivePlugin=function(e){void 0===e&&(e={});const r=t.useAllDocsData(),{pathname:n}=o.useLocation();return s.getActivePlugin(r,n,e)};t.useActivePluginAndVersion=function(e){void 0===e&&(e={});const r=t.useActivePlugin(e),{pathname:n}=o.useLocation();if(r){return{activePlugin:r,activeVersion:s.getActiveVersion(r.pluginData,n)}}};t.useVersions=e=>t.useDocsData(e).versions;t.useLatestVersion=e=>{const r=t.useDocsData(e);return s.getLatestVersion(r)};t.useActiveVersion=e=>{const r=t.useDocsData(e),{pathname:n}=o.useLocation();return s.getActiveVersion(r,n)};t.useActiveDocContext=e=>{const r=t.useDocsData(e),{pathname:n}=o.useLocation();return s.getActiveDocContext(r,n)};t.useDocVersionSuggestions=e=>{const r=t.useDocsData(e),{pathname:n}=o.useLocation();return s.getDocVersionSuggestions(r,n)}},8139:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(6540),o=r(2602),a=r(3155),s=r(6025);function i(e){let{title:t,description:r,keywords:i,image:c}=e;const{image:u}=(0,a.pN)(),l=(0,a.s$)(t),f=(0,s.A)(c||u,{absolute:!0});return n.createElement(o.A,null,t&&n.createElement("title",null,l),t&&n.createElement("meta",{property:"og:title",content:l}),r&&n.createElement("meta",{name:"description",content:r}),r&&n.createElement("meta",{property:"og:description",content:r}),i&&n.createElement("meta",{name:"keywords",content:Array.isArray(i)?i.join(","):i}),f&&n.createElement("meta",{property:"og:image",content:f}),f&&n.createElement("meta",{name:"twitter:image",content:f}))}},4098:(e,t,r)=>{r.d(t,{Gy:()=>n.useAllDocsData,HW:()=>n.useDocVersionSuggestions,ht:()=>n.useDocsData,ir:()=>n.useActiveVersion,jh:()=>n.useVersions,r7:()=>n.useLatestVersion,vT:()=>n.useActivePlugin,zK:()=>n.useActiveDocContext});var n=r(727)},3155:(e,t,r)=>{r.d(t,{oq:()=>z,Cy:()=>g,VQ:()=>R,GN:()=>M,Wf:()=>u,tU:()=>h,ys:()=>_,Eo:()=>l,wt:()=>v,oK:()=>d,Mj:()=>G,g1:()=>T,$G:()=>S,Ww:()=>O,ZC:()=>j,pN:()=>o,s$:()=>b});var n=r(4586);function o(){return(0,n.A)().siteConfig.themeConfig}const a="localStorage";function s(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(r){return t=r,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const c={get:()=>null,set:()=>{},del:()=>{}};const u=(e,t)=>{if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const r=s(null==t?void 0:t.persistence);return null===r?c:{get:()=>r.getItem(e),set:t=>r.setItem(e,t),del:()=>r.removeItem(e)}};function l(e){void 0===e&&(e=a);const t=s(e);if(!t)return[];const r=[];for(let n=0;n{const r=e=>!e||(null==e?void 0:e.endsWith("/"))?e:`${e}/`;return r(e)===r(t)},b=e=>{const{siteConfig:t={}}=(0,n.A)(),{title:r,titleDelimiter:o="|"}=t;return e&&e.trim().length?`${e.trim()} ${o} ${r}`:r};var w=r(6540);const P=["zero","one","two","few","many","other"];function D(e){return P.filter((t=>e.includes(t)))}const A={locale:"en",pluralForms:D(["one","other"]),select:e=>1===e?"one":"other"};function E(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,w.useMemo)((()=>{if(!Intl.PluralRules)return console.error("Intl.PluralRules not available!\nDocusaurus will fallback to a default/fallback (English) Intl.PluralRules implementation.\n "),A;try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:D(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to a default/fallback (English) Intl.PluralRules implementation.\n`),A}}),[e])}function O(){const e=E();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];{n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms}), but the message contains ${n.length} plural forms: ${e} `);const o=r.select(t),a=r.pluralForms.indexOf(o);return n[Math.min(a,n.length-1)]}}(r,t,e)}}function j(e){const t=(0,w.useRef)();return(0,w.useEffect)((()=>{t.current=e})),t.current}function S(e){const t=(0,f.zy)(),r=j(t),n=(0,w.useRef)(!0);(0,w.useEffect)((()=>{n.current?n.current=!1:e({location:t,previousLocation:r})}),[t])}const x=e=>`docs-preferred-version-${e}`,V={save:(e,t,r)=>{u(x(e),{persistence:t}).set(r)},read:(e,t)=>u(x(e),{persistence:t}).get(),clear:(e,t)=>{u(x(e),{persistence:t}).del()}};function I(e){let{pluginIds:t,versionPersistence:r,allDocsData:n}=e;const o={};return t.forEach((e=>{o[e]=function(e){const t=V.read(e,r);return n[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(V.clear(e,r),{preferredVersionName:null})}(e)})),o}function k(){const e=(0,y.Gy)(),t=o().docs.versionPersistence,r=(0,w.useMemo)((()=>Object.keys(e)),[e]),[n,a]=(0,w.useState)((()=>function(e){const t={};return e.forEach((e=>{t[e]={preferredVersionName:null}})),t}(r)));(0,w.useEffect)((()=>{a(I({allDocsData:e,versionPersistence:t,pluginIds:r}))}),[e,t,r]);return[n,(0,w.useMemo)((()=>({savePreferredVersion:function(e,r){V.save(e,t,r),a((t=>({...t,[e]:{preferredVersionName:r}})))}})),[a])]}const C=(0,w.createContext)(null);function R(e){let{children:t}=e;return m?w.createElement($,null,t):w.createElement(w.Fragment,null,t)}function $(e){let{children:t}=e;const r=k();return w.createElement(C.Provider,{value:r},t)}const L="default";function T(e){void 0===e&&(e=L);const t=(0,y.ht)(e),[r,n]=function(){const e=(0,w.useContext)(C);if(!e)throw new Error('Can\'t find docs preferred context, maybe you forgot to use the "DocsPreferredVersionContextProvider"?');return e}(),{preferredVersionName:o}=r[e];return{preferredVersion:o?t.versions.find((e=>e.name===o)):null,savePreferredVersionName:(0,w.useCallback)((t=>{n.savePreferredVersion(e,t)}),[n])}}const M={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagsPostPage:"blog-tags-post-page",docPage:"doc-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docPages:"docs-wrapper",mdxPages:"mdx-wrapper"}},F=u("docusaurus.announcement.dismiss"),N=u("docusaurus.announcement.id"),B=()=>"true"===F.get(),W=e=>F.set(String(e)),U=(0,w.createContext)(null),z=e=>{let{children:t}=e;const r=(()=>{const{announcementBar:e}=o(),{isClient:t}=(0,n.A)(),[r,a]=(0,w.useState)((()=>!!t&&B()));(0,w.useEffect)((()=>{a(B())}),[]);const s=(0,w.useCallback)((()=>{W(!0),a(!0)}),[]);return(0,w.useEffect)((()=>{if(!e)return;const{id:t}=e;let r=N.get();"annoucement-bar"===r&&(r="announcement-bar");const n=t!==r;N.set(t),n&&W(!1),!n&&B()||a(!1)}),[]),(0,w.useMemo)((()=>({isClosed:r,close:s})),[r])})();return w.createElement(U.Provider,{value:r},t)},G=()=>{const e=(0,w.useContext)(U);if(!e)throw new Error("useAnnouncementBar(): AnnouncementBar not found in React context: make sure to use the AnnouncementBarProvider on top of the tree");return e}},2983:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:r,baseUrl:n}=t;if(e.startsWith("#"))return e;if(void 0===r)return e;const[o]=e.split(/[#?]/),a="/"===o||o===n?o:(s=o,r?function(e){return e.endsWith("/")?e:`${e}/`}(s):function(e){return e.endsWith("/")?e.slice(0,-1):e}(s));var s;return e.replace(o,a)}},440:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.uniq=t.applyTrailingSlash=void 0;var o=r(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return n(o).default}});var a=r(5183);Object.defineProperty(t,"uniq",{enumerable:!0,get:function(){return n(a).default}})},5183:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return Array.from(new Set(e))}},53:(e,t,r)=>{function n(e){var t,r,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,r=0,o="";r{r.r(t),r.d(t,{__addDisposableResource:()=>$,__assign:()=>a,__asyncDelegator:()=>E,__asyncGenerator:()=>A,__asyncValues:()=>O,__await:()=>D,__awaiter:()=>v,__classPrivateFieldGet:()=>k,__classPrivateFieldIn:()=>R,__classPrivateFieldSet:()=>C,__createBinding:()=>h,__decorate:()=>i,__disposeResources:()=>T,__esDecorate:()=>u,__exportStar:()=>y,__extends:()=>o,__generator:()=>g,__importDefault:()=>I,__importStar:()=>V,__makeTemplateObject:()=>j,__metadata:()=>p,__param:()=>c,__propKey:()=>f,__read:()=>_,__rest:()=>s,__rewriteRelativeImportExtension:()=>M,__runInitializers:()=>l,__setFunctionName:()=>d,__spread:()=>b,__spreadArray:()=>P,__spreadArrays:()=>w,__values:()=>m,default:()=>F});var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;i--)(o=e[i])&&(s=(a<3?o(s):a>3?o(t,r,s):o(t,r))||s);return a>3&&s&&Object.defineProperty(t,r,s),s}function c(e,t){return function(r,n){t(r,n,e)}}function u(e,t,r,n,o,a){function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,c=n.kind,u="getter"===c?"get":"setter"===c?"set":"value",l=!t&&e?n.static?e:e.prototype:null,f=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,p=r.length-1;p>=0;p--){var v={};for(var g in n)v[g]="access"===g?{}:n[g];for(var g in n.access)v.access[g]=n.access[g];v.addInitializer=function(e){if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(e||null))};var h=(0,r[p])("accessor"===c?{get:f.get,set:f.set}:f[u],v);if("accessor"===c){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw new TypeError("Object expected");(i=s(h.get))&&(f.get=i),(i=s(h.set))&&(f.set=i),(i=s(h.init))&&o.unshift(i)}else(i=s(h))&&("field"===c?o.unshift(i):f[u]=i)}l&&Object.defineProperty(l,n.name,f),d=!0}function l(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function _(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(i){o={error:i}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s}function b(){for(var e=[],t=0;t1||i(e,t)}))},t&&(n[e]=t(n[e])))}function i(e,t){try{(r=o[e](t)).value instanceof D?Promise.resolve(r.value.v).then(c,u):l(a[0][2],r)}catch(n){l(a[0][3],n)}var r}function c(e){i("next",e)}function u(e){i("throw",e)}function l(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}}function E(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:D(e[n](t)),done:!1}:o?o(t):t}:o}}function O(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=m(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}}function j(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var S=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},x=function(e){return x=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},x(e)};function V(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=x(e),n=0;n=0;a--)(o=e[a])&&(i=(u<3?o(i):u>3?o(n,t,i):o(n,t))||i);return u>3&&i&&Object.defineProperty(n,t,i),i}function c(e,n){return function(t,r){n(t,r,e)}}function s(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function l(e,n,t,r){return new(t||(t=Promise))((function(o,u){function i(e){try{c(r.next(e))}catch(n){u(n)}}function a(e){try{c(r.throw(e))}catch(n){u(n)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,a)}c((r=r.apply(e,n||[])).next())}))}function f(e,n){var t,r,o,u,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return u={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(u){return function(a){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,o,u=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(r=u.next()).done;)i.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(t=u.return)&&t.call(u)}finally{if(o)throw o.error}}return i}function h(){for(var e=[],n=0;n1||a(e,n)}))})}function a(e,n){try{(t=o[e](n)).value instanceof b?Promise.resolve(t.value.v).then(c,s):l(u[0][2],t)}catch(r){l(u[0][3],r)}var t}function c(e){a("next",e)}function s(e){a("throw",e)}function l(e,n){e(n),u.shift(),u.length&&a(u[0][0],u[0][1])}}function P(e){var n,t;return n={},r("next"),r("throw",(function(e){throw e})),r("return"),n[Symbol.iterator]=function(){return this},n;function r(r,o){n[r]=e[r]?function(n){return(t=!t)?{value:b(e[r](n)),done:"return"===r}:o?o(n):n}:o}}function _(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=p(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise((function(r,o){(function(e,n,t,r){Promise.resolve(r).then((function(n){e({value:n,done:t})}),n)})(r,o,(n=e[t](n)).done,n.value)}))}}}function D(e,n){return Object.defineProperty?Object.defineProperty(e,"raw",{value:n}):e.raw=n,e}var A=Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n};function E(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&v(n,e,t);return A(n,e),n}function O(e){return e&&e.__esModule?e:{default:e}}function S(e,n,t,r){if("a"===t&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?e!==n||!r:!n.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?r:"a"===t?r.call(e):r?r.value:n.get(e)}function V(e,n,t,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof n?e!==n||!o:!n.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,t):o?o.value=t:n.set(e,t),t}},6742:function(e,n,t){"use strict";t.d(n,{Z:function(){return v}});var r=t(9756),o=t(7294),u=t(3727),i=t(2263),a=t(3919),c=t(412),s=(0,o.createContext)({collectLink:function(){}}),l=t(4996),f=t(8780);var v=function(e){var n,t,v=e.isNavLink,d=e.to,p=e.href,g=e.activeClassName,h=e.isActive,m=e["data-noBrokenLinkCheck"],y=e.autoAddBaseUrl,b=void 0===y||y,w=(0,r.Z)(e,["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"]),P=(0,i.Z)().siteConfig,_=P.trailingSlash,D=P.baseUrl,A=(0,l.C)().withBaseUrl,E=(0,o.useContext)(s),O=d||p,S=(0,a.Z)(O),V=null==O?void 0:O.replace("pathname://",""),x=void 0!==V?(t=V,b&&function(e){return e.startsWith("/")}(t)?A(t):t):void 0;x&&S&&(x=(0,f.applyTrailingSlash)(x,{trailingSlash:_,baseUrl:D}));var j,C=(0,o.useRef)(!1),k=v?u.OL:u.rU,L=c.Z.canUseIntersectionObserver;(0,o.useEffect)((function(){return!L&&S&&null!=x&&window.docusaurus.prefetch(x),function(){L&&j&&j.disconnect()}}),[x,L,S]);var I=null!==(n=null==x?void 0:x.startsWith("#"))&&void 0!==n&&n,R=!x||!S||I;return x&&S&&!I&&!m&&E.collectLink(x),R?o.createElement("a",Object.assign({href:x},O&&!S&&{target:"_blank",rel:"noopener noreferrer"},w)):o.createElement(k,Object.assign({},w,{onMouseEnter:function(){C.current||null==x||(window.docusaurus.preload(x),C.current=!0)},innerRef:function(e){var n,t;L&&e&&S&&(n=e,t=function(){null!=x&&window.docusaurus.prefetch(x)},(j=new window.IntersectionObserver((function(e){e.forEach((function(e){n===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(j.unobserve(n),j.disconnect(),t())}))}))).observe(n))},to:x||""},v&&{isActive:h,activeClassName:g}))}},4973:function(e,n,t){"use strict";t.d(n,{Z:function(){return f},I:function(){return l}});var r=t(7294),o=/{\w+}/g,u="{}";function i(e,n){var t=[],i=e.replace(o,(function(e){var o=e.substr(1,e.length-2),i=null==n?void 0:n[o];if(void 0!==i){var a=r.isValidElement(i)?i:String(i);return t.push(a),u}return e}));return 0===t.length?e:t.every((function(e){return"string"==typeof e}))?i.split(u).reduce((function(e,n,r){var o;return e.concat(n).concat(null!==(o=t[r])&&void 0!==o?o:"")}),""):i.split(u).reduce((function(e,n,o){return[].concat(e,[r.createElement(r.Fragment,{key:o},n,t[o])])}),[])}function a(e){return i(e.children,e.values)}var c=t(4644);function s(e){var n,t=e.id,r=e.message;return null!==(n=c[null!=t?t:r])&&void 0!==n?n:r}function l(e,n){var t,r=e.message;return i(null!==(t=s({message:r,id:e.id}))&&void 0!==t?t:r,n)}function f(e){var n,t=e.children,o=e.id,u=e.values,i=null!==(n=s({message:t,id:o}))&&void 0!==n?n:t;return r.createElement(a,{values:u},i)}},3919:function(e,n,t){"use strict";function r(e){return!0===/^(\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}t.d(n,{b:function(){return r},Z:function(){return o}})},8143:function(e,n,t){"use strict";t.r(n),t.d(n,{BrowserRouter:function(){return r.VK},HashRouter:function(){return r.UT},Link:function(){return r.rU},MemoryRouter:function(){return r.VA},NavLink:function(){return r.OL},Prompt:function(){return r.NL},Redirect:function(){return r.l_},Route:function(){return r.AW},Router:function(){return r.F0},StaticRouter:function(){return r.gx},Switch:function(){return r.rs},generatePath:function(){return r.Gn},matchPath:function(){return r.LX},useHistory:function(){return r.k6},useLocation:function(){return r.TH},useParams:function(){return r.UO},useRouteMatch:function(){return r.$B},withRouter:function(){return r.EN}});var r=t(3727)},4996:function(e,n,t){"use strict";t.d(n,{C:function(){return u},Z:function(){return i}});var r=t(2263),o=t(3919);function u(){var e=(0,r.Z)().siteConfig,n=(e=void 0===e?{}:e).baseUrl,t=void 0===n?"/":n,u=e.url;return{withBaseUrl:function(e,n){return function(e,n,t,r){var u=void 0===r?{}:r,i=u.forcePrependBaseUrl,a=void 0!==i&&i,c=u.absolute,s=void 0!==c&&c;if(!t)return t;if(t.startsWith("#"))return t;if((0,o.b)(t))return t;if(a)return n+t;var l=t.startsWith(n)?t:n+t.replace(/^\//,"");return s?e+l:l}(u,t,e,n)}}}function i(e,n){return void 0===n&&(n={}),(0,u().withBaseUrl)(e,n)}},8084:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return o},useAllPluginInstancesData:function(){return u},usePluginData:function(){return i}});var r=t(2263);function o(){var e=(0,r.Z)().globalData;if(!e)throw new Error("Docusaurus global data not found.");return e}function u(e){var n=o()[e];if(!n)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function i(e,n){void 0===n&&(n="default");var t=u(e)[n];if(!t)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+n+'".');return t}},8408:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getDocVersionSuggestions=n.getActiveDocContext=n.getActiveVersion=n.getLatestVersion=n.getActivePlugin=void 0;var r=t(8143);n.getActivePlugin=function(e,n,t){void 0===t&&(t={});var o=Object.entries(e).find((function(e){e[0];var t=e[1];return!!r.matchPath(n,{path:t.path,exact:!1,strict:!1})})),u=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!u&&t.failfast)throw new Error("Can't find active docs plugin for \""+n+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return u};n.getLatestVersion=function(e){return e.versions.find((function(e){return e.isLast}))};n.getActiveVersion=function(e,t){var o=n.getLatestVersion(e);return[].concat(e.versions.filter((function(e){return e!==o})),[o]).find((function(e){return!!r.matchPath(t,{path:e.path,exact:!1,strict:!1})}))};n.getActiveDocContext=function(e,t){var o,u,i=n.getActiveVersion(e,t),a=null==i?void 0:i.docs.find((function(e){return!!r.matchPath(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:a,alternateDocVersions:a?(o=a.id,u={},e.versions.forEach((function(e){e.docs.forEach((function(n){n.id===o&&(u[e.name]=n)}))})),u):{}}};n.getDocVersionSuggestions=function(e,t){var r=n.getLatestVersion(e),o=n.getActiveDocContext(e,t);return{latestDocSuggestion:null==o?void 0:o.alternateDocVersions[r.name],latestVersionSuggestion:r}}},6730:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.useDocVersionSuggestions=n.useActiveDocContext=n.useActiveVersion=n.useLatestVersion=n.useVersions=n.useActivePluginAndVersion=n.useActivePlugin=n.useDocsData=n.useAllDocsData=void 0;var r=t(9767),o=t(8143),u=r.__importStar(t(8084)),i=t(8408),a={};n.useAllDocsData=function(){var e;return null!==(e=u.default()["docusaurus-plugin-content-docs"])&&void 0!==e?e:a};n.useDocsData=function(e){return u.usePluginData("docusaurus-plugin-content-docs",e)};n.useActivePlugin=function(e){void 0===e&&(e={});var t=n.useAllDocsData(),r=o.useLocation().pathname;return i.getActivePlugin(t,r,e)};n.useActivePluginAndVersion=function(e){void 0===e&&(e={});var t=n.useActivePlugin(e),r=o.useLocation().pathname;if(t)return{activePlugin:t,activeVersion:i.getActiveVersion(t.pluginData,r)}};n.useVersions=function(e){return n.useDocsData(e).versions};n.useLatestVersion=function(e){var t=n.useDocsData(e);return i.getLatestVersion(t)};n.useActiveVersion=function(e){var t=n.useDocsData(e),r=o.useLocation().pathname;return i.getActiveVersion(t,r)};n.useActiveDocContext=function(e){var t=n.useDocsData(e),r=o.useLocation().pathname;return i.getActiveDocContext(t,r)};n.useDocVersionSuggestions=function(e){var t=n.useDocsData(e),r=o.useLocation().pathname;return i.getDocVersionSuggestions(t,r)}},1217:function(e,n,t){"use strict";t.d(n,{Z:function(){return a}});var r=t(7294),o=t(9105),u=t(9306),i=t(4996);function a(e){var n=e.title,t=e.description,a=e.keywords,c=e.image,s=(0,u.LU)().image,l=(0,u.pe)(n),f=(0,i.Z)(c||s,{absolute:!0});return r.createElement(o.Z,null,n&&r.createElement("title",null,l),n&&r.createElement("meta",{property:"og:title",content:l}),t&&r.createElement("meta",{name:"description",content:t}),t&&r.createElement("meta",{property:"og:description",content:t}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}))}},907:function(e,n,t){"use strict";t.d(n,{Iw:function(){return r.useActiveDocContext},gA:function(){return r.useActivePlugin},zu:function(){return r.useActiveVersion},_r:function(){return r.useAllDocsData},Jo:function(){return r.useDocVersionSuggestions},zh:function(){return r.useDocsData},yW:function(){return r.useLatestVersion},gB:function(){return r.useVersions}});var r=t(6730)},9306:function(e,n,t){"use strict";t.d(n,{pl:function(){return W},HX:function(){return g},L5:function(){return I},kM:function(){return M},WA:function(){return s},os:function(){return h},Mg:function(){return b},_f:function(){return l},bc:function(){return p},l5:function(){return v},nT:function(){return H},J:function(){return T},SL:function(){return V},c2:function(){return O},D9:function(){return S},LU:function(){return o},pe:function(){return w}});var r=t(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}var u="localStorage";function i(e){if(void 0===e&&(e=u),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(t){return n=t,a||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",n),a=!0),null}var n}var a=!1;var c={get:function(){return null},set:function(){},del:function(){}};var s=function(e,n){if("undefined"==typeof window)return function(e){function n(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:n,set:n,del:n}}(e);var t=i(null==n?void 0:n.persistence);return null===t?c:{get:function(){return t.getItem(e)},set:function(n){return t.setItem(e,n)},del:function(){return t.removeItem(e)}}};function l(e){void 0===e&&(e=u);var n=i(e);if(!n)return[];for(var t=[],r=0;rt.pluralForms.length&&console.error("For locale="+t.locale+", a maximum of "+t.pluralForms.length+" plural forms are expected ("+t.pluralForms+"), but the message contains "+r.length+" plural forms: "+e+" ");var o=t.select(n),u=t.pluralForms.indexOf(o);return r[Math.min(u,r.length-1)]}(t,n,e)}}}function S(e){var n=(0,P.useRef)();return(0,P.useEffect)((function(){n.current=e})),n.current}function V(e){var n=(0,f.TH)(),t=S(n),r=(0,P.useRef)(!0);(0,P.useEffect)((function(){r.current?r.current=!1:e({location:n,previousLocation:t})}),[n])}var x=function(e){return"docs-preferred-version-"+e},j={save:function(e,n,t){s(x(e),{persistence:n}).set(t)},read:function(e,n){return s(x(e),{persistence:n}).get()},clear:function(e,n){s(x(e),{persistence:n}).del()}};function C(e){var n=e.pluginIds,t=e.versionPersistence,r=e.allDocsData;var o={};return n.forEach((function(e){o[e]=function(e){var n=j.read(e,t);return r[e].versions.some((function(e){return e.name===n}))?{preferredVersionName:n}:(j.clear(e,t),{preferredVersionName:null})}(e)})),o}function k(){var e=(0,m._r)(),n=o().docs.versionPersistence,t=(0,P.useMemo)((function(){return Object.keys(e)}),[e]),r=(0,P.useState)((function(){return function(e){var n={};return e.forEach((function(e){n[e]={preferredVersionName:null}})),n}(t)})),u=r[0],i=r[1];return(0,P.useEffect)((function(){i(C({allDocsData:e,versionPersistence:n,pluginIds:t}))}),[e,n,t]),[u,(0,P.useMemo)((function(){return{savePreferredVersion:function(e,t){j.save(e,n,t),i((function(n){var r;return Object.assign({},n,((r={})[e]={preferredVersionName:t},r))}))}}}),[i])]}var L=(0,P.createContext)(null);function I(e){var n=e.children;return y?P.createElement(R,null,n):P.createElement(P.Fragment,null,n)}function R(e){var n=e.children,t=k();return P.createElement(L.Provider,{value:t},n)}function T(e){void 0===e&&(e="default");var n=(0,m.zh)(e),t=function(){var e=(0,P.useContext)(L);if(!e)throw new Error('Can\'t find docs preferred context, maybe you forgot to use the "DocsPreferredVersionContextProvider"?');return e}(),r=t[0],o=t[1],u=r[e].preferredVersionName;return{preferredVersion:u?n.versions.find((function(e){return e.name===u})):null,savePreferredVersionName:(0,P.useCallback)((function(n){o.savePreferredVersion(e,n)}),[o])}}var M={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagsPostPage:"blog-tags-post-page",docPage:"doc-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docPages:"docs-wrapper",mdxPages:"mdx-wrapper"}},U=s("docusaurus.announcement.dismiss"),Z=s("docusaurus.announcement.id"),B=function(){return"true"===U.get()},N=function(e){return U.set(String(e))},F=(0,P.createContext)(null),W=function(e){var n=e.children,t=function(){var e=o().announcementBar,n=(0,r.Z)().isClient,t=(0,P.useState)((function(){return!!n&&B()})),u=t[0],i=t[1];(0,P.useEffect)((function(){i(B())}),[]);var a=(0,P.useCallback)((function(){N(!0),i(!0)}),[]);return(0,P.useEffect)((function(){if(e){var n=e.id,t=Z.get();"annoucement-bar"===t&&(t="announcement-bar");var r=n!==t;Z.set(n),r&&N(!1),!r&&B()||i(!1)}}),[]),(0,P.useMemo)((function(){return{isClosed:u,close:a}}),[u])}();return P.createElement(F.Provider,{value:t},n)},H=function(){var e=(0,P.useContext)(F);if(!e)throw new Error("useAnnouncementBar(): AnnouncementBar not found in React context: make sure to use the AnnouncementBarProvider on top of the tree");return e}},8802:function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,n){var t=n.trailingSlash,r=n.baseUrl;if(e.startsWith("#"))return e;if(void 0===t)return e;var o,u=e.split(/[#?]/)[0],i="/"===u||u===r?u:(o=u,t?function(e){return e.endsWith("/")?e:e+"/"}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));return e.replace(u,i)}},8780:function(e,n,t){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.uniq=n.applyTrailingSlash=void 0;var o=t(8802);Object.defineProperty(n,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var u=t(9964);Object.defineProperty(n,"uniq",{enumerable:!0,get:function(){return r(u).default}})},9964:function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return Array.from(new Set(e))}},6010:function(e,n,t){"use strict";function r(e){var n,t,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(n=0;n{n.d(t,{xA:()=>d,yg:()=>v});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),g=r,v=p["".concat(l,".").concat(g)]||p[g]||u[g]||s;return n?a.createElement(v,i(i({ref:t},d),{},{components:n})):a.createElement(v,i({ref:t},d))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=g;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=n(8168),r=(n(6540),n(5680));const s={id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},i=void 0,o={unversionedId:"guides/guides.chatEvent",id:"version-v1.0-alpha.3/guides/guides.chatEvent",isDocsHomePage:!1,title:"Using ChatEvent",description:"Creating chatEvent",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/chatEvent.md",sourceDirName:"guides",slug:"/guides/chatEvent",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/chatEvent.md",version:"v1.0-alpha.3",frontMatter:{id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Using Message",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/message"},next:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts"}},l=[{value:"Creating chatEvent",id:"creating-chatevent",children:[]},{value:"Broadcasting chatEvent",id:"broadcasting-chatevent",children:[]}],c={toc:l},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.yg)(d,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"creating-chatevent"},"Creating chatEvent"),(0,r.yg)("p",null,"You may create chat events by a ",(0,r.yg)("inlineCode",{parentName:"p"},"ChatEventMaker")," model for ",(0,r.yg)("inlineCode",{parentName:"p"},"Message")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"Conversation")," models.\nfor example, creating a read event for a particular message."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$user->chatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,r.yg)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,r.yg)("p",null,"By default, everytime chat is event is created, a ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,r.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/555f0864.e40e51e0.js b/assets/js/555f0864.e40e51e0.js deleted file mode 100644 index 173965a..0000000 --- a/assets/js/555f0864.e40e51e0.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[339],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return v}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=l(n),v=r,m=p["".concat(c,".").concat(v)]||p[v]||u[v]||s;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var l=2;lchatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,s.kt)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,s.kt)("p",null,"By default, everytime chat is event is created, a ",(0,s.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,s.kt)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/55b06f29.22756e9f.js b/assets/js/55b06f29.22756e9f.js new file mode 100644 index 0000000..fb5b7ff --- /dev/null +++ b/assets/js/55b06f29.22756e9f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5076],{586:s=>{s.exports=JSON.parse('{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"docusaurus","name":"docusaurus","count":1,"permalink":"/laravel-chat-system/blog/tags/docusaurus"}')}}]); \ No newline at end of file diff --git a/assets/js/55b06f29.c80a5db3.js b/assets/js/55b06f29.c80a5db3.js deleted file mode 100644 index 4587f11..0000000 --- a/assets/js/55b06f29.c80a5db3.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7017],{7569:function(s){"use strict";s.exports=JSON.parse('{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"docusaurus","name":"docusaurus","count":1,"permalink":"/laravel-chat-system/blog/tags/docusaurus"}')}}]); \ No newline at end of file diff --git a/assets/js/55d12db4.6ba28023.js b/assets/js/55d12db4.6ba28023.js new file mode 100644 index 0000000..5007833 --- /dev/null +++ b/assets/js/55d12db4.6ba28023.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7832],{5680:(e,r,n)=>{n.d(r,{xA:()=>p,yg:()=>g});var t=n(6540);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var d=t.createContext({}),c=function(e){var r=t.useContext(d),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=c(e.components);return t.createElement(d.Provider,{value:r},e.children)},l="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},v=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,d=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),l=c(n),v=s,g=l["".concat(d,".").concat(v)]||l[v]||u[v]||i;return n?t.createElement(g,o(o({ref:r},p),{},{components:n})):t.createElement(g,o({ref:r},p))}));function g(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=v;var a={};for(var d in r)hasOwnProperty.call(r,d)&&(a[d]=r[d]);a.originalType=e,a[l]="string"==typeof e?e:s,o[1]=a;for(var c=2;c{n.r(r),n.d(r,{contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var t=n(8168),s=(n(6540),n(5680));const i={id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},o=void 0,a={unversionedId:"guides/providers",id:"guides/providers",isDocsHomePage:!1,title:"ChatSystem Providers",description:"Registering Providers",source:"@site/docs/guides/providers.md",sourceDirName:"guides",slug:"/guides/providers",permalink:"/laravel-chat-system/docs/next/guides/providers",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/providers.md",version:"current",frontMatter:{id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},sidebar:"docs",previous:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/next/guides/configure"},next:{title:"Using Models",permalink:"/laravel-chat-system/docs/next/guides/models"}},d=[{value:"Registering Providers",id:"registering-providers",children:[{value:"Registering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],c={toc:d},p="wrapper";function l(e){let{components:r,...n}=e;return(0,s.yg)(p,(0,t.A)({},c,n,{components:r,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"registering-providers"},"Registering Providers"),(0,s.yg)("h3",{id:"registering-observers"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,s.yg)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,s.yg)("h3",{id:"registering-policies"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,s.yg)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,s.yg)("h3",{id:"registering-broadcast-routes"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,s.yg)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,s.yg)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,s.yg)("h3",{id:"overriding-chatsystem-observer-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,s.yg)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Binkode\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Binkode\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Binkode\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,s.yg)("p",null,"Then you have to unregister the extended observer registered with ",(0,s.yg)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,s.yg)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,s.yg)("h3",{id:"overriding-chatsystem-policy-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,s.yg)("p",null,"You may want to overried some specific Policy methods such as ",(0,s.yg)("inlineCode",{parentName:"p"},"view"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"delete")," method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Binkode\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Binkode\\ChatSystem\\Contracts\\IConversation;\nuse Binkode\\ChatSystem\\Contracts\\IChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(IChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(IChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/55d12db4.ed048fca.js b/assets/js/55d12db4.ed048fca.js deleted file mode 100644 index e0c4855..0000000 --- a/assets/js/55d12db4.ed048fca.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[771],{3905:function(e,r,n){"use strict";n.d(r,{Zo:function(){return p},kt:function(){return v}});var t=n(7294);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=t.createContext({}),d=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=d(e.components);return t.createElement(c.Provider,{value:r},e.children)},l={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=d(n),v=s,m=u["".concat(c,".").concat(v)]||u[v]||l[v]||i;return n?t.createElement(m,o(o({ref:r},p),{},{components:n})):t.createElement(m,o({ref:r},p))}));function v(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=u;var a={};for(var c in r)hasOwnProperty.call(r,c)&&(a[c]=r[c]);a.originalType=e,a.mdxType="string"==typeof e?e:s,o[1]=a;for(var d=2;dRegistering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],p={toc:d};function l(e){var r=e.components,n=(0,s.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"registering-providers"},"Registering Providers"),(0,i.kt)("h3",{id:"registering-observers"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,i.kt)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,i.kt)("h3",{id:"registering-policies"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,i.kt)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,i.kt)("h3",{id:"registering-broadcast-routes"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,i.kt)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,i.kt)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,i.kt)("h3",{id:"overriding-chatsystem-observer-methods"},(0,i.kt)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,i.kt)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Myckhel\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Myckhel\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,i.kt)("p",null,"Then you have to unregister the extended observer registered with ",(0,i.kt)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,i.kt)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,i.kt)("h3",{id:"overriding-chatsystem-policy-methods"},(0,i.kt)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,i.kt)("p",null,"You may want to overried some specific Policy methods such as ",(0,i.kt)("inlineCode",{parentName:"p"},"view"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"delete")," method."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Myckhel\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\nuse Myckhel\\ChatSystem\\Contracts\\IChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(IChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(IChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e0b1e7e.37b9e181.js b/assets/js/5e0b1e7e.37b9e181.js deleted file mode 100644 index 48681cc..0000000 --- a/assets/js/5e0b1e7e.37b9e181.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5192],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(n),m=r,v=u["".concat(l,".").concat(m)]||u[m]||d[m]||s;return n?a.createElement(v,i(i({ref:t},p),{},{components:n})):a.createElement(v,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var c=2;c {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,s.kt)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,s.kt)("p",null,"From the frontend channel, you may listen to ",(0,s.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,s.kt)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,s.kt)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,s.kt)("inlineCode",{parentName:"p"},"event->type")," is ",(0,s.kt)("inlineCode",{parentName:"p"},"delete")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,s.kt)("inlineCode",{parentName:"p"},"true")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,s.kt)("inlineCode",{parentName:"p"},"message"),"."),(0,s.kt)("p",null,"Using Laravel Echo as example broadcast client"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e0b1e7e.b69bbf9a.js b/assets/js/5e0b1e7e.b69bbf9a.js new file mode 100644 index 0000000..9043551 --- /dev/null +++ b/assets/js/5e0b1e7e.b69bbf9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5633],{5680:(e,n,t)=>{t.d(n,{xA:()=>d,yg:()=>u});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},d=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),c=p(t),m=r,u=c["".concat(l,".").concat(m)]||c[m]||g[m]||s;return t?a.createElement(u,i(i({ref:n},d),{},{components:t})):a.createElement(u,i({ref:n},d))}));function u(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[c]="string"==typeof e?e:r,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=t(8168),r=(t(6540),t(5680));const s={id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},i=void 0,o={unversionedId:"guides/broadcasts",id:"version-v1.0-alpha.3/guides/broadcasts",isDocsHomePage:!1,title:"ChatSystem Broadcast Events",description:"Listening to Message\\Created event",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/broadcasts.md",sourceDirName:"guides",slug:"/guides/broadcasts",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/broadcasts.md",version:"v1.0-alpha.3",frontMatter:{id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent"},next:{title:"Message",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message"}},l=[{value:"Listening to MessageCreated event",id:"listening-to-messagecreated-event",children:[]},{value:"Listening to MessageEvents event",id:"listening-to-messageevents-event",children:[]}],p={toc:l},d="wrapper";function c(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"listening-to-messagecreated-event"},"Listening to Message\\Created event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"Message\\Created Event")," on broadcast channel:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-new.user.{$participantId}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")," to each conversation participants")),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-created.${conversation_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,r.yg)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,r.yg)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,r.yg)("inlineCode",{parentName:"p"},"event->type")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,r.yg)("inlineCode",{parentName:"p"},"true")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),"."),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6016.1a9b550a.js b/assets/js/6016.1a9b550a.js deleted file mode 100644 index 70abcdf..0000000 --- a/assets/js/6016.1a9b550a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6016],{8617:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(7294),a="iconExternalLink_3J9K",l=function(e){var t=e.width,n=void 0===t?13.5:t,l=e.height,o=void 0===l?13.5:l;return r.createElement("svg",{width:n,height:o,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},4478:function(e,t,n){"use strict";var r=n(2122),a=n(9756),l=n(7294);t.Z=function(e){var t=e.width,n=void 0===t?30:t,o=e.height,c=void 0===o?30:o,i=e.className,s=(0,a.Z)(e,["width","height","className"]);return l.createElement("svg",(0,r.Z)({className:i,width:n,height:c,viewBox:"0 0 30 30","aria-hidden":"true"},s),l.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}},6016:function(e,t,n){"use strict";n.d(t,{Z:function(){return pe}});var r=n(7294),a=n(6010),l=n(5977),o=n(4973),c=n(9306),i="skipToContent_1oUP";function s(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}var u=function(){var e=(0,r.useRef)(null),t=(0,l.k6)().action;return(0,c.SL)((function(n){var r=n.location;e.current&&!r.hash&&"POP"!==t&&s(e.current)})),r.createElement("div",{ref:e},r.createElement("a",{href:"#",className:i,onClick:function(e){e.preventDefault();var t=document.querySelector("main:first-of-type")||document.querySelector(".main-wrapper");t&&s(t)}},r.createElement(o.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))},m="announcementBar_3WsW",d="announcementBarClose_38nx",f="announcementBarContent_3EUC",v="announcementBarCloseable_3myR";var h=function(){var e,t=(0,c.nT)(),n=t.isClosed,l=t.close,i=(0,c.LU)().announcementBar;if(!i)return null;var s=i.content,u=i.backgroundColor,h=i.textColor,g=i.isCloseable;return!s||g&&n?null:r.createElement("div",{className:m,style:{backgroundColor:u,color:h},role:"banner"},r.createElement("div",{className:(0,a.Z)(f,(e={},e[v]=g,e)),dangerouslySetInnerHTML:{__html:s}}),g?r.createElement("button",{type:"button",className:(0,a.Z)(d,"clean-btn"),onClick:l,"aria-label":(0,o.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},r.createElement("span",{"aria-hidden":"true"},"\xd7")):null)},g=n(2122),b=function(){return null},E=n(2263),p={toggle:"toggle_71bT"},k=function(e){var t=e.icon,n=e.style;return r.createElement("span",{className:(0,a.Z)(p.toggle,p.dark),style:n},t)},Z=function(e){var t=e.icon,n=e.style;return r.createElement("span",{className:(0,a.Z)(p.toggle,p.light),style:n},t)},_=(0,r.memo)((function(e){var t=e.className,n=e.icons,l=e.checked,o=e.disabled,c=e.onChange,i=(0,r.useState)(l),s=i[0],u=i[1],m=(0,r.useState)(!1),d=m[0],f=m[1],v=(0,r.useRef)(null);return r.createElement("div",{className:(0,a.Z)("react-toggle",t,{"react-toggle--checked":s,"react-toggle--focus":d,"react-toggle--disabled":o})},r.createElement("div",{className:"react-toggle-track",role:"button",tabIndex:-1,onClick:function(){var e;return null==(e=v.current)?void 0:e.click()}},r.createElement("div",{className:"react-toggle-track-check"},n.checked),r.createElement("div",{className:"react-toggle-track-x"},n.unchecked),r.createElement("div",{className:"react-toggle-thumb"})),r.createElement("input",{ref:v,checked:s,type:"checkbox",className:"react-toggle-screenreader-only","aria-label":"Switch between dark and light mode",onChange:c,onClick:function(){return u(!s)},onFocus:function(){return f(!0)},onBlur:function(){return f(!1)}}))}));function N(e){var t=(0,c.LU)().colorMode.switchConfig,n=t.darkIcon,a=t.darkIconStyle,l=t.lightIcon,o=t.lightIconStyle,i=(0,E.Z)().isClient;return r.createElement(_,(0,g.Z)({disabled:!i,icons:{checked:r.createElement(k,{icon:n,style:a}),unchecked:r.createElement(Z,{icon:l,style:o})}},e))}var w=n(5350),y=n(7898),C=function(e){var t=(0,l.TH)(),n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useRef)(!1),s=(0,r.useState)(0),u=s[0],m=s[1],d=(0,r.useCallback)((function(e){null!==e&&m(e.getBoundingClientRect().height)}),[]);return(0,y.Z)((function(t,n){var r=t.scrollY,a=n.scrollY;if(e)if(r=a?o(!1):r+c0&&r.createElement("div",{className:"row footer__links"},o.map((function(e,t){return r.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.createElement("div",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.createElement("li",{key:e.href||e.to,className:"footer__item"},r.createElement(K,e))}))):null)}))),(s||n)&&r.createElement("div",{className:"footer__bottom text--center"},s&&(s.src||s.srcDark)&&r.createElement("div",{className:"margin-bottom--sm"},s.href?r.createElement(O.Z,{href:s.href,className:F},r.createElement(Q,{alt:s.alt,sources:u})):r.createElement(Q,{alt:s.alt,sources:u})),n?r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:n}}):null))):null},X=n(412),$=(0,c.WA)("theme"),ee="light",te="dark",ne=function(e){return e===te?te:ee},re=function(e){(0,c.WA)("theme").set(ne(e))},ae=function(){var e=(0,c.LU)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,l=(0,r.useState)(function(e){return X.Z.canUseDOM?ne(document.documentElement.getAttribute("data-theme")):ne(e)}(t)),o=l[0],i=l[1],s=(0,r.useCallback)((function(){i(ee),re(ee)}),[]),u=(0,r.useCallback)((function(){i(te),re(te)}),[]);return(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",ne(o))}),[o]),(0,r.useEffect)((function(){if(!n)try{var e=$.get();null!==e&&i(ne(e))}catch(t){console.error(t)}}),[i]),(0,r.useEffect)((function(){n&&!a||window.matchMedia("(prefers-color-scheme: dark)").addListener((function(e){var t=e.matches;i(t?te:ee)}))}),[]),{isDarkTheme:o===te,setLightTheme:s,setDarkTheme:u}},le=n(2924);var oe=function(e){var t=ae(),n=t.isDarkTheme,a=t.setLightTheme,l=t.setDarkTheme;return r.createElement(le.Z.Provider,{value:{isDarkTheme:n,setLightTheme:a,setDarkTheme:l}},e.children)},ce="docusaurus.tab.",ie=function(){var e=(0,r.useState)({}),t=e[0],n=e[1],a=(0,r.useCallback)((function(e,t){(0,c.WA)("docusaurus.tab."+e).set(t)}),[]);return(0,r.useEffect)((function(){try{var e={};(0,c._f)().forEach((function(t){if(t.startsWith(ce)){var n=t.substring(ce.length);e[n]=(0,c.WA)(t).get()}})),n(e)}catch(t){console.error(t)}}),[]),{tabGroupChoices:t,setTabGroupChoices:function(e,t){n((function(n){var r;return Object.assign({},n,((r={})[e]=t,r))})),a(e,t)}}},se=(0,r.createContext)(void 0);var ue=function(e){var t=ie(),n=t.tabGroupChoices,a=t.setTabGroupChoices;return r.createElement(se.Provider,{value:{tabGroupChoices:n,setTabGroupChoices:a}},e.children)};function me(e){var t=e.children;return r.createElement(oe,null,r.createElement(c.pl,null,r.createElement(ue,null,r.createElement(c.L5,null,t))))}var de=n(9105);function fe(e){var t=e.locale,n=e.version,a=e.tag;return r.createElement(de.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}))}var ve=n(1217);function he(){var e=(0,E.Z)().i18n,t=e.defaultLocale,n=e.locales,a=(0,c.l5)();return r.createElement(de.Z,null,n.map((function(e){return r.createElement("link",{key:e,rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:e})})),r.createElement("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function ge(e){var t=e.permalink,n=(0,E.Z)().siteConfig.url,a=function(){var e=(0,E.Z)().siteConfig.url,t=(0,l.TH)().pathname;return e+(0,G.Z)(t)}(),o=t?""+n+t:a;return r.createElement(de.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function be(e){var t=(0,E.Z)(),n=t.siteConfig,a=n.favicon,l=n.themeConfig,o=l.metadatas,i=l.image,s=t.i18n,u=s.currentLocale,m=s.localeConfigs,d=e.title,f=e.description,v=e.image,h=e.keywords,b=e.searchMetadatas,p=(0,G.Z)(a),k=(0,c.pe)(d),Z=u,_=m[u].direction;return r.createElement(r.Fragment,null,r.createElement(de.Z,null,r.createElement("html",{lang:Z,dir:_}),a&&r.createElement("link",{rel:"shortcut icon",href:p}),r.createElement("title",null,k),r.createElement("meta",{property:"og:title",content:k}),v||i&&r.createElement("meta",{name:"twitter:card",content:"summary_large_image"})),r.createElement(ve.Z,{description:f,keywords:h,image:v}),r.createElement(ge,null),r.createElement(he,null),r.createElement(fe,(0,g.Z)({tag:c.HX,locale:u},b)),r.createElement(de.Z,null,o.map((function(e,t){return r.createElement("meta",(0,g.Z)({key:"metadata_"+t},e))}))))}var Ee=function(){(0,r.useEffect)((function(){var e="navigation-with-keyboard";function t(t){"keydown"===t.type&&"Tab"===t.key&&document.body.classList.add(e),"mousedown"===t.type&&document.body.classList.remove(e)}return document.addEventListener("keydown",t),document.addEventListener("mousedown",t),function(){document.body.classList.remove(e),document.removeEventListener("keydown",t),document.removeEventListener("mousedown",t)}}),[])};var pe=function(e){var t=e.children,n=e.noFooter,l=e.wrapperClassName,o=e.pageClassName;return Ee(),r.createElement(me,null,r.createElement(be,e),r.createElement(u,null),r.createElement(h,null),r.createElement(z,null),r.createElement("div",{className:(0,a.Z)(c.kM.wrapper.main,l,o)},t),!n&&r.createElement(Y,null))}},5537:function(e,t,n){"use strict";var r=n(2122),a=n(9756),l=n(7294),o=n(6742),c=n(8465),i=n(4996),s=n(2263);t.Z=function(e){var t=(0,s.Z)(),n=t.siteConfig,u=n.title,m=n.themeConfig.navbar,d=m.title,f=m.logo,v=void 0===f?{src:""}:f,h=t.isClient,g=e.imageClassName,b=e.titleClassName,E=(0,a.Z)(e,["imageClassName","titleClassName"]),p=(0,i.Z)(v.href||"/"),k={light:(0,i.Z)(v.src),dark:(0,i.Z)(v.srcDark||v.src)};return l.createElement(o.Z,(0,r.Z)({to:p},E,v.target&&{target:v.target}),v.src&&l.createElement(c.Z,{key:h,className:g,sources:k,alt:v.alt||d||u}),null!=d&&l.createElement("b",{className:b},d))}},5525:function(e,t,n){"use strict";var r=n(2122),a=n(9756),l=n(7294),o=n(6010),c=n(6742),i=n(4996),s=n(5977),u=n(9306),m=n(8617),d=n(3919),f="dropdown__link--active";function v(e){var t=e.activeBasePath,n=e.activeBaseRegex,o=e.to,s=e.href,u=e.label,v=e.activeClassName,h=void 0===v?"navbar__link--active":v,g=e.prependBaseUrlToHref,b=(0,a.Z)(e,["activeBasePath","activeBaseRegex","to","href","label","activeClassName","prependBaseUrlToHref"]),E=(0,i.Z)(o),p=(0,i.Z)(t),k=(0,i.Z)(s,{forcePrependBaseUrl:!0}),Z=u&&s&&!(0,d.Z)(s),_=h===f;return l.createElement(c.Z,(0,r.Z)({},s?{href:g?k:s}:Object.assign({isNavLink:!0,activeClassName:h,to:E},t||n?{isActive:function(e,t){return n?new RegExp(n).test(t.pathname):t.pathname.startsWith(p)}}:null),b),Z?l.createElement("span",null,u,l.createElement(m.Z,_&&{width:12,height:12})):u)}function h(e){var t,n=e.items,c=e.position,i=e.className,s=(0,a.Z)(e,["items","position","className"]),u=(0,l.useRef)(null),m=(0,l.useRef)(null),d=(0,l.useState)(!1),h=d[0],g=d[1];(0,l.useEffect)((function(){var e=function(e){u.current&&!u.current.contains(e.target)&&g(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[u]);var b=function(e,t){return void 0===t&&(t=!1),(0,o.Z)({"navbar__item navbar__link":!t,dropdown__link:t},e)};return n?l.createElement("div",{ref:u,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--left":"left"===c,"dropdown--right":"right"===c,"dropdown--show":h})},l.createElement(v,(0,r.Z)({className:b(i)},s,{onClick:s.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),g(!h))}}),null!=(t=s.children)?t:s.label),l.createElement("ul",{ref:m,className:"dropdown__menu"},n.map((function(e,t){var o=e.className,c=(0,a.Z)(e,["className"]);return l.createElement("li",{key:t},l.createElement(v,(0,r.Z)({onKeyDown:function(e){if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),g(!1);var r=u.current.nextElementSibling;r&&r.focus()}},activeClassName:f,className:b(o,!0)},c)))})))):l.createElement(v,(0,r.Z)({className:b(i)},s))}function g(e){var t,n,c,i=e.items,m=e.className,d=(e.position,(0,a.Z)(e,["items","className","position"])),f=(0,l.useRef)(null),h=(0,s.TH)().pathname,g=(0,l.useState)((function(){var e;return null==(e=!(null!=i&&i.some((function(e){return(0,u.Mg)(e.to,h)}))))||e})),b=g[0],E=g[1],p=function(e,t){return void 0===t&&(t=!1),(0,o.Z)("menu__link",{"menu__link--sublist":t},e)};if(!i)return l.createElement("li",{className:"menu__list-item"},l.createElement(v,(0,r.Z)({className:p(m)},d)));var k=null!=(t=f.current)&&t.scrollHeight?(null==(n=f.current)?void 0:n.scrollHeight)+"px":void 0;return l.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":b})},l.createElement(v,(0,r.Z)({role:"button",className:p(m,!0)},d,{onClick:function(e){e.preventDefault(),E((function(e){return!e}))}}),null!=(c=d.children)?c:d.label),l.createElement("ul",{className:"menu__list",ref:f,style:{height:b?void 0:k}},i.map((function(e,t){var n=e.className,o=(0,a.Z)(e,["className"]);return l.createElement("li",{className:"menu__list-item",key:t},l.createElement(v,(0,r.Z)({activeClassName:"menu__link--active",className:p(n)},o,{onClick:d.onClick})))}))))}t.Z=function(e){var t=e.mobile,n=void 0!==t&&t,r=(0,a.Z)(e,["mobile"]),o=n?g:h;return l.createElement(o,r)}},6400:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(2122),a=n(9756),l=n(7294),o=n(5525),c=n(907),i=n(6010),s=n(9306),u=n(8780);function m(e){var t,n=e.docId,m=e.activeSidebarClassName,d=e.label,f=e.docsPluginId,v=(0,a.Z)(e,["docId","activeSidebarClassName","label","docsPluginId"]),h=(0,c.Iw)(f),g=h.activeVersion,b=h.activeDoc,E=(0,s.J)(f).preferredVersion,p=(0,c.yW)(f),k=function(e,t){var n,r=(n=[]).concat.apply(n,e.map((function(e){return e.docs}))),a=r.find((function(e){return e.id===t}));if(!a){var l=r.map((function(e){return e.id})).join("\n- ");throw new Error("DocNavbarItem: couldn't find any doc with id \""+t+'" in version'+(e.length?"s":"")+" "+e.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+l)}return a}((0,u.uniq)([g,E,p].filter(Boolean)),n);return l.createElement(o.Z,(0,r.Z)({exact:!0},v,{className:(0,i.Z)(v.className,(t={},t[m]=b&&b.sidebar===k.sidebar,t)),label:null!=d?d:k.id,to:k.path}))}},9308:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(2122),a=n(9756),l=n(7294),o=n(5525),c=n(907),i=n(9306),s=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};function u(e){var t,n,u=e.mobile,m=e.docsPluginId,d=e.dropdownActiveClassDisabled,f=e.dropdownItemsBefore,v=e.dropdownItemsAfter,h=(0,a.Z)(e,["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"]),g=(0,c.Iw)(m),b=(0,c.gB)(m),E=(0,c.yW)(m),p=(0,i.J)(m),k=p.preferredVersion,Z=p.savePreferredVersionName;var _=function(){var e=b.map((function(e){var t=(null==g?void 0:g.alternateDocVersions[e.name])||s(e);return{isNavLink:!0,label:e.label,to:t.path,isActive:function(){return e===(null==g?void 0:g.activeVersion)},onClick:function(){Z(e.name)}}})),t=[].concat(f,e,v);if(!(t.length<=1))return t}(),N=null!=(t=null!=(n=g.activeVersion)?n:k)?t:E,w=u&&_?"Versions":N.label,y=u&&_?void 0:s(N).path;return l.createElement(o.Z,(0,r.Z)({},h,{mobile:u,label:w,to:y,items:_,isActive:d?function(){return!1}:void 0}))}},7250:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2122),a=n(9756),l=n(7294),o=n(5525),c=n(907),i=n(9306);function s(e){var t,n=e.label,s=e.to,u=e.docsPluginId,m=(0,a.Z)(e,["label","to","docsPluginId"]),d=(0,c.zu)(u),f=(0,i.J)(u).preferredVersion,v=(0,c.yW)(u),h=null!=(t=null!=d?d:f)?t:v,g=null!=n?n:h.label,b=null!=s?s:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(h).path;return l.createElement(o.Z,(0,r.Z)({},m,{label:g,to:b}))}},2924:function(e,t,n){"use strict";var r=n(7294).createContext(void 0);t.Z=r},8465:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(2122),a=n(9756),l=n(7294),o=n(6010),c=n(2263),i=n(5350),s={themedImage:"themedImage_1VuW","themedImage--dark":"themedImage--dark_hz6m","themedImage--light":"themedImage--light_3UqQ"},u=function(e){var t=(0,c.Z)().isClient,n=(0,i.Z)().isDarkTheme,u=e.sources,m=e.className,d=e.alt,f=void 0===d?"":d,v=(0,a.Z)(e,["sources","className","alt"]),h=t?n?["dark"]:["light"]:["light","dark"];return l.createElement(l.Fragment,null,h.map((function(e){return l.createElement("img",(0,r.Z)({key:e,src:u[e],alt:f,className:(0,o.Z)(s.themedImage,s["themedImage--"+e],m)},v))})))}},1839:function(e,t,n){"use strict";var r=n(7294);t.Z=function(e){void 0===e&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e])}},7898:function(e,t,n){"use strict";var r=n(7294),a=n(412),l=function(){return{scrollX:a.Z.canUseDOM?window.pageXOffset:0,scrollY:a.Z.canUseDOM?window.pageYOffset:0}};t.Z=function(e,t){void 0===t&&(t=[]);var n=(0,r.useRef)(l()),a=function(){var t=l();e&&e(t,n.current),n.current=t};(0,r.useEffect)((function(){var e={passive:!0};return a(),window.addEventListener("scroll",a,e),function(){return window.removeEventListener("scroll",a,e)}}),t)}},5350:function(e,t,n){"use strict";var r=n(7294),a=n(2924);t.Z=function(){var e=(0,r.useContext)(a.Z);if(null==e)throw new Error('"useThemeContext" is used outside of "Layout" component. Please see https://docusaurus.io/docs/api/themes/configuration#usethemecontext.');return e}},3783:function(e,t,n){"use strict";n.d(t,{D:function(){return l}});var r=n(7294),a=n(412),l={desktop:"desktop",mobile:"mobile"};t.Z=function(){var e=a.Z.canUseDOM;function t(){if(e)return window.innerWidth>996?l.desktop:l.mobile}var n=(0,r.useState)(t),o=n[0],c=n[1];return(0,r.useEffect)((function(){if(e)return window.addEventListener("resize",n),function(){return window.removeEventListener("resize",n)};function n(){c(t())}}),[]),o}}}]); \ No newline at end of file diff --git a/assets/js/6565d99e.15f1cddc.js b/assets/js/6565d99e.15f1cddc.js new file mode 100644 index 0000000..dee4139 --- /dev/null +++ b/assets/js/6565d99e.15f1cddc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4124],{5680:(e,r,n)=>{n.d(r,{xA:()=>p,yg:()=>g});var t=n(6540);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=t.createContext({}),d=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=d(e.components);return t.createElement(c.Provider,{value:r},e.children)},l="mdxType",v={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),l=d(n),u=s,g=l["".concat(c,".").concat(u)]||l[u]||v[u]||i;return n?t.createElement(g,o(o({ref:r},p),{},{components:n})):t.createElement(g,o({ref:r},p))}));function g(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=u;var a={};for(var c in r)hasOwnProperty.call(r,c)&&(a[c]=r[c]);a.originalType=e,a[l]="string"==typeof e?e:s,o[1]=a;for(var d=2;d{n.r(r),n.d(r,{contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=n(8168),s=(n(6540),n(5680));const i={id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},o=void 0,a={unversionedId:"guides/providers",id:"version-v1.0-alpha.3/guides/providers",isDocsHomePage:!1,title:"ChatSystem Providers",description:"Registering Providers",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/providers.md",sourceDirName:"guides",slug:"/guides/providers",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/providers.md",version:"v1.0-alpha.3",frontMatter:{id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure"},next:{title:"Using Models",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/models"}},c=[{value:"Registering Providers",id:"registering-providers",children:[{value:"Registering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],d={toc:c},p="wrapper";function l(e){let{components:r,...n}=e;return(0,s.yg)(p,(0,t.A)({},d,n,{components:r,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"registering-providers"},"Registering Providers"),(0,s.yg)("h3",{id:"registering-observers"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,s.yg)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,s.yg)("h3",{id:"registering-policies"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,s.yg)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,s.yg)("h3",{id:"registering-broadcast-routes"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,s.yg)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,s.yg)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,s.yg)("h3",{id:"overriding-chatsystem-observer-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,s.yg)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Myckhel\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Myckhel\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,s.yg)("p",null,"Then you have to unregister the extended observer registered with ",(0,s.yg)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,s.yg)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,s.yg)("h3",{id:"overriding-chatsystem-policy-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,s.yg)("p",null,"You may want to overried some specific Policy methods such as ",(0,s.yg)("inlineCode",{parentName:"p"},"view"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"delete")," method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Myckhel\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\nuse Myckhel\\ChatSystem\\Contracts\\ChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(ChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(ChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6565d99e.ffdb35df.js b/assets/js/6565d99e.ffdb35df.js deleted file mode 100644 index 2655117..0000000 --- a/assets/js/6565d99e.ffdb35df.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7290],{3905:function(e,r,n){"use strict";n.d(r,{Zo:function(){return p},kt:function(){return v}});var t=n(7294);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=t.createContext({}),d=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=d(e.components);return t.createElement(c.Provider,{value:r},e.children)},l={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=d(n),v=s,m=u["".concat(c,".").concat(v)]||u[v]||l[v]||i;return n?t.createElement(m,o(o({ref:r},p),{},{components:n})):t.createElement(m,o({ref:r},p))}));function v(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=u;var a={};for(var c in r)hasOwnProperty.call(r,c)&&(a[c]=r[c]);a.originalType=e,a.mdxType="string"==typeof e?e:s,o[1]=a;for(var d=2;dRegistering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],p={toc:d};function l(e){var r=e.components,n=(0,s.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"registering-providers"},"Registering Providers"),(0,i.kt)("h3",{id:"registering-observers"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,i.kt)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,i.kt)("h3",{id:"registering-policies"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,i.kt)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,i.kt)("h3",{id:"registering-broadcast-routes"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,i.kt)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,i.kt)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,i.kt)("h3",{id:"overriding-chatsystem-observer-methods"},(0,i.kt)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,i.kt)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Myckhel\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Myckhel\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,i.kt)("p",null,"Then you have to unregister the extended observer registered with ",(0,i.kt)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,i.kt)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,i.kt)("h3",{id:"overriding-chatsystem-policy-methods"},(0,i.kt)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,i.kt)("p",null,"You may want to overried some specific Policy methods such as ",(0,i.kt)("inlineCode",{parentName:"p"},"view"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"delete")," method."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Myckhel\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\nuse Myckhel\\ChatSystem\\Contracts\\ChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(ChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(ChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6875c492.28810b2e.js b/assets/js/6875c492.28810b2e.js deleted file mode 100644 index 98e0648..0000000 --- a/assets/js/6875c492.28810b2e.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8610],{3146:function(e,t,a){"use strict";a.d(t,{Z:function(){return p}});var r=a(7294),l=a(6010),n=a(3905),s=a(4973),i=a(6742),m=a(9306),c=a(7277),o=a(1217),u=a(6146),d="blogPostTitle_GeHD",g="blogPostData_291c",h="blogPostDetailsFull_3kfx";var p=function(e){var t,a,p,E=(a=(0,m.c2)().selectMessage,function(e){var t=Math.ceil(e);return a(t,(0,s.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:t}))}),b=e.children,v=e.frontMatter,f=e.metadata,N=e.truncated,_=e.isBlogPostPage,k=void 0!==_&&_,Z=f.date,T=f.formattedDate,w=f.permalink,P=f.tags,M=f.readingTime,I=f.title,L=f.editUrl,x=v.author,y=v.image,U=v.keywords,A=v.author_url||v.authorURL,C=v.author_title||v.authorTitle,R=v.author_image_url||v.authorImageURL;return r.createElement(r.Fragment,null,r.createElement(o.Z,{keywords:U,image:y}),r.createElement("article",{className:k?void 0:"margin-bottom--xl"},(p=k?"h1":"h2",r.createElement("header",null,r.createElement(p,{className:d},k?I:r.createElement(i.Z,{to:w},I)),r.createElement("div",{className:(0,l.Z)(g,"margin-vert--md")},r.createElement("time",{dateTime:Z},T),M&&r.createElement(r.Fragment,null," \xb7 ",E(M))),r.createElement("div",{className:"avatar margin-vert--md"},R&&r.createElement(i.Z,{className:"avatar__photo-link avatar__photo",href:A},r.createElement("img",{src:R,alt:x})),r.createElement("div",{className:"avatar__intro"},x&&r.createElement(r.Fragment,null,r.createElement("div",{className:"avatar__name"},r.createElement(i.Z,{href:A},x)),r.createElement("small",{className:"avatar__subtitle"},C)))))),r.createElement("div",{className:"markdown"},r.createElement(n.Zo,{components:c.Z},b)),(P.length>0||N)&&r.createElement("footer",{className:(0,l.Z)("row docusaurus-mt-lg",(t={},t[h]=k,t))},P.length>0&&r.createElement("div",{className:"col"},r.createElement("b",null,r.createElement(s.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),P.map((function(e){var t=e.label,a=e.permalink;return r.createElement(i.Z,{key:a,className:"margin-horiz--sm",to:a},t)}))),k&&L&&r.createElement("div",{className:"col margin-top--sm"},r.createElement(u.Z,{editUrl:L})),!k&&N&&r.createElement("div",{className:"col text--right"},r.createElement(i.Z,{to:f.permalink,"aria-label":"Read more about "+I},r.createElement("b",null,r.createElement(s.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More")))))))}},5601:function(e,t,a){"use strict";a.d(t,{Z:function(){return g}});var r=a(7294),l=a(6010),n=a(6742),s="sidebar_2ahu",i="sidebarItemTitle_2hhb",m="sidebarItemList_2xAf",c="sidebarItem_2UVv",o="sidebarItemLink_1RT6",u="sidebarItemLinkActive_12pM",d=a(4973);function g(e){var t=e.sidebar;return 0===t.items.length?null:r.createElement("nav",{className:(0,l.Z)(s,"thin-scrollbar"),"aria-label":(0,d.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},r.createElement("div",{className:(0,l.Z)(i,"margin-bottom--md")},t.title),r.createElement("ul",{className:m},t.items.map((function(e){return r.createElement("li",{key:e.permalink,className:c},r.createElement(n.Z,{isNavLink:!0,to:e.permalink,className:o,activeClassName:u},e.title))}))))}},9404:function(e,t,a){"use strict";a.r(t);var r=a(7294),l=a(6016),n=a(3146),s=a(6742),i=a(5601),m=a(4973),c=a(9306);t.default=function(e){var t,a=e.metadata,o=e.items,u=e.sidebar,d=a.allTagsPath,g=a.name,h=a.count,p=(t=(0,c.c2)().selectMessage,function(e){return t(e,(0,m.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:e}))}),E=(0,m.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:p(h),tagName:g});return r.createElement(l.Z,{title:E,wrapperClassName:c.kM.wrapper.blogPages,pageClassName:c.kM.page.blogTagsPostPage,searchMetadatas:{tag:"blog_tags_posts"}},r.createElement("div",{className:"container margin-vert--lg"},r.createElement("div",{className:"row"},r.createElement("aside",{className:"col col--3"},r.createElement(i.Z,{sidebar:u})),r.createElement("main",{className:"col col--7"},r.createElement("header",{className:"margin-bottom--xl"},r.createElement("h1",null,E),r.createElement(s.Z,{href:d},r.createElement(m.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page"},"View All Tags"))),o.map((function(e){var t=e.content;return r.createElement(n.Z,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:!0},r.createElement(t,null))}))))))}},6146:function(e,t,a){"use strict";a.d(t,{Z:function(){return o}});var r=a(7294),l=a(4973),n=a(2122),s=a(9756),i=a(6010),m="iconEdit_2_ui",c=function(e){var t=e.className,a=(0,s.Z)(e,["className"]);return r.createElement("svg",(0,n.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,i.Z)(m,t),"aria-hidden":"true"},a),r.createElement("g",null,r.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function o(e){var t=e.editUrl;return r.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},r.createElement(c,null),r.createElement(l.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}}}]); \ No newline at end of file diff --git a/assets/js/6875c492.c7b5166a.js b/assets/js/6875c492.c7b5166a.js new file mode 100644 index 0000000..046508f --- /dev/null +++ b/assets/js/6875c492.c7b5166a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4813],{9178:(e,t,a)=>{a.d(t,{A:()=>p});var l=a(6540),r=a(53),s=a(5680),n=a(4798),m=a(4676),i=a(3155),c=a(8607),o=a(8139),d=a(6458);const g="blogPostTitle_d4p0",u="blogPostData_-Im+",h="blogPostDetailsFull_xD8n";const p=function(e){const t=function(){const{selectMessage:e}=(0,i.Ww)();return t=>{const a=Math.ceil(t);return e(a,(0,n.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}(),{children:a,frontMatter:p,metadata:b,truncated:E,isBlogPostPage:v=!1}=e,{date:A,formattedDate:N,permalink:_,tags:k,readingTime:f,title:T,editUrl:w}=b,{author:I,image:L,keywords:P}=p,y=p.author_url||p.authorURL,x=p.author_title||p.authorTitle,M=p.author_image_url||p.authorImageURL;return l.createElement(l.Fragment,null,l.createElement(o.A,{keywords:P,image:L}),l.createElement("article",{className:v?void 0:"margin-bottom--xl"},(()=>{const e=v?"h1":"h2";return l.createElement("header",null,l.createElement(e,{className:g},v?T:l.createElement(m.A,{to:_},T)),l.createElement("div",{className:(0,r.A)(u,"margin-vert--md")},l.createElement("time",{dateTime:A},N),f&&l.createElement(l.Fragment,null," \xb7 ",t(f))),l.createElement("div",{className:"avatar margin-vert--md"},M&&l.createElement(m.A,{className:"avatar__photo-link avatar__photo",href:y},l.createElement("img",{src:M,alt:I})),l.createElement("div",{className:"avatar__intro"},I&&l.createElement(l.Fragment,null,l.createElement("div",{className:"avatar__name"},l.createElement(m.A,{href:y},I)),l.createElement("small",{className:"avatar__subtitle"},x)))))})(),l.createElement("div",{className:"markdown"},l.createElement(s.xA,{components:c.A},a)),(k.length>0||E)&&l.createElement("footer",{className:(0,r.A)("row docusaurus-mt-lg",{[h]:v})},k.length>0&&l.createElement("div",{className:"col"},l.createElement("b",null,l.createElement(n.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),k.map((e=>{let{label:t,permalink:a}=e;return l.createElement(m.A,{key:a,className:"margin-horiz--sm",to:a},t)}))),v&&w&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(d.A,{editUrl:w})),!v&&E&&l.createElement("div",{className:"col text--right"},l.createElement(m.A,{to:b.permalink,"aria-label":`Read more about ${T}`},l.createElement("b",null,l.createElement(n.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More")))))))}},9937:(e,t,a)=>{a.d(t,{A:()=>i});var l=a(6540),r=a(53),s=a(4676);const n={sidebar:"sidebar_q+wC",sidebarItemTitle:"sidebarItemTitle_9G5K",sidebarItemList:"sidebarItemList_6T4b",sidebarItem:"sidebarItem_cjdF",sidebarItemLink:"sidebarItemLink_zyXk",sidebarItemLinkActive:"sidebarItemLinkActive_wcJs"};var m=a(4798);function i(e){let{sidebar:t}=e;return 0===t.items.length?null:l.createElement("nav",{className:(0,r.A)(n.sidebar,"thin-scrollbar"),"aria-label":(0,m.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,r.A)(n.sidebarItemTitle,"margin-bottom--md")},t.title),l.createElement("ul",{className:n.sidebarItemList},t.items.map((e=>l.createElement("li",{key:e.permalink,className:n.sidebarItem},l.createElement(s.A,{isNavLink:!0,to:e.permalink,className:n.sidebarItemLink,activeClassName:n.sidebarItemLinkActive},e.title))))))}},6033:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var l=a(6540),r=a(5241),s=a(9178),n=a(4676),m=a(9937),i=a(4798),c=a(3155);const o=function(e){const{metadata:t,items:a,sidebar:o}=e,{allTagsPath:d,name:g,count:u}=t,h=function(){const{selectMessage:e}=(0,c.Ww)();return t=>e(t,(0,i.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}(),p=(0,i.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:h(u),tagName:g});return l.createElement(r.A,{title:p,wrapperClassName:c.GN.wrapper.blogPages,pageClassName:c.GN.page.blogTagsPostPage,searchMetadatas:{tag:"blog_tags_posts"}},l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement("aside",{className:"col col--3"},l.createElement(m.A,{sidebar:o})),l.createElement("main",{className:"col col--7"},l.createElement("header",{className:"margin-bottom--xl"},l.createElement("h1",null,p),l.createElement(n.A,{href:d},l.createElement(i.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page"},"View All Tags"))),a.map((e=>{let{content:t}=e;return l.createElement(s.A,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:!0},l.createElement(t,null))}))))))}},6458:(e,t,a)=>{a.d(t,{A:()=>c});var l=a(6540),r=a(4798),s=a(8168),n=a(53);const m="iconEdit_mS5F",i=e=>{let{className:t,...a}=e;return l.createElement("svg",(0,s.A)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,n.A)(m,t),"aria-hidden":"true"},a),l.createElement("g",null,l.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function c(e){let{editUrl:t}=e;return l.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},l.createElement(i,null),l.createElement(r.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}}}]); \ No newline at end of file diff --git a/assets/js/6896.dd87a0f5.js b/assets/js/6896.dd87a0f5.js new file mode 100644 index 0000000..2c00db3 --- /dev/null +++ b/assets/js/6896.dd87a0f5.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6896],{5680:(e,t,n)=>{"use strict";n.d(t,{xA:()=>p,yg:()=>h});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),i=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=i(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=i(n),d=o,h=u["".concat(s,".").concat(d)]||u[d]||y[d]||l;return n?r.createElement(h,a(a({ref:t},p),{},{components:n})):r.createElement(h,a({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,a=new Array(l);a[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var i=2;i{"use strict";n.d(t,{e:()=>p,A:()=>u});var r=n(8168),o=n(6540),l=n(53),a=n(4798),c=n(3155);const s="enhancedAnchor_WiXH",i="h1Heading_dC7a",p=function(e){let{...t}=e;return o.createElement("header",null,o.createElement("h1",(0,r.A)({},t,{id:void 0,className:i}),t.children))},u=e=>{return"h1"===e?p:(t=e,function(e){let{id:n,...r}=e;const{navbar:{hideOnScroll:i}}=(0,c.pN)();return n?o.createElement(t,r,o.createElement("a",{"aria-hidden":"true",tabIndex:-1,className:(0,l.A)("anchor",{[s]:!i}),id:n}),r.children,o.createElement("a",{className:"hash-link",href:`#${n}`,title:(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"#")):o.createElement(t,r)});var t}},8607:(e,t,n)=>{"use strict";n.d(t,{A:()=>L});var r=n(6540),o=n(4676),l=n(8168),a=n(53);const c={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var s={Prism:n(1258).A,theme:c};function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(){return p=Object.assign||function(e){for(var t=1;t0&&e[n-1]===t?e:e.concat(t)};function h(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}var m=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),i(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,r=Object.create(null),o=e.styles.reduce((function(e,n){var r=n.languages,o=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=p({},e[t],o);e[t]=n})),e}),r);return o.root=n,o.plain=p({},n,{backgroundColor:null}),o}(e.theme,e.language):void 0;return t.themeDict=n})),i(this,"getLineProps",(function(e){var n=e.key,r=e.className,o=e.style,l=p({},h(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),a=t.getThemeDict(t.props);return void 0!==a&&(l.style=a.plain),void 0!==o&&(l.style=void 0!==l.style?p({},l.style,o):o),void 0!==n&&(l.key=n),r&&(l.className+=" "+r),l})),i(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,o=n.length,l=t.getThemeDict(t.props);if(void 0!==l){if(1===o&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===o&&!r)return l[n[0]];var a=r?{display:"inline-block"}:{},c=n.map((function(e){return l[e]}));return Object.assign.apply(Object,[a].concat(c))}})),i(this,"getTokenProps",(function(e){var n=e.key,r=e.className,o=e.style,l=e.token,a=p({},h(e,["key","className","style","token"]),{className:"token "+l.types.join(" "),children:l.content,style:t.getStyleForToken(l),key:void 0});return void 0!==o&&(a.style=void 0!==a.style?p({},a.style,o):o),void 0!==n&&(a.key=n),r&&(a.className+=" "+r),a})),i(this,"tokenize",(function(e,t,n,r){var o={code:t,grammar:n,language:r,tokens:[]};e.hooks.run("before-tokenize",o);var l=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),l}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,o=e.children,l=this.getThemeDict(this.props),a=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],r=[0],o=[e.length],l=0,a=0,c=[],s=[c];a>-1;){for(;(l=r[a]++)0?p:["plain"],i=h):(p=d(p,h.type),h.alias&&(p=d(p,h.alias)),i=h.content),"string"==typeof i){var m=i.split(u),g=m.length;c.push({types:p,content:m[0]});for(var f=1;f{const{prism:e}=(0,j.pN)(),{isDarkTheme:t}=(0,k.A)(),n=e.theme||v,r=e.darkTheme||n;return t?r:n};var O=n(4798);const T="codeBlockContainer_J+bg",A="codeBlockContent_csEI",x="codeBlockTitle_oQzk",N="codeBlock_rtdJ",w="codeBlockWithTitle_ZT05",P="copyButton_M3SB",C="codeBlockLines_1zSZ",S=/{([\d,-]+)}/,B=function(e){void 0===e&&(e=["js","jsBlock","jsx","python","html"]);const t={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},python:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},n=["highlight-next-line","highlight-start","highlight-end"].join("|"),r=e.map((e=>`(?:${t[e].start}\\s*(${n})\\s*${t[e].end})`)).join("|");return new RegExp(`^\\s*(?:${r})\\s*$`)};function D(e){let{children:t,className:n,metastring:o,title:c}=e;const{prism:i}=(0,j.pN)(),[p,u]=(0,r.useState)(!1),[y,d]=(0,r.useState)(!1);(0,r.useEffect)((()=>{d(!0)}),[]);const h=(0,j.wt)(o)||c,m=(0,r.useRef)(null);let f=[];const v=E(),k=Array.isArray(t)?t.join(""):t;if(o&&S.test(o)){const e=o.match(S)[1];f=b()(e).filter((e=>e>0))}let D=n&&n.replace(/language-/,"");!D&&i.defaultLanguage&&(D=i.defaultLanguage);let $=k.replace(/\n$/,"");if(0===f.length&&void 0!==D){let e="";const t=(e=>{switch(e){case"js":case"javascript":case"ts":case"typescript":return B(["js","jsBlock"]);case"jsx":case"tsx":return B(["js","jsBlock","jsx"]);case"html":return B(["js","jsBlock","html"]);case"python":case"py":return B(["python"]);default:return B()}})(D),n=k.replace(/\n$/,"").split("\n");let r;for(let o=0;oe||t),void 0)){case"highlight-next-line":e+=`${l},`;break;case"highlight-start":r=l;break;case"highlight-end":e+=`${r}-${l-1},`}n.splice(o,1)}else o+=1}f=b()(e),$=n.join("\n")}const L=()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const r=document.createElement("textarea"),o=document.activeElement;r.value=e,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const l=document.getSelection(),a=l.rangeCount>0&&l.getRangeAt(0);n.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}r.remove(),a&&(l.removeAllRanges(),l.addRange(a)),o&&o.focus()}($),u(!0),setTimeout((()=>u(!1)),2e3)};return r.createElement(g,(0,l.A)({},s,{key:String(y),theme:v,code:$,language:D}),(e=>{let{className:t,style:n,tokens:o,getLineProps:c,getTokenProps:s}=e;return r.createElement("div",{className:T},h&&r.createElement("div",{style:n,className:x},h),r.createElement("div",{className:(0,a.A)(A,D)},r.createElement("pre",{tabIndex:0,className:(0,a.A)(t,N,"thin-scrollbar",{[w]:h}),style:n},r.createElement("code",{className:C},o.map(((e,t)=>{1===e.length&&""===e[0].content&&(e[0].content="\n");const n=c({line:e,key:t});return f.includes(t+1)&&(n.className+=" docusaurus-highlight-code-line"),r.createElement("span",(0,l.A)({key:t},n),e.map(((e,t)=>r.createElement("span",(0,l.A)({key:t},s({token:e,key:t}))))))})))),r.createElement("button",{ref:m,type:"button","aria-label":(0,O.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),className:(0,a.A)(P,"clean-btn"),onClick:L},p?r.createElement(O.A,{id:"theme.CodeBlock.copied",description:"The copied button label on code blocks"},"Copied"):r.createElement(O.A,{id:"theme.CodeBlock.copy",description:"The copy button label on code blocks"},"Copy"))))}))}var $=n(6287);const L={code:e=>{const{children:t}=e;return(0,r.isValidElement)(t)?t:t.includes("\n")?r.createElement(D,e):r.createElement("code",e)},a:e=>r.createElement(o.A,e),pre:e=>{const{children:t}=e;return(0,r.isValidElement)(t?.props?.children)?t?.props.children:r.createElement(D,(0,r.isValidElement)(t)?t?.props:{children:t})},h1:(0,$.A)("h1"),h2:(0,$.A)("h2"),h3:(0,$.A)("h3"),h4:(0,$.A)("h4"),h5:(0,$.A)("h5"),h6:(0,$.A)("h6")}},8426:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,o,l]=t;if(r&&l){r=parseInt(r),l=parseInt(l);const e=r{n.d(a,{xA:()=>c,yg:()=>p});var t=n(6540);function s(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function r(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(s[n]=e[n]);return s}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=t.createContext({}),g=function(e){var a=t.useContext(l),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},c=function(e){var a=g(e.components);return t.createElement(l.Provider,{value:a},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(e,a){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=g(n),m=s,p=d["".concat(l,".").concat(m)]||d[m]||u[m]||r;return n?t.createElement(p,i(i({ref:a},c),{},{components:n})):t.createElement(p,i({ref:a},c))}));function p(e,a){var n=arguments,s=a&&a.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in a)hasOwnProperty.call(a,l)&&(o[l]=a[l]);o.originalType=e,o[d]="string"==typeof e?e:s,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var t=n(8168),s=(n(6540),n(5680));const r={id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},i=void 0,o={unversionedId:"guides/guides.message",id:"guides/guides.message",isDocsHomePage:!1,title:"Using Message",description:"Creating message",source:"@site/docs/guides/message.md",sourceDirName:"guides",slug:"/guides/message",permalink:"/laravel-chat-system/docs/next/guides/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/message.md",version:"current",frontMatter:{id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},sidebar:"docs",previous:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/next/guides/conversation"},next:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/next/guides/chatEvent"}},l=[{value:"Creating message",id:"creating-message",children:[]},{value:"Broadcasting Message Created",id:"broadcasting-message-created",children:[]},{value:"Creating an activity message type",id:"creating-an-activity-message-type",children:[]},{value:"Creating a message with token",id:"creating-a-message-with-token",children:[]},{value:"Deleting message",id:"deleting-message",children:[]}],g={toc:l},c="wrapper";function d(e){let{components:a,...n}=e;return(0,s.yg)(c,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"creating-message"},"Creating message"),(0,s.yg)("p",null,"You may create a message within a conversation using its ",(0,s.yg)("inlineCode",{parentName:"p"},"messages")," relationship method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,s.yg)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,s.yg)("p",null,"You may broadcast a ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,s.yg)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,s.yg)("p",null,"A message type is default to ",(0,s.yg)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,s.yg)("inlineCode",{parentName:"p"},"system")," or an ",(0,s.yg)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createActivityMessage([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,s.yg)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,s.yg)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,s.yg)("h2",{id:"deleting-message"},"Deleting message"),(0,s.yg)("p",null,"You may delete message(s) with ",(0,s.yg)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,s.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68e4957e.34a7c924.js b/assets/js/68e4957e.34a7c924.js deleted file mode 100644 index 8ddb3ca..0000000 --- a/assets/js/68e4957e.34a7c924.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7794],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return g}});var a=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=c(n),g=s,p=m["".concat(l,".").concat(g)]||m[g]||d[g]||r;return n?a.createElement(p,i(i({ref:t},u),{},{components:n})):a.createElement(p,i({ref:t},u))}));function g(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:s,i[1]=o;for(var c=2;cconversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,r.kt)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,r.kt)("p",null,"You may broadcast a ",(0,r.kt)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,r.kt)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,r.kt)("p",null,"A message type is default to ",(0,r.kt)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,r.kt)("inlineCode",{parentName:"p"},"system")," or an ",(0,r.kt)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createActivityMessage([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,r.kt)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,r.kt)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,r.kt)("h2",{id:"deleting-message"},"Deleting message"),(0,r.kt)("p",null,"You may delete message(s) with ",(0,r.kt)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,r.kt)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,r.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/728f0bd2.163f5d81.js b/assets/js/728f0bd2.163f5d81.js deleted file mode 100644 index 258cc7e..0000000 --- a/assets/js/728f0bd2.163f5d81.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1556],{9981:function(a){"use strict";a.exports=JSON.parse('{"pluginId":"default","version":"v1.0-alpha.3","label":"v1.0-alpha.3","banner":"unmaintained","isLast":false,"docsSidebars":{"version-v1.0-alpha.3/docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/v1.0-alpha.3/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/v1.0-alpha.3/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/v1.0-alpha.3/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/configure":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/message":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/routes":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/models":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/providers":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/install":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/requirements":"version-v1.0-alpha.3/docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/728f0bd2.1f7797c5.js b/assets/js/728f0bd2.1f7797c5.js new file mode 100644 index 0000000..b0437bc --- /dev/null +++ b/assets/js/728f0bd2.1f7797c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9606],{9140:a=>{a.exports=JSON.parse('{"pluginId":"default","version":"v1.0-alpha.3","label":"v1.0-alpha.3","banner":"unmaintained","isLast":false,"docsSidebars":{"version-v1.0-alpha.3/docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/v1.0-alpha.3/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/v1.0-alpha.3/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/v1.0-alpha.3/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/configure":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/message":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/routes":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/models":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/guides/providers":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/install":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/":"version-v1.0-alpha.3/docs","/laravel-chat-system/docs/v1.0-alpha.3/requirements":"version-v1.0-alpha.3/docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/7461c12e.60de12ab.js b/assets/js/7461c12e.60de12ab.js new file mode 100644 index 0000000..b73450a --- /dev/null +++ b/assets/js/7461c12e.60de12ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2742],{3330:e=>{e.exports=JSON.parse('{"permalink":"/laravel-chat-system/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/7461c12e.c98868fc.js b/assets/js/7461c12e.c98868fc.js deleted file mode 100644 index e4fa4a2..0000000 --- a/assets/js/7461c12e.c98868fc.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1718],{8782:function(e){"use strict";e.exports=JSON.parse('{"permalink":"/laravel-chat-system/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/77dc3123.1069e9b4.js b/assets/js/77dc3123.1069e9b4.js deleted file mode 100644 index cc0138f..0000000 --- a/assets/js/77dc3123.1069e9b4.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5288],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return v}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(t),v=a,m=d["".concat(c,".").concat(v)]||d[v]||p[v]||o;return t?r.createElement(m,i(i({ref:n},u),{},{components:t})):r.createElement(m,i({ref:n},u))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;lconversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"output"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,o.kt)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,o.kt)("p",null,"You may create a conversation of another type such as ",(0,o.kt)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,o.kt)("details",null,(0,o.kt)("summary",null,"output"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,o.kt)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,o.kt)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,o.kt)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,o.kt)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,o.kt)("p",null,"You may delete conversation with ",(0,o.kt)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,o.kt)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,o.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77dc3123.ef9601d7.js b/assets/js/77dc3123.ef9601d7.js new file mode 100644 index 0000000..11cace7 --- /dev/null +++ b/assets/js/77dc3123.ef9601d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9239],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>v});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(t),d=a,v=u["".concat(c,".").concat(d)]||u[d]||g[d]||o;return t?r.createElement(v,i(i({ref:n},p),{},{components:t})):r.createElement(v,i({ref:n},p))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},i=void 0,s={unversionedId:"guides/guides.conversation",id:"guides/guides.conversation",isDocsHomePage:!1,title:"Using Conversation",description:"Creating conversation",source:"@site/docs/guides/conversation.md",sourceDirName:"guides",slug:"/guides/conversation",permalink:"/laravel-chat-system/docs/next/guides/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/conversation.md",version:"current",frontMatter:{id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},sidebar:"docs",previous:{title:"Using Routes",permalink:"/laravel-chat-system/docs/next/guides/routes"},next:{title:"Using Message",permalink:"/laravel-chat-system/docs/next/guides/message"}},c=[{value:"Creating conversation",id:"creating-conversation",children:[]},{value:"Creating conversation type",id:"creating-conversation-type",children:[]},{value:"Adding/removing user/participant to conversation",id:"addingremoving-userparticipant-to-conversation",children:[]},{value:"Deleting conversation",id:"deleting-conversation",children:[]}],l={toc:c},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.yg)(p,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"creating-conversation"},"Creating conversation"),(0,a.yg)("p",null,"When conversation is created, the system will automatically add the creator as a participant of the conversation using the ",(0,a.yg)("inlineCode",{parentName:"p"},"conversation.user_id")," if only the chatSystem Observer have been registered. see ",(0,a.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registering-observers")," "),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,a.yg)("details",null,(0,a.yg)("summary",null,"output"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,a.yg)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,a.yg)("p",null,"You may create a conversation of another type such as ",(0,a.yg)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,a.yg)("details",null,(0,a.yg)("summary",null,"output"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,a.yg)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,a.yg)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,a.yg)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,a.yg)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,a.yg)("p",null,"You may delete conversation with ",(0,a.yg)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,a.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,a.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7e7dcd04.9a368de7.js b/assets/js/7e7dcd04.9a368de7.js new file mode 100644 index 0000000..6269d80 --- /dev/null +++ b/assets/js/7e7dcd04.9a368de7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8075],{5680:(e,t,a)=>{a.d(t,{xA:()=>d,yg:()=>u});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),l=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=l(a),m=n,u=p["".concat(c,".").concat(m)]||p[m]||g[m]||s;return a?r.createElement(u,o(o({ref:t},d),{},{components:a})):r.createElement(u,o({ref:t},d))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:n,o[1]=i;for(var l=2;l{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var r=a(8168),n=(a(6540),a(5680));const s={id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},o=void 0,i={unversionedId:"apis/events/message/messageCreated",id:"version-v1.0.0-beta.4/apis/events/message/messageCreated",isDocsHomePage:!1,title:"Message Created Event",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/events/message/created.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/created",permalink:"/laravel-chat-system/docs/apis/events/message/created",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/events/message/created.md",version:"v1.0.0-beta.4",frontMatter:{id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Message Events",permalink:"/laravel-chat-system/docs/apis/events/message/events"},next:{title:"ChatSytem",permalink:"/laravel-chat-system/docs/apis/chatsytem"}},c=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],l={toc:c},d="wrapper";function p(e){let{components:t,...a}=e;return(0,n.yg)(d,(0,r.A)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"namespace"},(0,n.yg)("strong",{parentName:"h2"},"Namespace")),(0,n.yg)("p",null,(0,n.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Events\\Message\\Created")),(0,n.yg)("h2",{id:"broadcasts-as"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message"))),(0,n.yg)("h2",{id:"broadcasts-with"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message")," type ",(0,n.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IMessage"))),(0,n.yg)("h2",{id:"broadcasts-on-channels"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7ffe32ea.1f6f24e4.js b/assets/js/7ffe32ea.1f6f24e4.js new file mode 100644 index 0000000..ec0fc11 --- /dev/null +++ b/assets/js/7ffe32ea.1f6f24e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1150],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var a=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(r),u=n,g=y["".concat(l,".").concat(u)]||y[u]||m[u]||s;return r?a.createElement(g,o(o({ref:t},p),{},{components:r})):a.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=r.length,o=new Array(s);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[y]="string"==typeof e?e:n,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=r(8168),n=(r(6540),r(5680));const s={id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},o=void 0,i={unversionedId:"apis/chatsystem",id:"version-v1.0.0-beta.4/apis/chatsystem",isDocsHomePage:!1,title:"ChatSytem APIs",description:"registerPolicies()",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/chatSystem.md",sourceDirName:"apis",slug:"/apis/chatsytem",permalink:"/laravel-chat-system/docs/apis/chatsytem",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/chatSystem.md",version:"v1.0.0-beta.4",frontMatter:{id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/apis/events/message/created"}},l=[{value:"registerPolicies()",id:"registerpolicies",children:[]},{value:"registerObservers()",id:"registerobservers",children:[]},{value:"registerBroadcastRoutes()",id:"registerbroadcastroutes",children:[]},{value:"async()",id:"async",children:[]}],c={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,a.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"registerpolicies"},"registerPolicies()"),(0,n.yg)("p",null,"method to register policies ChatSystem provides."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerPolicies();\n")),(0,n.yg)("h2",{id:"registerobservers"},"registerObservers()"),(0,n.yg)("p",null,"method to register observers ChatSystem provides."),(0,n.yg)("h4",{id:"params"},"@Params"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("strong",{parentName:"li"},(0,n.yg)("inlineCode",{parentName:"strong"},"exclude"))," | array of models name to exclude from register | ",(0,n.yg)("inlineCode",{parentName:"li"},"array"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerObservers(exclude: ['conversation' => true]);\n")),(0,n.yg)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,n.yg)("p",null,"method to register broadcast routes ChatSystem provides."),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,n.yg)("h2",{id:"async"},"async()"),(0,n.yg)("p",null,"method to asynchronously call fuctions if only ",(0,n.yg)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,n.yg)("h4",{id:"params-1"},"@Params"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("strong",{parentName:"li"},(0,n.yg)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,n.yg)("inlineCode",{parentName:"li"},"callback arguments"))),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8111.1586250e.js b/assets/js/8111.1586250e.js deleted file mode 100644 index f4794c8..0000000 --- a/assets/js/8111.1586250e.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8111],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),y=s(n),d=o,h=y["".concat(i,".").concat(d)]||y[d]||p[d]||a;return n?r.createElement(h,l(l({ref:t},u),{},{components:n})):r.createElement(h,l({ref:t},u))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:o,l[1]=c;for(var s=2;s0&&e[n-1]===t?e:e.concat(t)},h=function(e,t){var n=e.plain,r=Object.create(null),o=e.styles.reduce((function(e,n){var r=n.languages,o=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=u({},e[t],o);e[t]=n})),e}),r);return o.root=n,o.plain=u({},n,{backgroundColor:null}),o};function f(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}var m=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),s(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?h(e.theme,e.language):void 0;return t.themeDict=n})),s(this,"getLineProps",(function(e){var n=e.key,r=e.className,o=e.style,a=u({},f(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(a.style=l.plain),void 0!==o&&(a.style=void 0!==a.style?u({},a.style,o):o),void 0!==n&&(a.key=n),r&&(a.className+=" "+r),a})),s(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,o=n.length,a=t.getThemeDict(t.props);if(void 0!==a){if(1===o&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===o&&!r)return a[n[0]];var l=r?{display:"inline-block"}:{},c=n.map((function(e){return a[e]}));return Object.assign.apply(Object,[l].concat(c))}})),s(this,"getTokenProps",(function(e){var n=e.key,r=e.className,o=e.style,a=e.token,l=u({},f(e,["key","className","style","token"]),{className:"token "+a.types.join(" "),children:a.content,style:t.getStyleForToken(a),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?u({},l.style,o):o),void 0!==n&&(l.key=n),r&&(l.className+=" "+r),l})),s(this,"tokenize",(function(e,t,n,r){var o={code:t,grammar:n,language:r,tokens:[]};e.hooks.run("before-tokenize",o);var a=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),a}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,o=e.children,a=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],r=[0],o=[e.length],a=0,l=0,c=[],i=[c];l>-1;){for(;(a=r[l]++)0?u:["plain"],s=h):(u=d(u,h.type),h.alias&&(u=d(u,h.alias)),s=h.content),"string"==typeof s){var f=s.split(p),m=f.length;c.push({types:u,content:f[0]});for(var g=1;g0}))}var A=n&&n.replace(/language-/,"");!A&&s.defaultLanguage&&(A=s.defaultLanguage);var I=D.replace(/\n$/,"");if(0===k.length&&void 0!==A){for(var R,z="",F=function(e){switch(e){case"js":case"javascript":case"ts":case"typescript":return S(["js","jsBlock"]);case"jsx":case"tsx":return S(["js","jsBlock","jsx"]);case"html":return S(["js","jsBlock","html"]);case"python":case"py":return S(["python"]);default:return S()}}(A),$=D.replace(/\n$/,"").split("\n"),U=0;U<$.length;){var V=U+1,W=$[U].match(F);if(null!==W){switch(W.slice(1).reduce((function(e,t){return e||t}),void 0)){case"highlight-next-line":z+=V+",";break;case"highlight-start":R=V;break;case"highlight-end":z+=R+"-"+(V-1)+","}$.splice(U,1)}else U+=1}k=v()(z),I=$.join("\n")}var M=function(){!function(e,t){var n=(void 0===t?{}:t).target,r=void 0===n?document.body:n,o=document.createElement("textarea"),a=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";var l=document.getSelection(),c=!1;l.rangeCount>0&&(c=l.getRangeAt(0)),r.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;var i=!1;try{i=document.execCommand("copy")}catch(s){}o.remove(),c&&(l.removeAllRanges(),l.addRange(c)),a&&a.focus()}(I),y(!0),setTimeout((function(){return y(!1)}),2e3)};return r.createElement(m,(0,a.Z)({},i,{key:String(h),theme:B,code:I,language:A}),(function(e){var t,n=e.className,o=e.style,c=e.tokens,i=e.getLineProps,s=e.getTokenProps;return r.createElement("div",{className:T},g&&r.createElement("div",{style:o,className:P},g),r.createElement("div",{className:(0,l.Z)(x,A)},r.createElement("pre",{tabIndex:0,className:(0,l.Z)(n,N,"thin-scrollbar",(t={},t[Z]=g,t)),style:o},r.createElement("code",{className:C},c.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var n=i({line:e,key:t});return k.includes(t+1)&&(n.className+=" docusaurus-highlight-code-line"),r.createElement("span",(0,a.Z)({key:t},n),e.map((function(e,t){return r.createElement("span",(0,a.Z)({key:t},s({token:e,key:t})))})))})))),r.createElement("button",{ref:b,type:"button","aria-label":(0,O.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),className:(0,l.Z)(w,"clean-btn"),onClick:M},p?r.createElement(O.Z,{id:"theme.CodeBlock.copied",description:"The copied button label on code blocks"},"Copied"):r.createElement(O.Z,{id:"theme.CodeBlock.copy",description:"The copy button label on code blocks"},"Copy"))))}))}var D=n(6159),_={code:function(e){var t=e.children;return(0,r.isValidElement)(t)?t:t.includes("\n")?r.createElement(B,e):r.createElement("code",e)},a:function(e){return r.createElement(o.Z,e)},pre:function(e){var t,n=e.children;return(0,r.isValidElement)(null==n||null==(t=n.props)?void 0:t.children)?null==n?void 0:n.props.children:r.createElement(B,(0,r.isValidElement)(n)?null==n?void 0:n.props:{children:n})},h1:(0,D.Z)("h1"),h2:(0,D.Z)("h2"),h3:(0,D.Z)("h3"),h4:(0,D.Z)("h4"),h5:(0,D.Z)("h5"),h6:(0,D.Z)("h6")}},7594:function(e,t){function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,o,a]=t;if(r&&a){r=parseInt(r),a=parseInt(a);const e=r{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Hello","permalink":"/laravel-chat-system/blog/hello-world"}]}')}}]); \ No newline at end of file diff --git a/assets/js/821319ba.085deea4.js b/assets/js/821319ba.085deea4.js new file mode 100644 index 0000000..02f19ee --- /dev/null +++ b/assets/js/821319ba.085deea4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1940],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function s(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=t.createContext({}),g=function(e){var a=t.useContext(o),n=a;return e&&(n="function"==typeof e?e(a):s(s({},a),e)),n},p=function(e){var a=g(e.components);return t.createElement(o.Provider,{value:a},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=g(n),y=r,u=d["".concat(o,".").concat(y)]||d[y]||m[y]||l;return n?t.createElement(u,s(s({ref:a},p),{},{components:n})):t.createElement(u,s({ref:a},p))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,s=new Array(l);s[0]=y;var i={};for(var o in a)hasOwnProperty.call(a,o)&&(i[o]=a[o]);i.originalType=e,i[d]="string"==typeof e?e:r,s[1]=i;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>o});var t=n(8168),r=(n(6540),n(5680));const l={id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},s=void 0,i={unversionedId:"apis/models/message",id:"version-v1.0-alpha.3/apis/models/message",isDocsHomePage:!1,title:"Message APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0-alpha.3/apis/models/message.md",sourceDirName:"apis/models",slug:"/apis/models/message",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/apis/models/message.md",version:"v1.0-alpha.3",frontMatter:{id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts"},next:{title:"Conversation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation"}},o=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereRelatedToUser()",id:"whererelatedtouser",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDelivered()",id:"makedelivered",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDelivered()",id:"makedelivered-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],g={toc:o},p="wrapper";function d(e){let{components:a,...n}=e;return(0,r.yg)(p,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Message")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"conversation_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"message")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"metas")),(0,r.yg)("td",{parentName:"tr",align:null},"json"),(0,r.yg)("td",{parentName:"tr",align:null},"message key values")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Message Model Query Builder APIs"),(0,r.yg)("h3",{id:"wherenotsender"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,r.yg)("h3",{id:"wherereply"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereReply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,r.yg)("h3",{id:"wheredoesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,r.yg)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"null|Closure"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,r.yg)("h3",{id:"whererelatedtouser"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereRelatedToUser()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedToUser(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"hasevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,r.yg)("h3",{id:"hasnoevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"participantshasdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelivered($user);\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|user"))),(0,r.yg)("p",null,"find user from the message's participants"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message has many chat events")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,r.yg)("h3",{id:"sender"},(0,r.yg)("inlineCode",{parentName:"h3"},"sender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to user")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,r.yg)("h3",{id:"reply"},(0,r.yg)("inlineCode",{parentName:"h3"},"reply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makeread-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedelete-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makedelivered-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelivered(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/821319ba.e59221ce.js b/assets/js/821319ba.e59221ce.js deleted file mode 100644 index 5a938f7..0000000 --- a/assets/js/821319ba.e59221ce.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6590],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return d},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=p(a),k=r,c=u["".concat(o,".").concat(k)]||u[k]||m[k]||l;return a?n.createElement(c,s(s({ref:t},d),{},{components:a})):n.createElement(c,s({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,s=new Array(l);s[0]=u;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var p=2;pNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereRelatedToUser()",id:"whererelatedtouser",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDelivered()",id:"makedelivered",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDelivered()",id:"makedelivered-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],d={toc:p};function m(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Message")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"conversation_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"user_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"reply_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"reply_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"message")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"message text")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,l.kt)("td",{parentName:"tr",align:null},"message text")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"metas")),(0,l.kt)("td",{parentName:"tr",align:null},"json"),(0,l.kt)("td",{parentName:"tr",align:null},"message key values")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Message Model Query Builder APIs"),(0,l.kt)("h3",{id:"wherenotsender"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,l.kt)("h3",{id:"wherereply"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereReply()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,l.kt)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,l.kt)("h3",{id:"wheredoesnthavechatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,l.kt)("h4",{id:"params-2"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,l.kt)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"null|Closure"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,l.kt)("h3",{id:"whererelatedtouser"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereRelatedToUser()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,l.kt)("h4",{id:"params-3"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedToUser(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"hasevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,l.kt)("h4",{id:"params-4"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"callable"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,l.kt)("h3",{id:"hasnoevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,l.kt)("h4",{id:"params-5"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"callable"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,l.kt)("h3",{id:"whereconversationwasntdeleted"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,l.kt)("h4",{id:"params-6"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"whereconversationwasntdeleted-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,l.kt)("h4",{id:"params-7"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,l.kt)("h2",{id:"util-methods"},"Util Methods"),(0,l.kt)("h3",{id:"participantshasdeleted"},(0,l.kt)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,l.kt)("h4",{id:"return"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("h4",{id:"params-8"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,l.kt)("inlineCode",{parentName:"li"},"int"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,l.kt)("h3",{id:"makedelete"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"delete")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-1"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-9"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,l.kt)("h3",{id:"makeread"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"read")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-2"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-1"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-10"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,l.kt)("h3",{id:"makedelivered"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-3"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-2"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-11"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelivered($user);\n")),(0,l.kt)("h3",{id:"participants"},(0,l.kt)("inlineCode",{parentName:"h3"},"participants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,l.kt)("h4",{id:"return-4"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,l.kt)("h4",{id:"params-12"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|user"))),(0,l.kt)("p",null,"find user from the message's participants"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"conversation"},(0,l.kt)("inlineCode",{parentName:"h3"},"conversation()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,l.kt)("h3",{id:"chatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message has many chat events")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,l.kt)("h3",{id:"sender"},(0,l.kt)("inlineCode",{parentName:"h3"},"sender()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message belongs to user")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,l.kt)("h3",{id:"reply"},(0,l.kt)("inlineCode",{parentName:"h3"},"reply()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,l.kt)("h2",{id:"collection-methods"},"Collection methods"),(0,l.kt)("p",null,"These are methods that could be called on collection of messages."),(0,l.kt)("h3",{id:"makeread-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,l.kt)("h3",{id:"makedelete-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,l.kt)("h3",{id:"makedelivered-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelivered(user: $user, all: false);\n")),(0,l.kt)("h3",{id:"makechatevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84c60894.71f910b8.js b/assets/js/84c60894.71f910b8.js new file mode 100644 index 0000000..2fb4459 --- /dev/null +++ b/assets/js/84c60894.71f910b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[695],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var r=n(6540);function t(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function s(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var a=1;a=0||(t[n]=e[n]);return t}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(t[n]=e[n])}return t}var l=r.createContext({}),g=function(e){var a=r.useContext(l),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},p=function(e){var a=g(e.components);return r.createElement(l.Provider,{value:a},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var a=e.children;return r.createElement(r.Fragment,{},a)}},m=r.forwardRef((function(e,a){var n=e.components,t=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),y=g(n),m=t,u=y["".concat(l,".").concat(m)]||y[m]||d[m]||s;return n?r.createElement(u,i(i({ref:a},p),{},{components:n})):r.createElement(u,i({ref:a},p))}));function u(e,a){var n=arguments,t=a&&a.mdxType;if("string"==typeof e||t){var s=n.length,i=new Array(s);i[0]=m;var o={};for(var l in a)hasOwnProperty.call(a,l)&&(o[l]=a[l]);o.originalType=e,o[y]="string"==typeof e?e:t,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>y,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var r=n(8168),t=(n(6540),n(5680));const s={id:"hasMessage",title:"HasMessage APIs",sidebar_label:"HasMessage",slug:"/apis/traits/message/hasMessage"},i=void 0,o={unversionedId:"apis/traits/message/hasMessage",id:"version-v1.0.0-beta.4/apis/traits/message/hasMessage",isDocsHomePage:!1,title:"HasMessage APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/traits/message/hasMessage.md",sourceDirName:"apis/traits/message",slug:"/apis/traits/message/hasMessage",permalink:"/laravel-chat-system/docs/apis/traits/message/hasMessage",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/traits/message/hasMessage.md",version:"v1.0.0-beta.4",frontMatter:{id:"hasMessage",title:"HasMessage APIs",sidebar_label:"HasMessage",slug:"/apis/traits/message/hasMessage"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"HasChatEvent",permalink:"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent"},next:{title:"Message Events",permalink:"/laravel-chat-system/docs/apis/events/message/events"}},l=[{value:"Namespace",id:"namespace",children:[{value:"messages()",id:"messages",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"conversations()",id:"conversations",children:[]},{value:"relatedToMessage()",id:"relatedtomessage",children:[]},{value:"relatedToConversation()",id:"relatedtoconversation",children:[]}]}],g={toc:l},p="wrapper";function y(e){let{components:a,...n}=e;return(0,t.yg)(p,(0,r.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,t.yg)("h2",{id:"namespace"},(0,t.yg)("strong",{parentName:"h2"},"Namespace")),(0,t.yg)("p",null,(0,t.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Traits\\ChatEvent")),(0,t.yg)("h3",{id:"messages"},(0,t.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"adds query for model's messages")),(0,t.yg)("h4",{id:"return"},"@Return"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"type ",(0,t.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,t.yg)("h4",{id:"params"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation messages to query for | ",(0,t.yg)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,t.yg)("h4",{id:"params-1"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser belongs to message | ",(0,t.yg)("inlineCode",{parentName:"li"},"string"))),(0,t.yg)("h4",{id:"params-2"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?reply"))," | adds where reply query | ",(0,t.yg)("inlineCode",{parentName:"li"},"array"))),(0,t.yg)("h4",{id:"params-3"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,t.yg)("inlineCode",{parentName:"li"},"string"))),(0,t.yg)("h3",{id:"undelivered"},(0,t.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"adds query for model where it messages has not been delivered")),(0,t.yg)("h4",{id:"return-1"},"@Return"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"type ",(0,t.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,t.yg)("h3",{id:"conversations"},(0,t.yg)("inlineCode",{parentName:"h3"},"conversations()")),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"adds query for model's conversations")),(0,t.yg)("h4",{id:"return-2"},"@Return"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"type ",(0,t.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,t.yg)("h4",{id:"params-4"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversations to query for | ",(0,t.yg)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,t.yg)("h4",{id:"params-5"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser is a participant | ",(0,t.yg)("inlineCode",{parentName:"li"},"string"))),(0,t.yg)("h4",{id:"params-6"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,t.yg)("inlineCode",{parentName:"li"},"string"))),(0,t.yg)("h3",{id:"relatedtomessage"},(0,t.yg)("inlineCode",{parentName:"h3"},"relatedToMessage()")),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"checks wherther model is related to the given message")),(0,t.yg)("h4",{id:"return-3"},"@Return"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"type ",(0,t.yg)("inlineCode",{parentName:"li"},"bool"))),(0,t.yg)("h4",{id:"params-7"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?message"))," | message to compare relation with | ",(0,t.yg)("inlineCode",{parentName:"li"},"IMessage"))),(0,t.yg)("h3",{id:"relatedtoconversation"},(0,t.yg)("inlineCode",{parentName:"h3"},"relatedToConversation()")),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"checks wherther model is related to the given conversation")),(0,t.yg)("h4",{id:"return-4"},"@Return"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"type ",(0,t.yg)("inlineCode",{parentName:"li"},"bool"))),(0,t.yg)("h4",{id:"params-8"},"@Params"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},(0,t.yg)("strong",{parentName:"li"},(0,t.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation to compare relation with | ",(0,t.yg)("inlineCode",{parentName:"li"},"IConversation"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/893980f7.03117c54.js b/assets/js/893980f7.03117c54.js new file mode 100644 index 0000000..e8d384f --- /dev/null +++ b/assets/js/893980f7.03117c54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6167],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=t.createContext({}),g=function(e){var a=t.useContext(s),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},p=function(e){var a=g(e.components);return t.createElement(s.Provider,{value:a},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=g(n),y=r,u=d["".concat(s,".").concat(y)]||d[y]||m[y]||l;return n?t.createElement(u,i(i({ref:a},p),{},{components:n})):t.createElement(u,i({ref:a},p))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=y;var o={};for(var s in a)hasOwnProperty.call(a,s)&&(o[s]=a[s]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var t=n(8168),r=(n(6540),n(5680));const l={id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},i=void 0,o={unversionedId:"apis/models/conversation",id:"version-v1.0-alpha.3/apis/models/conversation",isDocsHomePage:!1,title:"Conversation APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0-alpha.3/apis/models/conversation.md",sourceDirName:"apis/models",slug:"/apis/models/conversation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/apis/models/conversation.md",version:"v1.0-alpha.3",frontMatter:{id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Message",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message"},next:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createMessageActivity()",id:"createmessageactivity",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDelivered()",id:"makedelivered",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDelivered()",id:"makedelivered-1",children:[]}]}],g={toc:s},p="wrapper";function d(e){let{components:a,...n}=e;return(0,r.yg)(p,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Conversation")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"name")),(0,r.yg)("td",{parentName:"tr",align:null},"string","|","null"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation name")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,r.yg)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"wherehaslastmessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,r.yg)("h3",{id:"wherenotparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"createmessatewithtoken"},(0,r.yg)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,r.yg)("inlineCode",{parentName:"li"},"string|int")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,r.yg)("h3",{id:"addparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\ConversationUser"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\ChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"removeparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"null|bool"))),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\ChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"createmessageactivity"},(0,r.yg)("inlineCode",{parentName:"h3"},"createMessageActivity()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageActivity(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makedelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-6"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelivered(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"last_message"},(0,r.yg)("inlineCode",{parentName:"h3"},"last_message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,r.yg)("h3",{id:"participant"},(0,r.yg)("inlineCode",{parentName:"h3"},"participant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipants"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,r.yg)("h3",{id:"messages"},(0,r.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,r.yg)("h3",{id:"unread"},(0,r.yg)("inlineCode",{parentName:"h3"},"unread()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,r.yg)("h3",{id:"undelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,r.yg)("h3",{id:"doesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|ChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,r.yg)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,r.yg)("h3",{id:"author"},(0,r.yg)("inlineCode",{parentName:"h3"},"author()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makedelivered-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,r.yg)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelivered(user: $user);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/893980f7.088be5d7.js b/assets/js/893980f7.088be5d7.js deleted file mode 100644 index 17c98d1..0000000 --- a/assets/js/893980f7.088be5d7.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6336],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return d},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=p(a),k=r,c=u["".concat(s,".").concat(k)]||u[k]||m[k]||l;return a?n.createElement(c,i(i({ref:t},d),{},{components:a})):n.createElement(c,i({ref:t},d))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;pNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createMessageActivity()",id:"createmessageactivity",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDelivered()",id:"makedelivered",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDelivered()",id:"makedelivered-1",children:[]}]}],d={toc:p};function m(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Conversation")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"user_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"user id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"name")),(0,l.kt)("td",{parentName:"tr",align:null},"string","|","null"),(0,l.kt)("td",{parentName:"tr",align:null},"conversation name")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,l.kt)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Methods that build queries."),(0,l.kt)("h3",{id:"wherehaslastmessage"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,l.kt)("h3",{id:"wherenotparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,l.kt)("h2",{id:"util-methods"},"Util Methods"),(0,l.kt)("h3",{id:"createmessatewithtoken"},(0,l.kt)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,l.kt)("h4",{id:"return"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,l.kt)("h4",{id:"params-2"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,l.kt)("inlineCode",{parentName:"li"},"string|int")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,l.kt)("inlineCode",{parentName:"li"},"array"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,l.kt)("h3",{id:"addparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,l.kt)("h4",{id:"return-1"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\ConversationUser"))),(0,l.kt)("h4",{id:"params-3"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\ChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,l.kt)("inlineCode",{parentName:"li"},"string"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,l.kt)("h3",{id:"removeparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,l.kt)("h4",{id:"return-2"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"null|bool"))),(0,l.kt)("h4",{id:"params-4"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\ChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,l.kt)("inlineCode",{parentName:"li"},"string"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,l.kt)("h3",{id:"createmessageactivity"},(0,l.kt)("inlineCode",{parentName:"h3"},"createMessageActivity()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,l.kt)("h4",{id:"return-3"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,l.kt)("h4",{id:"params-5"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,l.kt)("inlineCode",{parentName:"li"},"array"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageActivity(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,l.kt)("h3",{id:"makedelete"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"delete")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-4"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-6"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"false")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,l.kt)("h3",{id:"makeread"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"read")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-5"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-1"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-7"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"true")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,l.kt)("h3",{id:"makedelivered"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-6"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-2"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-8"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"true")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelivered(user: $user, row: true, all: false);\n")),(0,l.kt)("h3",{id:"makechatevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"false")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"last_message"},(0,l.kt)("inlineCode",{parentName:"h3"},"last_message()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,l.kt)("h3",{id:"participants"},(0,l.kt)("inlineCode",{parentName:"h3"},"participants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,l.kt)("h3",{id:"participant"},(0,l.kt)("inlineCode",{parentName:"h3"},"participant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,l.kt)("h4",{id:"params-9"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,l.kt)("h3",{id:"otherparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,l.kt)("h4",{id:"params-10"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,l.kt)("h3",{id:"otherparticipants"},(0,l.kt)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,l.kt)("h4",{id:"params-11"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,l.kt)("h3",{id:"messages"},(0,l.kt)("inlineCode",{parentName:"h3"},"messages()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,l.kt)("h3",{id:"unread"},(0,l.kt)("inlineCode",{parentName:"h3"},"unread()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,l.kt)("h4",{id:"params-12"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,l.kt)("h3",{id:"undelivered"},(0,l.kt)("inlineCode",{parentName:"h3"},"undelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,l.kt)("h4",{id:"params-13"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,l.kt)("h3",{id:"doesnthavechatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,l.kt)("h4",{id:"params-14"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|ChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,l.kt)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,l.kt)("h3",{id:"author"},(0,l.kt)("inlineCode",{parentName:"h3"},"author()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,l.kt)("h2",{id:"collection-methods"},"Collection methods"),(0,l.kt)("p",null,"These are methods that could be called on collection of messages."),(0,l.kt)("h3",{id:"makedelivered-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,l.kt)("h4",{id:"params-15"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,l.kt)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelivered(user: $user);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9090.85c0c432.js b/assets/js/9090.85c0c432.js new file mode 100644 index 0000000..571c29a --- /dev/null +++ b/assets/js/9090.85c0c432.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9090],{9090:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});var n=a(6540),o=a(5241),l=a(4798);const r=function(){return n.createElement(o.A,{title:(0,l.T)({id:"theme.NotFound.title",message:"Page Not Found"})},n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.A,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."))))))}}}]); \ No newline at end of file diff --git a/assets/js/933e2d77.5542ac57.js b/assets/js/933e2d77.5542ac57.js new file mode 100644 index 0000000..32d39b1 --- /dev/null +++ b/assets/js/933e2d77.5542ac57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5203],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),p=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(n),h=a,g=d["".concat(o,".").concat(h)]||d[h]||u[h]||i;return n?r.createElement(g,s(s({ref:t},c),{},{components:n})):r.createElement(g,s({ref:t},c))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=h;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[d]="string"==typeof e?e:a,s[1]=l;for(var p=2;p{n.r(t),n.d(t,{contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>o});var r=n(8168),a=(n(6540),n(5680));const i={id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},s=void 0,l={unversionedId:"install",id:"version-v1.0.0-beta.4/install",isDocsHomePage:!1,title:"Installation",description:"Install",source:"@site/versioned_docs/version-v1.0.0-beta.4/install.md",sourceDirName:".",slug:"/install",permalink:"/laravel-chat-system/docs/install",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/install.md",version:"v1.0.0-beta.4",frontMatter:{id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Introduction",permalink:"/laravel-chat-system/docs/"},next:{title:"Requirements",permalink:"/laravel-chat-system/docs/requirements"}},o=[{value:"Install",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]},{value:"Setup User Model",id:"setup-user-model",children:[]}],p={toc:o},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(c,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"install"},(0,a.yg)("inlineCode",{parentName:"h2"},"Install")),(0,a.yg)("p",null,"Via Composer"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"composer require binkode/laravel-chat-system\n")),(0,a.yg)("h2",{id:"setup"},(0,a.yg)("inlineCode",{parentName:"h2"},"Setup")),(0,a.yg)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"config")," directory"),(0,a.yg)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,a.yg)("p",null,"migration files should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,a.yg)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,a.yg)("p",null,"seeders files should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,a.yg)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,a.yg)("p",null,"factories files should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,a.yg)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Binkode\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,a.yg)("p",null,"all resources files should be copied to the respective directories"),(0,a.yg)("h2",{id:"setup-user-model"},(0,a.yg)("inlineCode",{parentName:"h2"},"Setup User Model")),(0,a.yg)("p",null,"In order to start working with chat-system, you need to setup your User model by implementing ",(0,a.yg)("strong",{parentName:"p"},"IChatEventMaker")," Interface and using the ",(0,a.yg)("a",{parentName:"p",href:"/laravel-chat-system/docs/apis/traits/message/hasMessage"},"HasMessage"),", ",(0,a.yg)("a",{parentName:"p",href:"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent"},"CanMakeChatEvent")," Traits."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Traits\\Message\\HasMessage;\nuse Binkode\\ChatSystem\\Traits\\ChatEvent\\CanMakeChatEvent;\nuse Binkode\\ChatSystem\\Contracts\\IChatEventMaker;\n\n\nclass User implements IChatEventMaker\n{\n use HasMessage, CanMakeChatEvent;\n...\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.bfb0d219.js b/assets/js/935f2afb.bfb0d219.js new file mode 100644 index 0000000..24c5732 --- /dev/null +++ b/assets/js/935f2afb.bfb0d219.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","isLast":false,"docsSidebars":{"docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/next/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/next/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/next/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/next/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/next/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/next/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/next/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/next/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/next/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/next/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/next/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/next/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/next/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/next/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Traits","items":[{"collapsed":false,"type":"category","label":"ChatEvent","items":[{"type":"link","label":"CanMakeChatEvent","href":"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent"},{"type":"link","label":"HasChatEvent","href":"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent"}]},{"collapsed":false,"type":"category","label":"Message","items":[{"type":"link","label":"HasMessage","href":"/laravel-chat-system/docs/next/apis/traits/message/hasMessage"}]}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/next/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/next/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/next/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/next/apis/chatsytem":"docs","/laravel-chat-system/docs/next/apis/events/message/created":"docs","/laravel-chat-system/docs/next/apis/events/message/events":"docs","/laravel-chat-system/docs/next/apis/models/chatEvent":"docs","/laravel-chat-system/docs/next/apis/models/conversation":"docs","/laravel-chat-system/docs/next/apis/models/message":"docs","/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent":"docs","/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent":"docs","/laravel-chat-system/docs/next/apis/traits/message/hasMessage":"docs","/laravel-chat-system/docs/next/guides/broadcasts":"docs","/laravel-chat-system/docs/next/guides/configure":"docs","/laravel-chat-system/docs/next/guides/chatEvent":"docs","/laravel-chat-system/docs/next/guides/conversation":"docs","/laravel-chat-system/docs/next/guides/message":"docs","/laravel-chat-system/docs/next/guides/routes":"docs","/laravel-chat-system/docs/next/guides/models":"docs","/laravel-chat-system/docs/next/guides/providers":"docs","/laravel-chat-system/docs/next/install":"docs","/laravel-chat-system/docs/next/":"docs","/laravel-chat-system/docs/next/requirements":"docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.d26192d7.js b/assets/js/935f2afb.d26192d7.js deleted file mode 100644 index 4bf08bd..0000000 --- a/assets/js/935f2afb.d26192d7.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{9054:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","isLast":false,"docsSidebars":{"docs":[{"collapsed":false,"type":"category","label":"Chat System","items":[{"type":"link","label":"Introduction","href":"/laravel-chat-system/docs/next/"},{"type":"link","label":"Installation","href":"/laravel-chat-system/docs/next/install"},{"type":"link","label":"Requirements","href":"/laravel-chat-system/docs/next/requirements"}]},{"collapsed":false,"type":"category","label":"Guides","items":[{"type":"link","label":"Configuring ChatSystem","href":"/laravel-chat-system/docs/next/guides/configure"},{"type":"link","label":"Using Providers","href":"/laravel-chat-system/docs/next/guides/providers"},{"type":"link","label":"Using Models","href":"/laravel-chat-system/docs/next/guides/models"},{"type":"link","label":"Using Routes","href":"/laravel-chat-system/docs/next/guides/routes"},{"type":"link","label":"Using Conversation","href":"/laravel-chat-system/docs/next/guides/conversation"},{"type":"link","label":"Using Message","href":"/laravel-chat-system/docs/next/guides/message"},{"type":"link","label":"Using ChatEvent","href":"/laravel-chat-system/docs/next/guides/chatEvent"},{"type":"link","label":"Listening to broadcast events","href":"/laravel-chat-system/docs/next/guides/broadcasts"}]},{"collapsed":false,"type":"category","label":"Api Ref","items":[{"collapsed":false,"type":"category","label":"Models","items":[{"type":"link","label":"Message","href":"/laravel-chat-system/docs/next/apis/models/message"},{"type":"link","label":"Conversation","href":"/laravel-chat-system/docs/next/apis/models/conversation"},{"type":"link","label":"ChatEvent","href":"/laravel-chat-system/docs/next/apis/models/chatEvent"}]},{"collapsed":false,"type":"category","label":"Traits","items":[{"collapsed":false,"type":"category","label":"ChatEvent","items":[{"type":"link","label":"CanMakeChatEvent","href":"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent"},{"type":"link","label":"HasChatEvent","href":"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent"}]},{"collapsed":false,"type":"category","label":"Message","items":[{"type":"link","label":"HasMessage","href":"/laravel-chat-system/docs/next/apis/traits/message/hasMessage"}]}]},{"collapsed":false,"type":"category","label":"Events","items":[{"type":"link","label":"Message Events","href":"/laravel-chat-system/docs/next/apis/events/message/events"},{"type":"link","label":"Message Created Event","href":"/laravel-chat-system/docs/next/apis/events/message/created"}]},{"type":"link","label":"ChatSytem","href":"/laravel-chat-system/docs/next/apis/chatsytem"}]}]},"permalinkToSidebar":{"/laravel-chat-system/docs/next/apis/chatsytem":"docs","/laravel-chat-system/docs/next/apis/events/message/created":"docs","/laravel-chat-system/docs/next/apis/events/message/events":"docs","/laravel-chat-system/docs/next/apis/models/chatEvent":"docs","/laravel-chat-system/docs/next/apis/models/conversation":"docs","/laravel-chat-system/docs/next/apis/models/message":"docs","/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent":"docs","/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent":"docs","/laravel-chat-system/docs/next/apis/traits/message/hasMessage":"docs","/laravel-chat-system/docs/next/guides/broadcasts":"docs","/laravel-chat-system/docs/next/guides/configure":"docs","/laravel-chat-system/docs/next/guides/chatEvent":"docs","/laravel-chat-system/docs/next/guides/conversation":"docs","/laravel-chat-system/docs/next/guides/message":"docs","/laravel-chat-system/docs/next/guides/routes":"docs","/laravel-chat-system/docs/next/guides/models":"docs","/laravel-chat-system/docs/next/guides/providers":"docs","/laravel-chat-system/docs/next/install":"docs","/laravel-chat-system/docs/next/":"docs","/laravel-chat-system/docs/next/requirements":"docs"}}')}}]); \ No newline at end of file diff --git a/assets/js/9499d50b.5b0c28a5.js b/assets/js/9499d50b.5b0c28a5.js new file mode 100644 index 0000000..4d08055 --- /dev/null +++ b/assets/js/9499d50b.5b0c28a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4721],{5680:(e,t,a)=>{a.d(t,{xA:()=>d,yg:()=>y});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),g=p(a),c=r,y=g["".concat(s,".").concat(c)]||g[c]||m[c]||l;return a?n.createElement(y,o(o({ref:t},d),{},{components:a})):n.createElement(y,o({ref:t},d))}));function y(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[g]="string"==typeof e?e:r,o[1]=i;for(var p=2;p{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const l={id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},o=void 0,i={unversionedId:"apis/models/chatEvent",id:"version-v1.0-alpha.3/apis/models/chatEvent",isDocsHomePage:!1,title:"ChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0-alpha.3/apis/models/chatEvent.md",sourceDirName:"apis/models",slug:"/apis/models/chatEvent",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/apis/models/chatEvent.md",version:"v1.0-alpha.3",frontMatter:{id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Conversation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation"},next:{title:"Message Events",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],p={toc:s},d="wrapper";function g(e){let{components:t,...a}=e;return(0,r.yg)(d,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\ChatEvent")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,r.yg)("td",{parentName:"tr",align:null},"the type of the event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"all")),(0,r.yg)("td",{parentName:"tr",align:null},"bool"),(0,r.yg)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"withall"},(0,r.yg)("inlineCode",{parentName:"h3"},"withAll()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,r.yg)("h3",{id:"notmessenger"},(0,r.yg)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,r.yg)("inlineCode",{parentName:"li"},"ChatEventMaker|int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"message"},(0,r.yg)("inlineCode",{parentName:"h3"},"message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,r.yg)("h3",{id:"maker"},(0,r.yg)("inlineCode",{parentName:"h3"},"maker()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,r.yg)("h3",{id:"made"},(0,r.yg)("inlineCode",{parentName:"h3"},"made()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9499d50b.705d3e4c.js b/assets/js/9499d50b.705d3e4c.js deleted file mode 100644 index b79e9c7..0000000 --- a/assets/js/9499d50b.705d3e4c.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6556],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return u}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=p(n),u=r,h=c["".concat(s,".").concat(u)]||c[u]||m[u]||l;return n?a.createElement(h,o(o({ref:t},d),{},{components:n})):a.createElement(h,o({ref:t},d))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var p=2;pNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],d={toc:p};function m(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\ChatEvent")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"maker_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"id of the model making event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"maker_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"class of the model making event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"made_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"made_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,l.kt)("td",{parentName:"tr",align:null},"the type of the event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"all")),(0,l.kt)("td",{parentName:"tr",align:null},"bool"),(0,l.kt)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Methods that build queries."),(0,l.kt)("h3",{id:"withall"},(0,l.kt)("inlineCode",{parentName:"h3"},"withAll()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"ChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,l.kt)("h3",{id:"notmessenger"},(0,l.kt)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,l.kt)("inlineCode",{parentName:"li"},"ChatEventMaker|int"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"message"},(0,l.kt)("inlineCode",{parentName:"h3"},"message()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,l.kt)("h3",{id:"conversation"},(0,l.kt)("inlineCode",{parentName:"h3"},"conversation()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,l.kt)("h3",{id:"maker"},(0,l.kt)("inlineCode",{parentName:"h3"},"maker()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,l.kt)("h3",{id:"made"},(0,l.kt)("inlineCode",{parentName:"h3"},"made()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/98cac8af.15fb8d3c.js b/assets/js/98cac8af.15fb8d3c.js new file mode 100644 index 0000000..f86b68b --- /dev/null +++ b/assets/js/98cac8af.15fb8d3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[332],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>v});var a=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(n),m=s,v=d["".concat(l,".").concat(m)]||d[m]||g[m]||r;return n?a.createElement(v,i(i({ref:t},p),{},{components:n})):a.createElement(v,i({ref:t},p))}));function v(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:s,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var a=n(8168),s=(n(6540),n(5680));const r={id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},i=void 0,o={unversionedId:"apis/events/message/messageEvent",id:"version-v1.0-alpha.3/apis/events/message/messageEvent",isDocsHomePage:!1,title:"Message Events",description:"Namespace",source:"@site/versioned_docs/version-v1.0-alpha.3/apis/events/message/events.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/events",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/apis/events/message/events.md",version:"v1.0-alpha.3",frontMatter:{id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent"},next:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created"}},l=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],c={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,s.yg)(p,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"namespace"},(0,s.yg)("strong",{parentName:"h2"},"Namespace")),(0,s.yg)("p",null,(0,s.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Events")),(0,s.yg)("h2",{id:"broadcasts-as"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"message"))),(0,s.yg)("h2",{id:"broadcasts-when"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"event type is not (",(0,s.yg)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.yg)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.yg)("h2",{id:"broadcasts-with"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"event")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEvent")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"int"))),(0,s.yg)("h2",{id:"broadcasts-on-channels"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/98cac8af.80deb4af.js b/assets/js/98cac8af.80deb4af.js deleted file mode 100644 index 8541304..0000000 --- a/assets/js/98cac8af.80deb4af.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8423],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=c(n),m=r,v=u["".concat(l,".").concat(m)]||u[m]||d[m]||s;return n?a.createElement(v,o(o({ref:t},p),{},{components:n})):a.createElement(v,o({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,o=new Array(s);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var c=2;cNamespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],p={toc:c};function d(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Events")),(0,s.kt)("h2",{id:"broadcasts-as"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message"))),(0,s.kt)("h2",{id:"broadcasts-when"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"event type is not (",(0,s.kt)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.kt)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.kt)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.kt)("h2",{id:"broadcasts-with"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"event")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEvent")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"int"))),(0,s.kt)("h2",{id:"broadcasts-on-channels"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9e11f74a.3cd2c86d.js b/assets/js/9e11f74a.3cd2c86d.js deleted file mode 100644 index 0808aac..0000000 --- a/assets/js/9e11f74a.3cd2c86d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3578],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return d},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=c(n),m=r,v=u["".concat(l,".").concat(m)]||u[m]||p[m]||s;return n?a.createElement(v,i(i({ref:t},d),{},{components:n})):a.createElement(v,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var c=2;c {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,s.kt)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,s.kt)("p",null,"From the frontend channel, you may listen to ",(0,s.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,s.kt)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,s.kt)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,s.kt)("inlineCode",{parentName:"p"},"event->type")," is ",(0,s.kt)("inlineCode",{parentName:"p"},"delete")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,s.kt)("inlineCode",{parentName:"p"},"true")," and ",(0,s.kt)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,s.kt)("inlineCode",{parentName:"p"},"message"),"."),(0,s.kt)("p",null,"Using Laravel Echo as example broadcast client"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9e11f74a.a144ef16.js b/assets/js/9e11f74a.a144ef16.js new file mode 100644 index 0000000..4d9a93e --- /dev/null +++ b/assets/js/9e11f74a.a144ef16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3795],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>u});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),d=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return a.createElement(l.Provider,{value:n},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=d(t),m=r,u=p["".concat(l,".").concat(m)]||p[m]||g[m]||s;return t?a.createElement(u,i(i({ref:n},c),{},{components:t})):a.createElement(u,i({ref:n},c))}));function u(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var d=2;d{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=t(8168),r=(t(6540),t(5680));const s={id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},i=void 0,o={unversionedId:"guides/broadcasts",id:"version-v1.0.0-beta.0/guides/broadcasts",isDocsHomePage:!1,title:"ChatSystem Broadcast Events",description:"Listening to Message\\Created event",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/broadcasts.md",sourceDirName:"guides",slug:"/guides/broadcasts",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/broadcasts.md",version:"v1.0.0-beta.0",frontMatter:{id:"broadcasts",title:"ChatSystem Broadcast Events",sidebar_label:"Listening to broadcast events",slug:"/guides/broadcasts"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent"},next:{title:"Message",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message"}},l=[{value:"Listening to MessageCreated event",id:"listening-to-messagecreated-event",children:[]},{value:"Listening to MessageEvents event",id:"listening-to-messageevents-event",children:[]}],d={toc:l},c="wrapper";function p(e){let{components:n,...t}=e;return(0,r.yg)(c,(0,a.A)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"listening-to-messagecreated-event"},"Listening to Message\\Created event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"Message\\Created Event")," on broadcast channel:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"private-message-new.user.{$participantId}")," as ",(0,r.yg)("inlineCode",{parentName:"li"},"message")," to each conversation participants")),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-created.${conversation_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n// OR\nEcho.private(`message-new.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n }\n}\n'))),(0,r.yg)("h2",{id:"listening-to-messageevents-event"},"Listening to Message\\Events event"),(0,r.yg)("p",null,"From the frontend channel, you may listen to ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events Event")," on broadcast channel ",(0,r.yg)("inlineCode",{parentName:"p"},"private-message-event.user.{$participant_id}")," as ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),". This will broadcast to all participant otherwise it will only broadcast to the event maker if the ",(0,r.yg)("inlineCode",{parentName:"p"},"event->type")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->all")," is not ",(0,r.yg)("inlineCode",{parentName:"p"},"true")," and ",(0,r.yg)("inlineCode",{parentName:"p"},"event->made_tye")," is ",(0,r.yg)("inlineCode",{parentName:"p"},"message"),"."),(0,r.yg)("p",null,"Using Laravel Echo as example broadcast client"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-js"},"Echo.private(`message-event.user.${participant_id}`)\n .listen('message', (event) => {\n console.log(event)\n })\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n }\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3336c33.0cf57f1a.js b/assets/js/a3336c33.0cf57f1a.js new file mode 100644 index 0000000..66fbdab --- /dev/null +++ b/assets/js/a3336c33.0cf57f1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2142],{5680:(e,a,n)=>{n.d(a,{xA:()=>c,yg:()=>p});var t=n(6540);function s(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function r(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(s[n]=e[n]);return s}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=t.createContext({}),g=function(e){var a=t.useContext(l),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},c=function(e){var a=g(e.components);return t.createElement(l.Provider,{value:a},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(e,a){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=g(n),m=s,p=d["".concat(l,".").concat(m)]||d[m]||u[m]||r;return n?t.createElement(p,i(i({ref:a},c),{},{components:n})):t.createElement(p,i({ref:a},c))}));function p(e,a){var n=arguments,s=a&&a.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in a)hasOwnProperty.call(a,l)&&(o[l]=a[l]);o.originalType=e,o[d]="string"==typeof e?e:s,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var t=n(8168),s=(n(6540),n(5680));const r={id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},i=void 0,o={unversionedId:"guides/guides.message",id:"version-v1.0-alpha.3/guides/guides.message",isDocsHomePage:!1,title:"Using Message",description:"Creating message",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/message.md",sourceDirName:"guides",slug:"/guides/message",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/message.md",version:"v1.0-alpha.3",frontMatter:{id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation"},next:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent"}},l=[{value:"Creating message",id:"creating-message",children:[]},{value:"Broadcasting Message Created",id:"broadcasting-message-created",children:[]},{value:"Creating an activity message type",id:"creating-an-activity-message-type",children:[]},{value:"Creating a message with token",id:"creating-a-message-with-token",children:[]},{value:"Deleting message",id:"deleting-message",children:[]}],g={toc:l},c="wrapper";function d(e){let{components:a,...n}=e;return(0,s.yg)(c,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"creating-message"},"Creating message"),(0,s.yg)("p",null,"You may create a message within a conversation using its ",(0,s.yg)("inlineCode",{parentName:"p"},"messages")," relationship method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,s.yg)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,s.yg)("p",null,"You may broadcast a ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,s.yg)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,s.yg)("p",null,"A message type is default to ",(0,s.yg)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,s.yg)("inlineCode",{parentName:"p"},"system")," or an ",(0,s.yg)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageActivity([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,s.yg)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,s.yg)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,s.yg)("h2",{id:"deleting-message"},"Deleting message"),(0,s.yg)("p",null,"You may delete message(s) with ",(0,s.yg)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,s.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3336c33.b06f1355.js b/assets/js/a3336c33.b06f1355.js deleted file mode 100644 index 172c4a6..0000000 --- a/assets/js/a3336c33.b06f1355.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6573],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return g}});var a=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=c(n),g=s,p=m["".concat(l,".").concat(g)]||m[g]||d[g]||r;return n?a.createElement(p,i(i({ref:t},u),{},{components:n})):a.createElement(p,i({ref:t},u))}));function g(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:s,i[1]=o;for(var c=2;cconversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,r.kt)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,r.kt)("p",null,"You may broadcast a ",(0,r.kt)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,r.kt)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,r.kt)("p",null,"A message type is default to ",(0,r.kt)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,r.kt)("inlineCode",{parentName:"p"},"system")," or an ",(0,r.kt)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageActivity([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,r.kt)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,r.kt)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,r.kt)("h2",{id:"deleting-message"},"Deleting message"),(0,r.kt)("p",null,"You may delete message(s) with ",(0,r.kt)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,r.kt)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,r.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,r.kt)("details",null,(0,r.kt)("summary",null,"output"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3c53e6a.e8881eec.js b/assets/js/a3c53e6a.e8881eec.js new file mode 100644 index 0000000..095c216 --- /dev/null +++ b/assets/js/a3c53e6a.e8881eec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4704],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>v});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=l(n),g=r,v=p["".concat(c,".").concat(g)]||p[g]||u[g]||s;return n?a.createElement(v,i(i({ref:t},d),{},{components:n})):a.createElement(v,i({ref:t},d))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var l=2;l{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var a=n(8168),r=(n(6540),n(5680));const s={id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},i=void 0,o={unversionedId:"guides/guides.chatEvent",id:"version-v1.0.0-beta.4/guides/guides.chatEvent",isDocsHomePage:!1,title:"Using ChatEvent",description:"Creating chatEvent",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/chatEvent.md",sourceDirName:"guides",slug:"/guides/chatEvent",permalink:"/laravel-chat-system/docs/guides/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/chatEvent.md",version:"v1.0.0-beta.4",frontMatter:{id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Using Message",permalink:"/laravel-chat-system/docs/guides/message"},next:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/guides/broadcasts"}},c=[{value:"Creating chatEvent",id:"creating-chatevent",children:[]},{value:"Broadcasting chatEvent",id:"broadcasting-chatevent",children:[]}],l={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.yg)(d,(0,a.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"creating-chatevent"},"Creating chatEvent"),(0,r.yg)("p",null,"You may create chat events by a ",(0,r.yg)("inlineCode",{parentName:"p"},"IChatEventMaker")," model for ",(0,r.yg)("inlineCode",{parentName:"p"},"Message")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"Conversation")," models.\nfor example, creating a read event for a particular message."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$user->chatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,r.yg)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,r.yg)("p",null,"By default, everytime chat is event is created, a ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,r.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.571372a6.js b/assets/js/a6aa9e1f.571372a6.js deleted file mode 100644 index fe7664c..0000000 --- a/assets/js/a6aa9e1f.571372a6.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3089],{4428:function(e,a,t){"use strict";t.r(a),t.d(a,{default:function(){return g}});var r=t(7294),l=t(2263),n=t(6016),i=t(3146),s=t(6742),m=t(4973);var c=function(e){var a=e.metadata,t=a.previousPage,l=a.nextPage;return r.createElement("nav",{className:"pagination-nav","aria-label":(0,m.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},r.createElement("div",{className:"pagination-nav__item"},t&&r.createElement(s.Z,{className:"pagination-nav__link",to:t},r.createElement("div",{className:"pagination-nav__label"},"\xab"," ",r.createElement(m.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")))),r.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},l&&r.createElement(s.Z,{className:"pagination-nav__link",to:l},r.createElement("div",{className:"pagination-nav__label"},r.createElement(m.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries")," ","\xbb"))))},o=t(5601),d=t(9306);var g=function(e){var a=e.metadata,t=e.items,s=e.sidebar,m=(0,l.Z)().siteConfig.title,g=a.blogDescription,u=a.blogTitle,p="/"===a.permalink?m:u;return r.createElement(n.Z,{title:p,description:g,wrapperClassName:d.kM.wrapper.blogPages,pageClassName:d.kM.page.blogListPage,searchMetadatas:{tag:"blog_posts_list"}},r.createElement("div",{className:"container margin-vert--lg"},r.createElement("div",{className:"row"},r.createElement("aside",{className:"col col--3"},r.createElement(o.Z,{sidebar:s})),r.createElement("main",{className:"col col--7"},t.map((function(e){var a=e.content;return r.createElement(i.Z,{key:a.metadata.permalink,frontMatter:a.frontMatter,metadata:a.metadata,truncated:a.metadata.truncated},r.createElement(a,null))})),r.createElement(c,{metadata:a})))))}},3146:function(e,a,t){"use strict";t.d(a,{Z:function(){return v}});var r=t(7294),l=t(6010),n=t(3905),i=t(4973),s=t(6742),m=t(9306),c=t(7277),o=t(1217),d=t(6146),g="blogPostTitle_GeHD",u="blogPostData_291c",p="blogPostDetailsFull_3kfx";var v=function(e){var a,t,v,E=(t=(0,m.c2)().selectMessage,function(e){var a=Math.ceil(e);return t(a,(0,i.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}),h=e.children,b=e.frontMatter,_=e.metadata,f=e.truncated,N=e.isBlogPostPage,Z=void 0!==N&&N,k=_.date,T=_.formattedDate,w=_.permalink,I=_.tags,L=_.readingTime,M=_.title,P=_.editUrl,x=b.author,A=b.image,y=b.keywords,C=b.author_url||b.authorURL,R=b.author_title||b.authorTitle,U=b.author_image_url||b.authorImageURL;return r.createElement(r.Fragment,null,r.createElement(o.Z,{keywords:y,image:A}),r.createElement("article",{className:Z?void 0:"margin-bottom--xl"},(v=Z?"h1":"h2",r.createElement("header",null,r.createElement(v,{className:g},Z?M:r.createElement(s.Z,{to:w},M)),r.createElement("div",{className:(0,l.Z)(u,"margin-vert--md")},r.createElement("time",{dateTime:k},T),L&&r.createElement(r.Fragment,null," \xb7 ",E(L))),r.createElement("div",{className:"avatar margin-vert--md"},U&&r.createElement(s.Z,{className:"avatar__photo-link avatar__photo",href:C},r.createElement("img",{src:U,alt:x})),r.createElement("div",{className:"avatar__intro"},x&&r.createElement(r.Fragment,null,r.createElement("div",{className:"avatar__name"},r.createElement(s.Z,{href:C},x)),r.createElement("small",{className:"avatar__subtitle"},R)))))),r.createElement("div",{className:"markdown"},r.createElement(n.Zo,{components:c.Z},h)),(I.length>0||f)&&r.createElement("footer",{className:(0,l.Z)("row docusaurus-mt-lg",(a={},a[p]=Z,a))},I.length>0&&r.createElement("div",{className:"col"},r.createElement("b",null,r.createElement(i.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),I.map((function(e){var a=e.label,t=e.permalink;return r.createElement(s.Z,{key:t,className:"margin-horiz--sm",to:t},a)}))),Z&&P&&r.createElement("div",{className:"col margin-top--sm"},r.createElement(d.Z,{editUrl:P})),!Z&&f&&r.createElement("div",{className:"col text--right"},r.createElement(s.Z,{to:_.permalink,"aria-label":"Read more about "+M},r.createElement("b",null,r.createElement(i.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More")))))))}},5601:function(e,a,t){"use strict";t.d(a,{Z:function(){return u}});var r=t(7294),l=t(6010),n=t(6742),i="sidebar_2ahu",s="sidebarItemTitle_2hhb",m="sidebarItemList_2xAf",c="sidebarItem_2UVv",o="sidebarItemLink_1RT6",d="sidebarItemLinkActive_12pM",g=t(4973);function u(e){var a=e.sidebar;return 0===a.items.length?null:r.createElement("nav",{className:(0,l.Z)(i,"thin-scrollbar"),"aria-label":(0,g.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},r.createElement("div",{className:(0,l.Z)(s,"margin-bottom--md")},a.title),r.createElement("ul",{className:m},a.items.map((function(e){return r.createElement("li",{key:e.permalink,className:c},r.createElement(n.Z,{isNavLink:!0,to:e.permalink,className:o,activeClassName:d},e.title))}))))}},6146:function(e,a,t){"use strict";t.d(a,{Z:function(){return o}});var r=t(7294),l=t(4973),n=t(2122),i=t(9756),s=t(6010),m="iconEdit_2_ui",c=function(e){var a=e.className,t=(0,i.Z)(e,["className"]);return r.createElement("svg",(0,n.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(m,a),"aria-hidden":"true"},t),r.createElement("g",null,r.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function o(e){var a=e.editUrl;return r.createElement("a",{href:a,target:"_blank",rel:"noreferrer noopener"},r.createElement(c,null),r.createElement(l.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.b82d9922.js b/assets/js/a6aa9e1f.b82d9922.js new file mode 100644 index 0000000..19f667e --- /dev/null +++ b/assets/js/a6aa9e1f.b82d9922.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7643],{3861:(e,t,a)=>{a.r(t),a.d(t,{default:()=>g});var l=a(6540),r=a(4586),n=a(5241),i=a(9178),s=a(4676),m=a(4798);const c=function(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return l.createElement("nav",{className:"pagination-nav","aria-label":(0,m.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},l.createElement("div",{className:"pagination-nav__item"},a&&l.createElement(s.A,{className:"pagination-nav__link",to:a},l.createElement("div",{className:"pagination-nav__label"},"\xab"," ",l.createElement(m.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")))),l.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},r&&l.createElement(s.A,{className:"pagination-nav__link",to:r},l.createElement("div",{className:"pagination-nav__label"},l.createElement(m.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries")," ","\xbb"))))};var o=a(9937),d=a(3155);const g=function(e){const{metadata:t,items:a,sidebar:s}=e,{siteConfig:{title:m}}=(0,r.A)(),{blogDescription:g,blogTitle:p,permalink:u}=t,b="/"===u?m:p;return l.createElement(n.A,{title:b,description:g,wrapperClassName:d.GN.wrapper.blogPages,pageClassName:d.GN.page.blogListPage,searchMetadatas:{tag:"blog_posts_list"}},l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement("aside",{className:"col col--3"},l.createElement(o.A,{sidebar:s})),l.createElement("main",{className:"col col--7"},a.map((e=>{let{content:t}=e;return l.createElement(i.A,{key:t.metadata.permalink,frontMatter:t.frontMatter,metadata:t.metadata,truncated:t.metadata.truncated},l.createElement(t,null))})),l.createElement(c,{metadata:t})))))}},9178:(e,t,a)=>{a.d(t,{A:()=>b});var l=a(6540),r=a(53),n=a(5680),i=a(4798),s=a(4676),m=a(3155),c=a(8607),o=a(8139),d=a(6458);const g="blogPostTitle_d4p0",p="blogPostData_-Im+",u="blogPostDetailsFull_xD8n";const b=function(e){const t=function(){const{selectMessage:e}=(0,m.Ww)();return t=>{const a=Math.ceil(t);return e(a,(0,i.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}(),{children:a,frontMatter:b,metadata:E,truncated:h,isBlogPostPage:v=!1}=e,{date:_,formattedDate:A,permalink:N,tags:k,readingTime:f,title:T,editUrl:w}=E,{author:I,image:L,keywords:P}=b,x=b.author_url||b.authorURL,y=b.author_title||b.authorTitle,C=b.author_image_url||b.authorImageURL;return l.createElement(l.Fragment,null,l.createElement(o.A,{keywords:P,image:L}),l.createElement("article",{className:v?void 0:"margin-bottom--xl"},(()=>{const e=v?"h1":"h2";return l.createElement("header",null,l.createElement(e,{className:g},v?T:l.createElement(s.A,{to:N},T)),l.createElement("div",{className:(0,r.A)(p,"margin-vert--md")},l.createElement("time",{dateTime:_},A),f&&l.createElement(l.Fragment,null," \xb7 ",t(f))),l.createElement("div",{className:"avatar margin-vert--md"},C&&l.createElement(s.A,{className:"avatar__photo-link avatar__photo",href:x},l.createElement("img",{src:C,alt:I})),l.createElement("div",{className:"avatar__intro"},I&&l.createElement(l.Fragment,null,l.createElement("div",{className:"avatar__name"},l.createElement(s.A,{href:x},I)),l.createElement("small",{className:"avatar__subtitle"},y)))))})(),l.createElement("div",{className:"markdown"},l.createElement(n.xA,{components:c.A},a)),(k.length>0||h)&&l.createElement("footer",{className:(0,r.A)("row docusaurus-mt-lg",{[u]:v})},k.length>0&&l.createElement("div",{className:"col"},l.createElement("b",null,l.createElement(i.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),k.map((e=>{let{label:t,permalink:a}=e;return l.createElement(s.A,{key:a,className:"margin-horiz--sm",to:a},t)}))),v&&w&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(d.A,{editUrl:w})),!v&&h&&l.createElement("div",{className:"col text--right"},l.createElement(s.A,{to:E.permalink,"aria-label":`Read more about ${T}`},l.createElement("b",null,l.createElement(i.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More")))))))}},9937:(e,t,a)=>{a.d(t,{A:()=>m});var l=a(6540),r=a(53),n=a(4676);const i={sidebar:"sidebar_q+wC",sidebarItemTitle:"sidebarItemTitle_9G5K",sidebarItemList:"sidebarItemList_6T4b",sidebarItem:"sidebarItem_cjdF",sidebarItemLink:"sidebarItemLink_zyXk",sidebarItemLinkActive:"sidebarItemLinkActive_wcJs"};var s=a(4798);function m(e){let{sidebar:t}=e;return 0===t.items.length?null:l.createElement("nav",{className:(0,r.A)(i.sidebar,"thin-scrollbar"),"aria-label":(0,s.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,r.A)(i.sidebarItemTitle,"margin-bottom--md")},t.title),l.createElement("ul",{className:i.sidebarItemList},t.items.map((e=>l.createElement("li",{key:e.permalink,className:i.sidebarItem},l.createElement(n.A,{isNavLink:!0,to:e.permalink,className:i.sidebarItemLink,activeClassName:i.sidebarItemLinkActive},e.title))))))}},6458:(e,t,a)=>{a.d(t,{A:()=>c});var l=a(6540),r=a(4798),n=a(8168),i=a(53);const s="iconEdit_mS5F",m=e=>{let{className:t,...a}=e;return l.createElement("svg",(0,n.A)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,i.A)(s,t),"aria-hidden":"true"},a),l.createElement("g",null,l.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function c(e){let{editUrl:t}=e;return l.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},l.createElement(m,null),l.createElement(r.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}}}]); \ No newline at end of file diff --git a/assets/js/a7e50a2f.33e827c2.js b/assets/js/a7e50a2f.33e827c2.js new file mode 100644 index 0000000..36fd967 --- /dev/null +++ b/assets/js/a7e50a2f.33e827c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7392],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),g=d(n),c=r,y=g["".concat(s,".").concat(c)]||g[c]||m[c]||l;return n?a.createElement(y,o(o({ref:t},p),{},{components:n})):a.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[g]="string"==typeof e?e:r,o[1]=i;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>g,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},o=void 0,i={unversionedId:"apis/models/chatEvent",id:"version-v1.0.0-beta.0/apis/models/chatEvent",isDocsHomePage:!1,title:"ChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/models/chatEvent.md",sourceDirName:"apis/models",slug:"/apis/models/chatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/models/chatEvent.md",version:"v1.0.0-beta.0",frontMatter:{id:"chatEvent",title:"ChatEvent APIs",sidebar_label:"ChatEvent",slug:"/apis/models/chatEvent"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Conversation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation"},next:{title:"CanMakeChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],d={toc:s},p="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\ChatEvent")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"maker_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"made_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,r.yg)("td",{parentName:"tr",align:null},"the type of the event")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"all")),(0,r.yg)("td",{parentName:"tr",align:null},"bool"),(0,r.yg)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"withall"},(0,r.yg)("inlineCode",{parentName:"h3"},"withAll()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,r.yg)("h3",{id:"notmessenger"},(0,r.yg)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker|int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"message"},(0,r.yg)("inlineCode",{parentName:"h3"},"message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,r.yg)("h3",{id:"maker"},(0,r.yg)("inlineCode",{parentName:"h3"},"maker()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,r.yg)("h3",{id:"made"},(0,r.yg)("inlineCode",{parentName:"h3"},"made()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a7e50a2f.5dc9c8ca.js b/assets/js/a7e50a2f.5dc9c8ca.js deleted file mode 100644 index 59a962b..0000000 --- a/assets/js/a7e50a2f.5dc9c8ca.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[217],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return u}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=d(n),u=r,k=c["".concat(s,".").concat(u)]||c[u]||m[u]||l;return n?a.createElement(k,o(o({ref:t},p),{},{components:n})):a.createElement(k,o({ref:t},p))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var d=2;dNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"withAll()",id:"withall",children:[]},{value:"notMessenger()",id:"notmessenger",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"message()",id:"message",children:[]},{value:"conversation()",id:"conversation",children:[]},{value:"maker()",id:"maker",children:[]},{value:"made()",id:"made",children:[]}]}],p={toc:d};function m(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\ChatEvent")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"maker_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"id of the model making event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"maker_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"class of the model making event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"made_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"id of the model making event from")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"made_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"class of the model making event from")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(read, delete, deliver)"),(0,l.kt)("td",{parentName:"tr",align:null},"the type of the event")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"all")),(0,l.kt)("td",{parentName:"tr",align:null},"bool"),(0,l.kt)("td",{parentName:"tr",align:null},"whether event was made for all participant")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Methods that build queries."),(0,l.kt)("h3",{id:"withall"},(0,l.kt)("inlineCode",{parentName:"h3"},"withAll()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where maker is the given user or chat event is for all participants.")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to retrive chat events for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"ChatEvent::withAll($user)->get();\n")),(0,l.kt)("h3",{id:"notmessenger"},(0,l.kt)("inlineCode",{parentName:"h3"},"notMessenger()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where the chat event message sender is not the given user.")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user that should not be the chat event message sender. | ",(0,l.kt)("inlineCode",{parentName:"li"},"IChatEventMaker|int"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"ChatEvent::notMessenger($user)->first();\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"message"},(0,l.kt)("inlineCode",{parentName:"h3"},"message()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent belongs to a message.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->message;\n")),(0,l.kt)("h3",{id:"conversation"},(0,l.kt)("inlineCode",{parentName:"h3"},"conversation()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent belongs to a conversation.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->conversation;\n")),(0,l.kt)("h3",{id:"maker"},(0,l.kt)("inlineCode",{parentName:"h3"},"maker()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent morph to maker models.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->maker;\n")),(0,l.kt)("h3",{id:"made"},(0,l.kt)("inlineCode",{parentName:"h3"},"made()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"ChatEvent morph to made models.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$chatEvent->made;\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/affba670.0c5fb6d6.js b/assets/js/affba670.0c5fb6d6.js new file mode 100644 index 0000000..188f91f --- /dev/null +++ b/assets/js/affba670.0c5fb6d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7426],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>p});var s=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=s.createContext({}),d=function(e){var t=s.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(l.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),g=d(n),u=r,p=g["".concat(l,".").concat(u)]||g[u]||m[u]||o;return n?s.createElement(p,a(a({ref:t},c),{},{components:n})):s.createElement(p,a({ref:t},c))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[g]="string"==typeof e?e:r,a[1]=i;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>a,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var s=n(8168),r=(n(6540),n(5680));const o={id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},a=void 0,i={unversionedId:"guides/models",id:"version-v1.0.0-beta.4/guides/models",isDocsHomePage:!1,title:"ChatSystem Models",description:"Using ChatSystem Models",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/models.md",sourceDirName:"guides",slug:"/guides/models",permalink:"/laravel-chat-system/docs/guides/models",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/models.md",version:"v1.0.0-beta.4",frontMatter:{id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Using Providers",permalink:"/laravel-chat-system/docs/guides/providers"},next:{title:"Using Routes",permalink:"/laravel-chat-system/docs/guides/routes"}},l=[{value:"Using ChatSystem Models",id:"using-chatsystem-models",children:[]},{value:"Controlling ChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],d={toc:l},c="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(c,(0,s.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Models\\Conversation;\nuse Binkode\\ChatSystem\\Models\\Message;\nuse Binkode\\ChatSystem\\Models\\ConversationUser;\nuse Binkode\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,r.yg)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,r.yg)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,r.yg)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,r.yg)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,r.yg)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Binkode\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,r.yg)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,r.yg)("p",null,"make sure you have published the chatsystem config file. see ",(0,r.yg)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,r.yg)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/affc9ec8.07d870ee.js b/assets/js/affc9ec8.07d870ee.js deleted file mode 100644 index 0f89747..0000000 --- a/assets/js/affc9ec8.07d870ee.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2365],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return u},kt:function(){return m}});var n=t(7294);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=n.createContext({}),s=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},u=function(e){var r=s(e.components);return n.createElement(c.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(t),m=i,f=d["".concat(c,".").concat(m)]||d[m]||p[m]||o;return t?n.createElement(f,a(a({ref:r},u),{},{components:t})):n.createElement(f,a({ref:r},u))}));function m(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=d;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l.mdxType="string"==typeof e?e:i,a[1]=l;for(var s=2;sLaravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],u={toc:s};function p(e){var r=e.components,t=(0,i.Z)(e,["components"]);return(0,o.kt)("wrapper",(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"laravel-version"},(0,o.kt)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,o.kt)("p",null,"This package requires laravel 6 or higher."),(0,o.kt)("h2",{id:"php-version"},(0,o.kt)("inlineCode",{parentName:"h2"},"PHP Version")),(0,o.kt)("p",null,"This package requires php 8 or higher."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/affc9ec8.34c0629b.js b/assets/js/affc9ec8.34c0629b.js new file mode 100644 index 0000000..de88d03 --- /dev/null +++ b/assets/js/affc9ec8.34c0629b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2004],{5680:(e,r,t)=>{t.d(r,{xA:()=>p,yg:()=>v});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=n.createContext({}),c=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},p=function(e){var r=c(e.components);return n.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(t),m=a,v=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return t?n.createElement(v,o(o({ref:r},p),{},{components:t})):n.createElement(v,o({ref:r},p))}));function v(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{t.r(r),t.d(r,{contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=t(8168),a=(t(6540),t(5680));const i={id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},o=void 0,l={unversionedId:"require",id:"version-v1.0-alpha.3/require",isDocsHomePage:!1,title:"Requirements",description:"Laravel Version",source:"@site/versioned_docs/version-v1.0-alpha.3/require.md",sourceDirName:".",slug:"/requirements",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/requirements",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/require.md",version:"v1.0-alpha.3",frontMatter:{id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Installation",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/install"},next:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure"}},s=[{value:"Laravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],c={toc:s},p="wrapper";function u(e){let{components:r,...t}=e;return(0,a.yg)(p,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"laravel-version"},(0,a.yg)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,a.yg)("p",null,"This package requires laravel 6 or higher."),(0,a.yg)("h2",{id:"php-version"},(0,a.yg)("inlineCode",{parentName:"h2"},"PHP Version")),(0,a.yg)("p",null,"This package requires php 8 or higher."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4abfadd.0b5b7783.js b/assets/js/b4abfadd.0b5b7783.js new file mode 100644 index 0000000..900fa2f --- /dev/null +++ b/assets/js/b4abfadd.0b5b7783.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8711],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>v});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=n.createContext({}),c=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},u=function(e){var r=c(e.components);return n.createElement(s.Provider,{value:r},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),m=i,v=p["".concat(s,".").concat(m)]||p[m]||d[m]||o;return t?n.createElement(v,a(a({ref:r},u),{},{components:t})):n.createElement(v,a({ref:r},u))}));function v(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[p]="string"==typeof e?e:i,a[1]=l;for(var c=2;c{t.r(r),t.d(r,{contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=t(8168),i=(t(6540),t(5680));const o={id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},a=void 0,l={unversionedId:"require",id:"version-v1.0.0-beta.4/require",isDocsHomePage:!1,title:"Requirements",description:"Laravel Version",source:"@site/versioned_docs/version-v1.0.0-beta.4/require.md",sourceDirName:".",slug:"/requirements",permalink:"/laravel-chat-system/docs/requirements",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/require.md",version:"v1.0.0-beta.4",frontMatter:{id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Installation",permalink:"/laravel-chat-system/docs/install"},next:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/guides/configure"}},s=[{value:"Laravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],c={toc:s},u="wrapper";function p(e){let{components:r,...t}=e;return(0,i.yg)(u,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h2",{id:"laravel-version"},(0,i.yg)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,i.yg)("p",null,"This package requires laravel 6 or higher."),(0,i.yg)("h2",{id:"php-version"},(0,i.yg)("inlineCode",{parentName:"h2"},"PHP Version")),(0,i.yg)("p",null,"This package requires php 8 or higher."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4fbb582.1616bcd6.js b/assets/js/b4fbb582.1616bcd6.js new file mode 100644 index 0000000..669bcc5 --- /dev/null +++ b/assets/js/b4fbb582.1616bcd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2224],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>v});var n=a(6540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(a),d=r,v=m["".concat(s,".").concat(d)]||m[d]||y[d]||i;return a?n.createElement(v,o(o({ref:t},p),{},{components:a})):n.createElement(v,o({ref:t},p))}));function v(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:r,o[1]=l;for(var c=2;c{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var n=a(8168),r=(a(6540),a(5680));const i={id:"canMakeChatEvent",title:"CanMakeChatEvent APIs",sidebar_label:"CanMakeChatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent"},o=void 0,l={unversionedId:"apis/traits/chatEvent/canMakeChatEvent",id:"version-v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent",isDocsHomePage:!1,title:"CanMakeChatEvent APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent.md",sourceDirName:"apis/traits/chatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent.md",version:"v1.0.0-beta.0",frontMatter:{id:"canMakeChatEvent",title:"CanMakeChatEvent APIs",sidebar_label:"CanMakeChatEvent",slug:"/apis/traits/chatEvent/canMakeChatEvent"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent"},next:{title:"HasChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent"}},s=[{value:"Namespace",id:"namespace",children:[{value:"chatEventMakers()",id:"chateventmakers",children:[]}]}],c={toc:s},p="wrapper";function m(e){let{components:t,...a}=e;return(0,r.yg)(p,(0,n.A)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"chateventmakers"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEventMakers()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Model has many chat event makers.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"MorphMany"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?id"))," | chatEvent id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | chatEvent type to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?made_type"))," | chatEvent made_type to include | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4fbb582.8d1032c1.js b/assets/js/b4fbb582.8d1032c1.js deleted file mode 100644 index b2bd67b..0000000 --- a/assets/js/b4fbb582.8d1032c1.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8407],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),s=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),m=s(n),d=r,v=m["".concat(l,".").concat(d)]||m[d]||u[d]||i;return n?a.createElement(v,o(o({ref:t},p),{},{components:n})):a.createElement(v,o({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,o[1]=c;for(var s=2;sNamespace",id:"namespace",children:[{value:"chatEventMakers()",id:"chateventmakers",children:[]}]}],p={toc:s};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"namespace"},(0,i.kt)("strong",{parentName:"h2"},"Namespace")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,i.kt)("h3",{id:"chateventmakers"},(0,i.kt)("inlineCode",{parentName:"h3"},"chatEventMakers()")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Model has many chat event makers.")),(0,i.kt)("h4",{id:"return"},"@Return"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"type ",(0,i.kt)("inlineCode",{parentName:"li"},"MorphMany"))),(0,i.kt)("h4",{id:"params"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?id"))," | chatEvent id to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))),(0,i.kt)("h4",{id:"params-1"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?type"))," | chatEvent type to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"string"))),(0,i.kt)("h4",{id:"params-2"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?made_id"))," | chatEvent made_id to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))),(0,i.kt)("h4",{id:"params-3"},"@Params"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"strong"},"?made_type"))," | chatEvent made_type to include | ",(0,i.kt)("inlineCode",{parentName:"li"},"int"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b605f743.f760ee9b.js b/assets/js/b605f743.f760ee9b.js new file mode 100644 index 0000000..2139e21 --- /dev/null +++ b/assets/js/b605f743.f760ee9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7572],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=t.createContext({}),g=function(e){var a=t.useContext(s),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},p=function(e){var a=g(e.components);return t.createElement(s.Provider,{value:a},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=g(n),y=r,u=d["".concat(s,".").concat(y)]||d[y]||m[y]||l;return n?t.createElement(u,i(i({ref:a},p),{},{components:n})):t.createElement(u,i({ref:a},p))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=y;var o={};for(var s in a)hasOwnProperty.call(a,s)&&(o[s]=a[s]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var t=n(8168),r=(n(6540),n(5680));const l={id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},i=void 0,o={unversionedId:"apis/models/conversation",id:"apis/models/conversation",isDocsHomePage:!1,title:"Conversation APIs",description:"Namespace",source:"@site/docs/apis/models/conversation.md",sourceDirName:"apis/models",slug:"/apis/models/conversation",permalink:"/laravel-chat-system/docs/next/apis/models/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/models/conversation.md",version:"current",frontMatter:{id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},sidebar:"docs",previous:{title:"Message",permalink:"/laravel-chat-system/docs/next/apis/models/message"},next:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/next/apis/models/chatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createActivityMessage()",id:"createactivitymessage",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDeliver()",id:"makedeliver-1",children:[]}]}],g={toc:s},p="wrapper";function d(e){let{components:a,...n}=e;return(0,r.yg)(p,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Models\\Conversation")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"name")),(0,r.yg)("td",{parentName:"tr",align:null},"string","|","null"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation name")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,r.yg)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"wherehaslastmessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,r.yg)("h3",{id:"wherenotparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"createmessatewithtoken"},(0,r.yg)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,r.yg)("inlineCode",{parentName:"li"},"string|int")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,r.yg)("h3",{id:"addparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Models\\ConversationUser"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"removeparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"null|bool"))),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"createactivitymessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"createActivityMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createActivityMessage(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makedeliver"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-6"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDeliver(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"last_message"},(0,r.yg)("inlineCode",{parentName:"h3"},"last_message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,r.yg)("h3",{id:"participant"},(0,r.yg)("inlineCode",{parentName:"h3"},"participant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipants"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,r.yg)("h3",{id:"messages"},(0,r.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,r.yg)("h3",{id:"unread"},(0,r.yg)("inlineCode",{parentName:"h3"},"unread()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,r.yg)("h3",{id:"undelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,r.yg)("h3",{id:"doesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,r.yg)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,r.yg)("h3",{id:"author"},(0,r.yg)("inlineCode",{parentName:"h3"},"author()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makedeliver-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b605f743.ffcf26d9.js b/assets/js/b605f743.ffcf26d9.js deleted file mode 100644 index dd5c0f7..0000000 --- a/assets/js/b605f743.ffcf26d9.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4073],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return m},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),d=p(a),k=r,c=d["".concat(s,".").concat(k)]||d[k]||u[k]||l;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;pNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createActivityMessage()",id:"createactivitymessage",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDeliver()",id:"makedeliver-1",children:[]}]}],m={toc:p};function u(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Conversation")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"user_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"user id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"name")),(0,l.kt)("td",{parentName:"tr",align:null},"string","|","null"),(0,l.kt)("td",{parentName:"tr",align:null},"conversation name")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,l.kt)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Methods that build queries."),(0,l.kt)("h3",{id:"wherehaslastmessage"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,l.kt)("h3",{id:"wherenotparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,l.kt)("h2",{id:"util-methods"},"Util Methods"),(0,l.kt)("h3",{id:"createmessatewithtoken"},(0,l.kt)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,l.kt)("h4",{id:"return"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,l.kt)("h4",{id:"params-2"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,l.kt)("inlineCode",{parentName:"li"},"string|int")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,l.kt)("inlineCode",{parentName:"li"},"array"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,l.kt)("h3",{id:"addparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,l.kt)("h4",{id:"return-1"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\ConversationUser"))),(0,l.kt)("h4",{id:"params-3"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,l.kt)("inlineCode",{parentName:"li"},"string"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,l.kt)("h3",{id:"removeparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,l.kt)("h4",{id:"return-2"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"null|bool"))),(0,l.kt)("h4",{id:"params-4"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,l.kt)("inlineCode",{parentName:"li"},"string"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,l.kt)("h3",{id:"createactivitymessage"},(0,l.kt)("inlineCode",{parentName:"h3"},"createActivityMessage()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,l.kt)("h4",{id:"return-3"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,l.kt)("h4",{id:"params-5"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,l.kt)("inlineCode",{parentName:"li"},"array"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createActivityMessage(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,l.kt)("h3",{id:"makedelete"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"delete")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-4"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-6"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"false")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,l.kt)("h3",{id:"makeread"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"read")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-5"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-1"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-7"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"true")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,l.kt)("h3",{id:"makedeliver"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-6"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-2"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-8"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"true")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDeliver(user: $user, row: true, all: false);\n")),(0,l.kt)("h3",{id:"makechatevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"false")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"last_message"},(0,l.kt)("inlineCode",{parentName:"h3"},"last_message()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,l.kt)("h3",{id:"participants"},(0,l.kt)("inlineCode",{parentName:"h3"},"participants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,l.kt)("h3",{id:"participant"},(0,l.kt)("inlineCode",{parentName:"h3"},"participant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,l.kt)("h4",{id:"params-9"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,l.kt)("h3",{id:"otherparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,l.kt)("h4",{id:"params-10"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,l.kt)("h3",{id:"otherparticipants"},(0,l.kt)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,l.kt)("h4",{id:"params-11"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,l.kt)("h3",{id:"messages"},(0,l.kt)("inlineCode",{parentName:"h3"},"messages()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,l.kt)("h3",{id:"unread"},(0,l.kt)("inlineCode",{parentName:"h3"},"unread()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,l.kt)("h4",{id:"params-12"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,l.kt)("h3",{id:"undelivered"},(0,l.kt)("inlineCode",{parentName:"h3"},"undelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,l.kt)("h4",{id:"params-13"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,l.kt)("h3",{id:"doesnthavechatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,l.kt)("h4",{id:"params-14"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,l.kt)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,l.kt)("h3",{id:"author"},(0,l.kt)("inlineCode",{parentName:"h3"},"author()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,l.kt)("h2",{id:"collection-methods"},"Collection methods"),(0,l.kt)("p",null,"These are methods that could be called on collection of messages."),(0,l.kt)("h3",{id:"makedeliver-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,l.kt)("h4",{id:"params-15"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,l.kt)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6bce693.708cd094.js b/assets/js/b6bce693.708cd094.js new file mode 100644 index 0000000..7c2a6bb --- /dev/null +++ b/assets/js/b6bce693.708cd094.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3431],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>v});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=n.createContext({}),c=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},u=function(e){var r=c(e.components);return n.createElement(s.Provider,{value:r},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),m=i,v=p["".concat(s,".").concat(m)]||p[m]||d[m]||o;return t?n.createElement(v,a(a({ref:r},u),{},{components:t})):n.createElement(v,a({ref:r},u))}));function v(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[p]="string"==typeof e?e:i,a[1]=l;for(var c=2;c{t.r(r),t.d(r,{contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=t(8168),i=(t(6540),t(5680));const o={id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},a=void 0,l={unversionedId:"require",id:"version-v1.0.0-beta.0/require",isDocsHomePage:!1,title:"Requirements",description:"Laravel Version",source:"@site/versioned_docs/version-v1.0.0-beta.0/require.md",sourceDirName:".",slug:"/requirements",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/requirements",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/require.md",version:"v1.0.0-beta.0",frontMatter:{id:"require",title:"Requirements",sidebar_label:"Requirements",slug:"/requirements"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Installation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/install"},next:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure"}},s=[{value:"Laravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],c={toc:s},u="wrapper";function p(e){let{components:r,...t}=e;return(0,i.yg)(u,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h2",{id:"laravel-version"},(0,i.yg)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,i.yg)("p",null,"This package requires laravel 6 or higher."),(0,i.yg)("h2",{id:"php-version"},(0,i.yg)("inlineCode",{parentName:"h2"},"PHP Version")),(0,i.yg)("p",null,"This package requires php 8 or higher."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6bce693.e3e8643d.js b/assets/js/b6bce693.e3e8643d.js deleted file mode 100644 index 9c74d14..0000000 --- a/assets/js/b6bce693.e3e8643d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3818],{3905:function(e,r,t){"use strict";t.d(r,{Zo:function(){return u},kt:function(){return m}});var n=t(7294);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var s=n.createContext({}),l=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(s.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=l(t),m=i,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return t?n.createElement(f,a(a({ref:r},u),{},{components:t})):n.createElement(f,a({ref:r},u))}));function m(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=d;var c={};for(var s in r)hasOwnProperty.call(r,s)&&(c[s]=r[s]);c.originalType=e,c.mdxType="string"==typeof e?e:i,a[1]=c;for(var l=2;lLaravel Version",id:"laravel-version",children:[]},{value:"PHP Version",id:"php-version",children:[]}],u={toc:l};function p(e){var r=e.components,t=(0,i.Z)(e,["components"]);return(0,o.kt)("wrapper",(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"laravel-version"},(0,o.kt)("inlineCode",{parentName:"h2"},"Laravel Version")),(0,o.kt)("p",null,"This package requires laravel 6 or higher."),(0,o.kt)("h2",{id:"php-version"},(0,o.kt)("inlineCode",{parentName:"h2"},"PHP Version")),(0,o.kt)("p",null,"This package requires php 8 or higher."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b7a14f04.7352287f.js b/assets/js/b7a14f04.7352287f.js new file mode 100644 index 0000000..50b748f --- /dev/null +++ b/assets/js/b7a14f04.7352287f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6810],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>u});var a=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),g=c(n),m=s,u=g["".concat(l,".").concat(m)]||g[m]||d[m]||r;return n?a.createElement(u,i(i({ref:t},p),{},{components:n})):a.createElement(u,i({ref:t},p))}));function u(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[g]="string"==typeof e?e:s,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>g,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var a=n(8168),s=(n(6540),n(5680));const r={id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},i=void 0,o={unversionedId:"apis/events/message/messageEvent",id:"apis/events/message/messageEvent",isDocsHomePage:!1,title:"Message Events",description:"Namespace",source:"@site/docs/apis/events/message/events.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/events",permalink:"/laravel-chat-system/docs/next/apis/events/message/events",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/events/message/events.md",version:"current",frontMatter:{id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},sidebar:"docs",previous:{title:"HasMessage",permalink:"/laravel-chat-system/docs/next/apis/traits/message/hasMessage"},next:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/next/apis/events/message/created"}},l=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],c={toc:l},p="wrapper";function g(e){let{components:t,...n}=e;return(0,s.yg)(p,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"namespace"},(0,s.yg)("strong",{parentName:"h2"},"Namespace")),(0,s.yg)("p",null,(0,s.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Events\\Message\\Events")),(0,s.yg)("h2",{id:"broadcasts-as"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"message"))),(0,s.yg)("h2",{id:"broadcasts-when"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"event type is not (",(0,s.yg)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.yg)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.yg)("h2",{id:"broadcasts-with"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"event")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IChatEvent")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"int"))),(0,s.yg)("h2",{id:"broadcasts-on-channels"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b7a14f04.90d1f895.js b/assets/js/b7a14f04.90d1f895.js deleted file mode 100644 index 1a3553d..0000000 --- a/assets/js/b7a14f04.90d1f895.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1762],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,v=d["".concat(l,".").concat(m)]||d[m]||u[m]||s;return n?a.createElement(v,i(i({ref:t},p),{},{components:n})):a.createElement(v,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=d;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var c=2;cNamespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],p={toc:c};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Events")),(0,s.kt)("h2",{id:"broadcasts-as"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message"))),(0,s.kt)("h2",{id:"broadcasts-when"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"event type is not (",(0,s.kt)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.kt)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.kt)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.kt)("h2",{id:"broadcasts-with"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"event")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEvent")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"int"))),(0,s.kt)("h2",{id:"broadcasts-on-channels"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bba84d3d.3035f9ac.js b/assets/js/bba84d3d.3035f9ac.js new file mode 100644 index 0000000..7f4099c --- /dev/null +++ b/assets/js/bba84d3d.3035f9ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[505],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>v});var a=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(n),m=s,v=d["".concat(l,".").concat(m)]||d[m]||g[m]||r;return n?a.createElement(v,i(i({ref:t},p),{},{components:n})):a.createElement(v,i({ref:t},p))}));function v(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[d]="string"==typeof e?e:s,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var a=n(8168),s=(n(6540),n(5680));const r={id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},i=void 0,o={unversionedId:"apis/events/message/messageEvent",id:"version-v1.0.0-beta.4/apis/events/message/messageEvent",isDocsHomePage:!1,title:"Message Events",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/events/message/events.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/events",permalink:"/laravel-chat-system/docs/apis/events/message/events",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/events/message/events.md",version:"v1.0.0-beta.4",frontMatter:{id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"HasMessage",permalink:"/laravel-chat-system/docs/apis/traits/message/hasMessage"},next:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/apis/events/message/created"}},l=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],c={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,s.yg)(p,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"namespace"},(0,s.yg)("strong",{parentName:"h2"},"Namespace")),(0,s.yg)("p",null,(0,s.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Events\\Message\\Events")),(0,s.yg)("h2",{id:"broadcasts-as"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"message"))),(0,s.yg)("h2",{id:"broadcasts-when"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"event type is not (",(0,s.yg)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.yg)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.yg)("h2",{id:"broadcasts-with"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"event")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IChatEvent")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"int"))),(0,s.yg)("h2",{id:"broadcasts-on-channels"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc1d9ff3.f09fd468.js b/assets/js/bc1d9ff3.f09fd468.js new file mode 100644 index 0000000..290ef81 --- /dev/null +++ b/assets/js/bc1d9ff3.f09fd468.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3261],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=t.createContext({}),g=function(e){var a=t.useContext(s),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},p=function(e){var a=g(e.components);return t.createElement(s.Provider,{value:a},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},d=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=g(n),d=r,u=m["".concat(s,".").concat(d)]||m[d]||y[d]||l;return n?t.createElement(u,i(i({ref:a},p),{},{components:n})):t.createElement(u,i({ref:a},p))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=d;var o={};for(var s in a)hasOwnProperty.call(a,s)&&(o[s]=a[s]);o.originalType=e,o[m]="string"==typeof e?e:r,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var t=n(8168),r=(n(6540),n(5680));const l={id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},i=void 0,o={unversionedId:"apis/models/conversation",id:"version-v1.0.0-beta.0/apis/models/conversation",isDocsHomePage:!1,title:"Conversation APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/models/conversation.md",sourceDirName:"apis/models",slug:"/apis/models/conversation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/models/conversation.md",version:"v1.0.0-beta.0",frontMatter:{id:"conversation",title:"Conversation APIs",sidebar_label:"Conversation",slug:"/apis/models/conversation"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Message",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message"},next:{title:"ChatEvent",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent"}},s=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createActivityMessage()",id:"createactivitymessage",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDeliver()",id:"makedeliver-1",children:[]}]}],g={toc:s},p="wrapper";function m(e){let{components:a,...n}=e;return(0,r.yg)(p,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Conversation")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"name")),(0,r.yg)("td",{parentName:"tr",align:null},"string","|","null"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation name")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,r.yg)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Methods that build queries."),(0,r.yg)("h3",{id:"wherehaslastmessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,r.yg)("h3",{id:"wherenotparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"createmessatewithtoken"},(0,r.yg)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,r.yg)("inlineCode",{parentName:"li"},"string|int")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,r.yg)("h3",{id:"addparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\ConversationUser"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"removeparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"null|bool"))),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,r.yg)("h3",{id:"createactivitymessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"createActivityMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createActivityMessage(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-5"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makedeliver"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-6"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"true")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDeliver(user: $user, row: true, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool")," default to ",(0,r.yg)("inlineCode",{parentName:"li"},"false")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"last_message"},(0,r.yg)("inlineCode",{parentName:"h3"},"last_message()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,r.yg)("h3",{id:"participant"},(0,r.yg)("inlineCode",{parentName:"h3"},"participant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipant"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,r.yg)("h3",{id:"otherparticipants"},(0,r.yg)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,r.yg)("inlineCode",{parentName:"li"},"User"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,r.yg)("h3",{id:"messages"},(0,r.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,r.yg)("h3",{id:"unread"},(0,r.yg)("inlineCode",{parentName:"h3"},"unread()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,r.yg)("h3",{id:"undelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,r.yg)("h3",{id:"doesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,r.yg)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,r.yg)("h3",{id:"author"},(0,r.yg)("inlineCode",{parentName:"h3"},"author()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makedeliver-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,r.yg)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc1d9ff3.f8888e4f.js b/assets/js/bc1d9ff3.f8888e4f.js deleted file mode 100644 index 15c691b..0000000 --- a/assets/js/bc1d9ff3.f8888e4f.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6998],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return m},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),p=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),d=p(a),k=r,c=d["".concat(s,".").concat(k)]||d[k]||u[k]||l;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;pNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereHasLastMessage()",id:"wherehaslastmessage",children:[]},{value:"whereNotParticipant()",id:"wherenotparticipant",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"createMessateWithToken()",id:"createmessatewithtoken",children:[]},{value:"addParticipant()",id:"addparticipant",children:[]},{value:"removeParticipant()",id:"removeparticipant",children:[]},{value:"createActivityMessage()",id:"createactivitymessage",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"last_message()",id:"last_message",children:[]},{value:"participants()",id:"participants",children:[]},{value:"participant()",id:"participant",children:[]},{value:"otherParticipant()",id:"otherparticipant",children:[]},{value:"otherParticipants()",id:"otherparticipants",children:[]},{value:"messages()",id:"messages",children:[]},{value:"unread()",id:"unread",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"doesntHaveChatEvents()",id:"doesnthavechatevents",children:[]},{value:"author()",id:"author",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeDeliver()",id:"makedeliver-1",children:[]}]}],m={toc:p};function u(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Conversation")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"user_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"user id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"name")),(0,l.kt)("td",{parentName:"tr",align:null},"string","|","null"),(0,l.kt)("td",{parentName:"tr",align:null},"conversation name")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(private, group, issue)"),(0,l.kt)("td",{parentName:"tr",align:null},"type of the conversation")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Methods that build queries."),(0,l.kt)("h3",{id:"wherehaslastmessage"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereHasLastMessage()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where conversation has latest message where message is not a system message.")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg for query to exclude messages deleted by the user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Conversation::whereHasLastMessage($user)->get();\n")),(0,l.kt)("h3",{id:"wherenotparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Adds query where conversation doesn't have the given user as a participant.")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | pass user arg to query conversation where doesn't have participant equals the user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Conversation::whereNotParticipant($user)->first();\n")),(0,l.kt)("h2",{id:"util-methods"},"Util Methods"),(0,l.kt)("h3",{id:"createmessatewithtoken"},(0,l.kt)("inlineCode",{parentName:"h3"},"createMessateWithToken()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Creates a message with token.")),(0,l.kt)("h4",{id:"return"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,l.kt)("h4",{id:"params-2"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"token"))," | unique token | ",(0,l.kt)("inlineCode",{parentName:"li"},"string|int")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,l.kt)("inlineCode",{parentName:"li"},"array"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createMessageWithToken(\n $token,\n ['message' => 'hello', 'user_id' => $user->id]\n);\n")),(0,l.kt)("h3",{id:"addparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"addParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Adds a user as participant of the conversaton.")),(0,l.kt)("h4",{id:"return-1"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\ConversationUser"))),(0,l.kt)("h4",{id:"params-3"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | participant to add | ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,l.kt)("inlineCode",{parentName:"li"},"string"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,l.kt)("h3",{id:"removeparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"removeParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Removes a user as participant of the conversaton.")),(0,l.kt)("h4",{id:"return-2"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"null|bool"))),(0,l.kt)("h4",{id:"params-4"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | participant to remove | ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message text for the activity message that may be created | ",(0,l.kt)("inlineCode",{parentName:"li"},"string"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$participant = $conversation->addParticipant($user, message: 'Someone joined the conversation');\n")),(0,l.kt)("h3",{id:"createactivitymessage"},(0,l.kt)("inlineCode",{parentName:"h3"},"createActivityMessage()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Creates an activity message.")),(0,l.kt)("h4",{id:"return-3"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Models\\Message"))),(0,l.kt)("h4",{id:"params-5"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"message"))," | message props | ",(0,l.kt)("inlineCode",{parentName:"li"},"array"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $conversation->createActivityMessage(message: [\n 'user_id' => $user->id,\n 'message' => 'Hello'\n]);\n")),(0,l.kt)("h3",{id:"makedelete"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"delete")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-4"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-6"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"false")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete(user: $user, row: false, all: false);\n")),(0,l.kt)("h3",{id:"makeread"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"read")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-5"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-1"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-7"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"true")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeRead(user: $user, row: true, all: false);\n")),(0,l.kt)("h3",{id:"makedeliver"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"conversation")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-6"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-2"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-8"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"true")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDeliver(user: $user, row: true, all: false);\n")),(0,l.kt)("h3",{id:"makechatevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to make events for conversation.")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?row"))," | specify whether to always create a new chat_events db row ortherwise update or create chat_events db row. | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool")," default to ",(0,l.kt)("inlineCode",{parentName:"li"},"false")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->makeChatEvent(user: $user, type: 'delete', row: false, all: false);\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"last_message"},(0,l.kt)("inlineCode",{parentName:"h3"},"last_message()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one latest message.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->last_message()->first();\n")),(0,l.kt)("h3",{id:"participants"},(0,l.kt)("inlineCode",{parentName:"h3"},"participants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many conversation user.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->participants()->get();\n")),(0,l.kt)("h3",{id:"participant"},(0,l.kt)("inlineCode",{parentName:"h3"},"participant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one latest conversation user.")),(0,l.kt)("h4",{id:"params-9"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participant = user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->participant($user)->first();\n")),(0,l.kt)("h3",{id:"otherparticipant"},(0,l.kt)("inlineCode",{parentName:"h3"},"otherParticipant()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has one other latest conversation user.")),(0,l.kt)("h4",{id:"params-10"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participant != user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipant($user)->first();\n")),(0,l.kt)("h3",{id:"otherparticipants"},(0,l.kt)("inlineCode",{parentName:"h3"},"otherParticipants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many other latest conversation user.")),(0,l.kt)("h4",{id:"params-11"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | where participants doesn't include user | ",(0,l.kt)("inlineCode",{parentName:"li"},"User"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->otherParticipants($user)->get();\n")),(0,l.kt)("h3",{id:"messages"},(0,l.kt)("inlineCode",{parentName:"h3"},"messages()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many messages.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->messages()->get();\n")),(0,l.kt)("h3",{id:"unread"},(0,l.kt)("inlineCode",{parentName:"h3"},"unread()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many unread messages where given user is not the message sender.")),(0,l.kt)("h4",{id:"params-12"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->unread($user)->get();\n")),(0,l.kt)("h3",{id:"undelivered"},(0,l.kt)("inlineCode",{parentName:"h3"},"undelivered()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many undelivered messages where given user is not the message sender.")),(0,l.kt)("h4",{id:"params-13"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->undelivered($user)->get();\n")),(0,l.kt)("h3",{id:"doesnthavechatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"doesntHaveChatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation has many messages where given user is not the event emitter.")),(0,l.kt)("h4",{id:"params-14"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to query unread messages for. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"type"))," | message event type message should not have. | ",(0,l.kt)("inlineCode",{parentName:"li"},"enum(read|deliver|delete)"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->doesntHaveChatEvents($user, 'read')->get();\n")),(0,l.kt)("h3",{id:"author"},(0,l.kt)("inlineCode",{parentName:"h3"},"author()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation belongs to a user.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$conversation->author;\n")),(0,l.kt)("h2",{id:"collection-methods"},"Collection methods"),(0,l.kt)("p",null,"These are methods that could be called on collection of messages."),(0,l.kt)("h3",{id:"makedeliver-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark conversations as delivered,")),(0,l.kt)("h4",{id:"params-15"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign chat events to. | ",(0,l.kt)("inlineCode",{parentName:"li"},"IChatEventMaker"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c3d5df2c.09f9030d.js b/assets/js/c3d5df2c.09f9030d.js deleted file mode 100644 index ca021f3..0000000 --- a/assets/js/c3d5df2c.09f9030d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2185],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(n),m=r,v=u["".concat(l,".").concat(m)]||u[m]||d[m]||s;return n?a.createElement(v,i(i({ref:t},p),{},{components:n})):a.createElement(v,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var c=2;cNamespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],p={toc:c};function d(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Events")),(0,s.kt)("h2",{id:"broadcasts-as"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message"))),(0,s.kt)("h2",{id:"broadcasts-when"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"event type is not (",(0,s.kt)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.kt)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.kt)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.kt)("h2",{id:"broadcasts-with"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"event")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEvent")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"int"))),(0,s.kt)("h2",{id:"broadcasts-on-channels"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c3d5df2c.efaeab21.js b/assets/js/c3d5df2c.efaeab21.js new file mode 100644 index 0000000..cae0776 --- /dev/null +++ b/assets/js/c3d5df2c.efaeab21.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[655],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>v});var a=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),g=c(n),m=s,v=g["".concat(l,".").concat(m)]||g[m]||d[m]||r;return n?a.createElement(v,i(i({ref:t},p),{},{components:n})):a.createElement(v,i({ref:t},p))}));function v(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[g]="string"==typeof e?e:s,i[1]=o;for(var c=2;c{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>g,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var a=n(8168),s=(n(6540),n(5680));const r={id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},i=void 0,o={unversionedId:"apis/events/message/messageEvent",id:"version-v1.0.0-beta.0/apis/events/message/messageEvent",isDocsHomePage:!1,title:"Message Events",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/events/message/events.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/events",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/events/message/events.md",version:"v1.0.0-beta.0",frontMatter:{id:"messageEvent",title:"Message Events",sidebar_label:"Message Events",slug:"/apis/events/message/events"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"HasMessage",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage"},next:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created"}},l=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts when",id:"broadcasts-when",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],c={toc:l},p="wrapper";function g(e){let{components:t,...n}=e;return(0,s.yg)(p,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"namespace"},(0,s.yg)("strong",{parentName:"h2"},"Namespace")),(0,s.yg)("p",null,(0,s.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Events")),(0,s.yg)("h2",{id:"broadcasts-as"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"message"))),(0,s.yg)("h2",{id:"broadcasts-when"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts when")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},"event type is not (",(0,s.yg)("inlineCode",{parentName:"li"},"delete")," and event is for ",(0,s.yg)("inlineCode",{parentName:"li"},"message")," and is not ",(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id"),")")),(0,s.yg)("h2",{id:"broadcasts-with"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"event")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IChatEvent")),(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"conversation_id")," type ",(0,s.yg)("inlineCode",{parentName:"li"},"int"))),(0,s.yg)("h2",{id:"broadcasts-on-channels"},(0,s.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.yg)("ul",null,(0,s.yg)("li",{parentName:"ul"},(0,s.yg)("inlineCode",{parentName:"li"},"private-message-event.user.{$participant_id}"))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4de80f8.36c0e236.js b/assets/js/c4de80f8.36c0e236.js new file mode 100644 index 0000000..1d691a9 --- /dev/null +++ b/assets/js/c4de80f8.36c0e236.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2777],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),p=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(n),h=a,g=d["".concat(o,".").concat(h)]||d[h]||u[h]||i;return n?r.createElement(g,s(s({ref:t},c),{},{components:n})):r.createElement(g,s({ref:t},c))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=h;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[d]="string"==typeof e?e:a,s[1]=l;for(var p=2;p{n.r(t),n.d(t,{contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>o});var r=n(8168),a=(n(6540),n(5680));const i={id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},s=void 0,l={unversionedId:"install",id:"install",isDocsHomePage:!1,title:"Installation",description:"Install",source:"@site/docs/install.md",sourceDirName:".",slug:"/install",permalink:"/laravel-chat-system/docs/next/install",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/install.md",version:"current",frontMatter:{id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},sidebar:"docs",previous:{title:"Introduction",permalink:"/laravel-chat-system/docs/next/"},next:{title:"Requirements",permalink:"/laravel-chat-system/docs/next/requirements"}},o=[{value:"Install",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]},{value:"Setup User Model",id:"setup-user-model",children:[]}],p={toc:o},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(c,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"install"},(0,a.yg)("inlineCode",{parentName:"h2"},"Install")),(0,a.yg)("p",null,"Via Composer"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"composer require binkode/laravel-chat-system\n")),(0,a.yg)("h2",{id:"setup"},(0,a.yg)("inlineCode",{parentName:"h2"},"Setup")),(0,a.yg)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,a.yg)("p",null,(0,a.yg)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"config")," directory"),(0,a.yg)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,a.yg)("p",null,"migration files should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,a.yg)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,a.yg)("p",null,"seeders files should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,a.yg)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,a.yg)("p",null,"factories files should be copied to the ",(0,a.yg)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,a.yg)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Binkode\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,a.yg)("p",null,"all resources files should be copied to the respective directories"),(0,a.yg)("h2",{id:"setup-user-model"},(0,a.yg)("inlineCode",{parentName:"h2"},"Setup User Model")),(0,a.yg)("p",null,"In order to start working with chat-system, you need to setup your User model by implementing ",(0,a.yg)("strong",{parentName:"p"},"IChatEventMaker")," Interface and using the ",(0,a.yg)("a",{parentName:"p",href:"/laravel-chat-system/docs/next/apis/traits/message/hasMessage"},"HasMessage"),", ",(0,a.yg)("a",{parentName:"p",href:"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent"},"CanMakeChatEvent")," Traits."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Traits\\Message\\HasMessage;\nuse Binkode\\ChatSystem\\Traits\\ChatEvent\\CanMakeChatEvent;\nuse Binkode\\ChatSystem\\Contracts\\IChatEventMaker;\n\n\nclass User implements IChatEventMaker\n{\n use HasMessage, CanMakeChatEvent;\n...\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4de80f8.53cef5a3.js b/assets/js/c4de80f8.53cef5a3.js deleted file mode 100644 index d8ff235..0000000 --- a/assets/js/c4de80f8.53cef5a3.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7943],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=c(n),d=a,m=h["".concat(o,".").concat(d)]||h[d]||u[d]||i;return n?r.createElement(m,s(s({ref:t},p),{},{components:n})):r.createElement(m,s({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=h;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:a,s[1]=l;for(var c=2;cInstall",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]},{value:"Setup User Model",id:"setup-user-model",children:[]}],p={toc:c};function u(e){var t=e.components,n=(0,a.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"install"},(0,i.kt)("inlineCode",{parentName:"h2"},"Install")),(0,i.kt)("p",null,"Via Composer"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"composer require myckhel/laravel-chat-system\n")),(0,i.kt)("h2",{id:"setup"},(0,i.kt)("inlineCode",{parentName:"h2"},"Setup")),(0,i.kt)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"config")," directory"),(0,i.kt)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,i.kt)("p",null,"migration files should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,i.kt)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,i.kt)("p",null,"seeders files should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,i.kt)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,i.kt)("p",null,"factories files should be copied to the ",(0,i.kt)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,i.kt)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Myckhel\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,i.kt)("p",null,"all resources files should be copied to the respective directories"),(0,i.kt)("h2",{id:"setup-user-model"},(0,i.kt)("inlineCode",{parentName:"h2"},"Setup User Model")),(0,i.kt)("p",null,"In order to start working with chat-system, you need to setup your User model by implementing ",(0,i.kt)("strong",{parentName:"p"},"IChatEventMaker")," Interface and using the ",(0,i.kt)("a",{parentName:"p",href:"/laravel-chat-system/docs/next/apis/traits/message/hasMessage"},"HasMessage"),", ",(0,i.kt)("a",{parentName:"p",href:"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent"},"CanMakeChatEvent")," Traits."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Traits\\Message\\HasMessage;\nuse Myckhel\\ChatSystem\\Traits\\ChatEvent\\CanMakeChatEvent;\nuse Myckhel\\ChatSystem\\Contracts\\IChatEventMaker;\n\n\nclass User implements IChatEventMaker\n{\n use HasMessage, CanMakeChatEvent;\n...\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4e806d8.37559a28.js b/assets/js/c4e806d8.37559a28.js deleted file mode 100644 index b8815c7..0000000 --- a/assets/js/c4e806d8.37559a28.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7803],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return p},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=d(a),k=r,c=u["".concat(o,".").concat(k)]||u[k]||m[k]||l;return a?n.createElement(c,s(s({ref:t},p),{},{components:a})):n.createElement(c,s({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,s=new Array(l);s[0]=u;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var d=2;dNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereNotReadBy()",id:"wherenotreadby",children:[]},{value:"whereNotDeliveredTo()",id:"wherenotdeliveredto",children:[]},{value:"whereNotDeletedBy()",id:"wherenotdeletedby",children:[]},{value:"whereRelatedTo()",id:"whererelatedto",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDeliver()",id:"makedeliver-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],p={toc:d};function m(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Message")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"conversation_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"user_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"reply_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"reply_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"message")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"message text")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,l.kt)("td",{parentName:"tr",align:null},"message text")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"metas")),(0,l.kt)("td",{parentName:"tr",align:null},"json"),(0,l.kt)("td",{parentName:"tr",align:null},"message key values")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Message Model Query Builder APIs"),(0,l.kt)("h3",{id:"wherenotsender"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,l.kt)("h3",{id:"wherereply"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereReply()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,l.kt)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,l.kt)("h3",{id:"wheredoesnthavechatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,l.kt)("h4",{id:"params-2"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,l.kt)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"null|Closure"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,l.kt)("h3",{id:"wherenotreadby"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotReadBy()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message is not read by the given user")),(0,l.kt)("h4",{id:"params-3"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotReadBy(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"wherenotdeliveredto"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotDeliveredTo()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message is not delivered to the given user")),(0,l.kt)("h4",{id:"params-4"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeliveredTo(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"wherenotdeletedby"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotDeletedBy()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message is not deleted by the given user")),(0,l.kt)("h4",{id:"params-5"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeletedBy(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"whererelatedto"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereRelatedTo()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,l.kt)("h4",{id:"params-6"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedTo(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"hasevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,l.kt)("h4",{id:"params-7"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"callable"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,l.kt)("h3",{id:"hasnoevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,l.kt)("h4",{id:"params-8"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"callable"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,l.kt)("h3",{id:"whereconversationwasntdeleted"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,l.kt)("h4",{id:"params-9"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"whereconversationwasntdeleted-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,l.kt)("h4",{id:"params-10"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,l.kt)("h2",{id:"util-methods"},"Util Methods"),(0,l.kt)("h3",{id:"participantshasdeleted"},(0,l.kt)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,l.kt)("h4",{id:"return"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("h4",{id:"params-11"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,l.kt)("inlineCode",{parentName:"li"},"int"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,l.kt)("h3",{id:"makedelete"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"delete")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-1"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-12"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,l.kt)("h3",{id:"makeread"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"read")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-2"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-1"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-13"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,l.kt)("h3",{id:"makedeliver"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-3"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-2"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-14"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDeliver($user);\n")),(0,l.kt)("h3",{id:"participants"},(0,l.kt)("inlineCode",{parentName:"h3"},"participants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,l.kt)("h4",{id:"return-4"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,l.kt)("h4",{id:"params-15"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|user"))),(0,l.kt)("p",null,"find user from the message's participants"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"conversation"},(0,l.kt)("inlineCode",{parentName:"h3"},"conversation()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,l.kt)("h3",{id:"chatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message has many chat events")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,l.kt)("h3",{id:"sender"},(0,l.kt)("inlineCode",{parentName:"h3"},"sender()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message belongs to user")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,l.kt)("h3",{id:"reply"},(0,l.kt)("inlineCode",{parentName:"h3"},"reply()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,l.kt)("h2",{id:"collection-methods"},"Collection methods"),(0,l.kt)("p",null,"These are methods that could be called on collection of messages."),(0,l.kt)("h3",{id:"makeread-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,l.kt)("h3",{id:"makedelete-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,l.kt)("h3",{id:"makedeliver-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user, all: false);\n")),(0,l.kt)("h3",{id:"makechatevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4e806d8.fd329552.js b/assets/js/c4e806d8.fd329552.js new file mode 100644 index 0000000..85df855 --- /dev/null +++ b/assets/js/c4e806d8.fd329552.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2631],{5680:(e,a,n)=>{n.d(a,{xA:()=>d,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function s(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=t.createContext({}),g=function(e){var a=t.useContext(o),n=a;return e&&(n="function"==typeof e?e(a):s(s({},a),e)),n},d=function(e){var a=g(e.components);return t.createElement(o.Provider,{value:a},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=g(n),y=r,u=p["".concat(o,".").concat(y)]||p[y]||m[y]||l;return n?t.createElement(u,s(s({ref:a},d),{},{components:n})):t.createElement(u,s({ref:a},d))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,s=new Array(l);s[0]=y;var i={};for(var o in a)hasOwnProperty.call(a,o)&&(i[o]=a[o]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>o});var t=n(8168),r=(n(6540),n(5680));const l={id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},s=void 0,i={unversionedId:"apis/models/message",id:"apis/models/message",isDocsHomePage:!1,title:"Message APIs",description:"Namespace",source:"@site/docs/apis/models/message.md",sourceDirName:"apis/models",slug:"/apis/models/message",permalink:"/laravel-chat-system/docs/next/apis/models/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/models/message.md",version:"current",frontMatter:{id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},sidebar:"docs",previous:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/next/guides/broadcasts"},next:{title:"Conversation",permalink:"/laravel-chat-system/docs/next/apis/models/conversation"}},o=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereNotReadBy()",id:"wherenotreadby",children:[]},{value:"whereNotDeliveredTo()",id:"wherenotdeliveredto",children:[]},{value:"whereNotDeletedBy()",id:"wherenotdeletedby",children:[]},{value:"whereRelatedTo()",id:"whererelatedto",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDeliver()",id:"makedeliver-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],g={toc:o},d="wrapper";function p(e){let{components:a,...n}=e;return(0,r.yg)(d,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Models\\Message")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"conversation_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"message")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"metas")),(0,r.yg)("td",{parentName:"tr",align:null},"json"),(0,r.yg)("td",{parentName:"tr",align:null},"message key values")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Message Model Query Builder APIs"),(0,r.yg)("h3",{id:"wherenotsender"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,r.yg)("h3",{id:"wherereply"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereReply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,r.yg)("h3",{id:"wheredoesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,r.yg)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"null|Closure"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotreadby"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotReadBy()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not read by the given user")),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotReadBy(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotdeliveredto"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotDeliveredTo()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not delivered to the given user")),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeliveredTo(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotdeletedby"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotDeletedBy()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not deleted by the given user")),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeletedBy(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whererelatedto"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereRelatedTo()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedTo(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"hasevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,r.yg)("h3",{id:"hasnoevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"participantshasdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedeliver"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDeliver($user);\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|user"))),(0,r.yg)("p",null,"find user from the message's participants"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message has many chat events")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,r.yg)("h3",{id:"sender"},(0,r.yg)("inlineCode",{parentName:"h3"},"sender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to user")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,r.yg)("h3",{id:"reply"},(0,r.yg)("inlineCode",{parentName:"h3"},"reply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makeread-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedelete-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makedeliver-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.04481c7d.js b/assets/js/c4f5d8e4.04481c7d.js new file mode 100644 index 0000000..be94721 --- /dev/null +++ b/assets/js/c4f5d8e4.04481c7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2634],{4349:(e,t,a)=>{a.r(t),a.d(t,{default:()=>g});var n=a(8168),r=a(6540),s=a(53),l=a(5241),c=a(4676),o=a(4586),i=a(6025);const m={heroBanner:"heroBanner_4JBe",buttons:"buttons_TK4-",features:"features_ENLn",featureImage:"featureImage_fOUF"},u=[{title:"Message Broadcasting Events",imageUrl:"img/undraw_docusaurus_mountain.svg",description:r.createElement(r.Fragment,null,"Enjoy Message Broadcasting Features Out of the box.")},{title:"Message State Events",imageUrl:"img/undraw_docusaurus_tree.svg",description:r.createElement(r.Fragment,null,"Enjoy Message, Conversation Events Such as read, delete and deliver")},{title:"Conversation Support",imageUrl:"img/undraw_docusaurus_react.svg",description:r.createElement(r.Fragment,null,"Enjoy Message Conversation with multiple users")}];function d(e){let{imageUrl:t,title:a,description:n}=e;const l=(0,i.A)(t);return r.createElement("div",{className:(0,s.A)("col col--4",m.feature)},l&&r.createElement("div",{className:"text--center"},r.createElement("img",{className:m.featureImage,src:l,alt:a})),r.createElement("h3",null,a),r.createElement("p",null,n))}function g(){const e=(0,o.A)(),{siteConfig:t={}}=e;return r.createElement(l.A,{title:`Hello from ${t.title}`,description:"Description will go into a meta tag in "},r.createElement("header",{className:(0,s.A)("hero hero--primary",m.heroBanner)},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},t.title),r.createElement("p",{className:"hero__subtitle"},t.tagline),r.createElement("div",{className:m.buttons},r.createElement(c.A,{className:(0,s.A)("button button--outline button--secondary button--lg",m.getStarted),to:(0,i.A)("docs/")},"Get Started")))),r.createElement("main",null,u&&u.length>0&&r.createElement("section",{className:m.features},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},u.map(((e,t)=>r.createElement(d,(0,n.A)({key:t},e)))))))))}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.fa41d86e.js b/assets/js/c4f5d8e4.fa41d86e.js deleted file mode 100644 index f2a59c6..0000000 --- a/assets/js/c4f5d8e4.fa41d86e.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4195],{6252:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return g}});var n=a(2122),r=a(7294),s=a(6010),l=a(6016),c=a(6742),i=a(2263),o=a(4996),u={heroBanner:"heroBanner_3P7f",buttons:"buttons_1r9m",features:"features_3azU",featureImage:"featureImage_ZtzX"},m=[{title:"Message Broadcasting Events",imageUrl:"img/undraw_docusaurus_mountain.svg",description:r.createElement(r.Fragment,null,"Enjoy Message Broadcasting Features Out of the box.")},{title:"Message State Events",imageUrl:"img/undraw_docusaurus_tree.svg",description:r.createElement(r.Fragment,null,"Enjoy Message, Conversation Events Such as read, delete and deliver")},{title:"Conversation Support",imageUrl:"img/undraw_docusaurus_react.svg",description:r.createElement(r.Fragment,null,"Enjoy Message Conversation with multiple users")}];function d(e){var t=e.imageUrl,a=e.title,n=e.description,l=(0,o.Z)(t);return r.createElement("div",{className:(0,s.Z)("col col--4",u.feature)},l&&r.createElement("div",{className:"text--center"},r.createElement("img",{className:u.featureImage,src:l,alt:a})),r.createElement("h3",null,a),r.createElement("p",null,n))}function g(){var e=(0,i.Z)().siteConfig,t=void 0===e?{}:e;return r.createElement(l.Z,{title:"Hello from "+t.title,description:"Description will go into a meta tag in "},r.createElement("header",{className:(0,s.Z)("hero hero--primary",u.heroBanner)},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},t.title),r.createElement("p",{className:"hero__subtitle"},t.tagline),r.createElement("div",{className:u.buttons},r.createElement(c.Z,{className:(0,s.Z)("button button--outline button--secondary button--lg",u.getStarted),to:(0,o.Z)("docs/")},"Get Started")))),r.createElement("main",null,m&&m.length>0&&r.createElement("section",{className:u.features},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},m.map((function(e,t){return r.createElement(d,(0,n.Z)({key:t},e))})))))))}}}]); \ No newline at end of file diff --git a/assets/js/c6e24a80.0e5e987f.js b/assets/js/c6e24a80.0e5e987f.js deleted file mode 100644 index af12daf..0000000 --- a/assets/js/c6e24a80.0e5e987f.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7682],{5704:function(a){"use strict";a.exports=JSON.parse('{"hello":{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"hello","name":"hello","count":1,"permalink":"/laravel-chat-system/blog/tags/hello"},"docusaurus":{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"docusaurus","name":"docusaurus","count":1,"permalink":"/laravel-chat-system/blog/tags/docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/c6e24a80.85609745.js b/assets/js/c6e24a80.85609745.js new file mode 100644 index 0000000..597ba22 --- /dev/null +++ b/assets/js/c6e24a80.85609745.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6020],{2845:a=>{a.exports=JSON.parse('{"hello":{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"hello","name":"hello","count":1,"permalink":"/laravel-chat-system/blog/tags/hello"},"docusaurus":{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"docusaurus","name":"docusaurus","count":1,"permalink":"/laravel-chat-system/blog/tags/docusaurus"}}')}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.111cf70a.js b/assets/js/ccc49370.111cf70a.js deleted file mode 100644 index d9b3880..0000000 --- a/assets/js/ccc49370.111cf70a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6103],{3146:function(e,t,a){"use strict";a.d(t,{Z:function(){return p}});var n=a(7294),r=a(6010),l=a(3905),i=a(4973),s=a(6742),o=a(9306),c=a(7277),m=a(1217),d=a(6146),u="blogPostTitle_GeHD",g="blogPostData_291c",v="blogPostDetailsFull_3kfx";var p=function(e){var t,a,p,E=(a=(0,o.c2)().selectMessage,function(e){var t=Math.ceil(e);return a(t,(0,i.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:t}))}),h=e.children,b=e.frontMatter,f=e.metadata,_=e.truncated,N=e.isBlogPostPage,Z=void 0!==N&&N,k=f.date,T=f.formattedDate,I=f.permalink,w=f.tags,L=f.readingTime,P=f.title,x=f.editUrl,C=b.author,y=b.image,M=b.keywords,R=b.author_url||b.authorURL,A=b.author_title||b.authorTitle,B=b.author_image_url||b.authorImageURL;return n.createElement(n.Fragment,null,n.createElement(m.Z,{keywords:M,image:y}),n.createElement("article",{className:Z?void 0:"margin-bottom--xl"},(p=Z?"h1":"h2",n.createElement("header",null,n.createElement(p,{className:u},Z?P:n.createElement(s.Z,{to:I},P)),n.createElement("div",{className:(0,r.Z)(g,"margin-vert--md")},n.createElement("time",{dateTime:k},T),L&&n.createElement(n.Fragment,null," \xb7 ",E(L))),n.createElement("div",{className:"avatar margin-vert--md"},B&&n.createElement(s.Z,{className:"avatar__photo-link avatar__photo",href:R},n.createElement("img",{src:B,alt:C})),n.createElement("div",{className:"avatar__intro"},C&&n.createElement(n.Fragment,null,n.createElement("div",{className:"avatar__name"},n.createElement(s.Z,{href:R},C)),n.createElement("small",{className:"avatar__subtitle"},A)))))),n.createElement("div",{className:"markdown"},n.createElement(l.Zo,{components:c.Z},h)),(w.length>0||_)&&n.createElement("footer",{className:(0,r.Z)("row docusaurus-mt-lg",(t={},t[v]=Z,t))},w.length>0&&n.createElement("div",{className:"col"},n.createElement("b",null,n.createElement(i.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),w.map((function(e){var t=e.label,a=e.permalink;return n.createElement(s.Z,{key:a,className:"margin-horiz--sm",to:a},t)}))),Z&&x&&n.createElement("div",{className:"col margin-top--sm"},n.createElement(d.Z,{editUrl:x})),!Z&&_&&n.createElement("div",{className:"col text--right"},n.createElement(s.Z,{to:f.permalink,"aria-label":"Read more about "+P},n.createElement("b",null,n.createElement(i.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More")))))))}},4147:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return u}});var n=a(7294),r=a(6016),l=a(3146),i=a(4973),s=a(6742);var o=function(e){var t=e.nextItem,a=e.prevItem;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n.createElement("div",{className:"pagination-nav__item"},a&&n.createElement(s.Z,{className:"pagination-nav__link",to:a.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(i.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")),n.createElement("div",{className:"pagination-nav__label"},"\xab ",a.title))),n.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t&&n.createElement(s.Z,{className:"pagination-nav__link",to:t.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(i.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post")),n.createElement("div",{className:"pagination-nav__label"},t.title," \xbb"))))},c=a(5601),m=a(571),d=a(9306);var u=function(e){var t=e.content,a=e.sidebar,i=t.frontMatter,s=t.metadata,u=s.title,g=s.description,v=s.nextItem,p=s.prevItem,E=i.hide_table_of_contents;return n.createElement(r.Z,{title:u,description:g,wrapperClassName:d.kM.wrapper.blogPages,pageClassName:d.kM.page.blogPostPage},t&&n.createElement("div",{className:"container margin-vert--lg"},n.createElement("div",{className:"row"},n.createElement("aside",{className:"col col--3"},n.createElement(c.Z,{sidebar:a})),n.createElement("main",{className:"col col--7"},n.createElement(l.Z,{frontMatter:i,metadata:s,isBlogPostPage:!0},n.createElement(t,null)),(v||p)&&n.createElement(o,{nextItem:v,prevItem:p})),!E&&t.toc&&n.createElement("div",{className:"col col--2"},n.createElement(m.Z,{toc:t.toc})))))}},5601:function(e,t,a){"use strict";a.d(t,{Z:function(){return g}});var n=a(7294),r=a(6010),l=a(6742),i="sidebar_2ahu",s="sidebarItemTitle_2hhb",o="sidebarItemList_2xAf",c="sidebarItem_2UVv",m="sidebarItemLink_1RT6",d="sidebarItemLinkActive_12pM",u=a(4973);function g(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,r.Z)(i,"thin-scrollbar"),"aria-label":(0,u.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},n.createElement("div",{className:(0,r.Z)(s,"margin-bottom--md")},t.title),n.createElement("ul",{className:o},t.items.map((function(e){return n.createElement("li",{key:e.permalink,className:c},n.createElement(l.Z,{isNavLink:!0,to:e.permalink,className:m,activeClassName:d},e.title))}))))}},6146:function(e,t,a){"use strict";a.d(t,{Z:function(){return m}});var n=a(7294),r=a(4973),l=a(2122),i=a(9756),s=a(6010),o="iconEdit_2_ui",c=function(e){var t=e.className,a=(0,i.Z)(e,["className"]);return n.createElement("svg",(0,l.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.Z)(o,t),"aria-hidden":"true"},a),n.createElement("g",null,n.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function m(e){var t=e.editUrl;return n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},n.createElement(c,null),n.createElement(r.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},571:function(e,t,a){"use strict";a.d(t,{Z:function(){return c}});var n=a(7294),r=a(6010);var l=function(e,t,a){var r=(0,n.useState)(void 0),l=r[0],i=r[1];(0,n.useEffect)((function(){function n(){var n=function(){var e=Array.from(document.getElementsByClassName("anchor")),t=e.find((function(e){return e.getBoundingClientRect().top>=a}));if(t){if(t.getBoundingClientRect().top>=a){var n=e[e.indexOf(t)-1];return null!=n?n:t}return t}return e[e.length-1]}();if(n)for(var r=0,s=!1,o=document.getElementsByClassName(e);r{a.d(t,{A:()=>b});var n=a(6540),l=a(53),r=a(5680),s=a(4798),i=a(4676),o=a(3155),m=a(8607),c=a(8139),d=a(6458);const g="blogPostTitle_d4p0",u="blogPostData_-Im+",p="blogPostDetailsFull_xD8n";const b=function(e){const t=function(){const{selectMessage:e}=(0,o.Ww)();return t=>{const a=Math.ceil(t);return e(a,(0,s.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}(),{children:a,frontMatter:b,metadata:E,truncated:v,isBlogPostPage:h=!1}=e,{date:_,formattedDate:f,permalink:N,tags:A,readingTime:k,title:I,editUrl:T}=E,{author:L,image:w,keywords:P}=b,C=b.author_url||b.authorURL,x=b.author_title||b.authorTitle,y=b.author_image_url||b.authorImageURL;return n.createElement(n.Fragment,null,n.createElement(c.A,{keywords:P,image:w}),n.createElement("article",{className:h?void 0:"margin-bottom--xl"},(()=>{const e=h?"h1":"h2";return n.createElement("header",null,n.createElement(e,{className:g},h?I:n.createElement(i.A,{to:N},I)),n.createElement("div",{className:(0,l.A)(u,"margin-vert--md")},n.createElement("time",{dateTime:_},f),k&&n.createElement(n.Fragment,null," \xb7 ",t(k))),n.createElement("div",{className:"avatar margin-vert--md"},y&&n.createElement(i.A,{className:"avatar__photo-link avatar__photo",href:C},n.createElement("img",{src:y,alt:L})),n.createElement("div",{className:"avatar__intro"},L&&n.createElement(n.Fragment,null,n.createElement("div",{className:"avatar__name"},n.createElement(i.A,{href:C},L)),n.createElement("small",{className:"avatar__subtitle"},x)))))})(),n.createElement("div",{className:"markdown"},n.createElement(r.xA,{components:m.A},a)),(A.length>0||v)&&n.createElement("footer",{className:(0,l.A)("row docusaurus-mt-lg",{[p]:h})},A.length>0&&n.createElement("div",{className:"col"},n.createElement("b",null,n.createElement(s.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),A.map((e=>{let{label:t,permalink:a}=e;return n.createElement(i.A,{key:a,className:"margin-horiz--sm",to:a},t)}))),h&&T&&n.createElement("div",{className:"col margin-top--sm"},n.createElement(d.A,{editUrl:T})),!h&&v&&n.createElement("div",{className:"col text--right"},n.createElement(i.A,{to:E.permalink,"aria-label":`Read more about ${I}`},n.createElement("b",null,n.createElement(s.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More")))))))}},2111:(e,t,a)=>{a.r(t),a.d(t,{default:()=>g});var n=a(6540),l=a(5241),r=a(9178),s=a(4798),i=a(4676);const o=function(e){const{nextItem:t,prevItem:a}=e;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n.createElement("div",{className:"pagination-nav__item"},a&&n.createElement(i.A,{className:"pagination-nav__link",to:a.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(s.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")),n.createElement("div",{className:"pagination-nav__label"},"\xab ",a.title))),n.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t&&n.createElement(i.A,{className:"pagination-nav__link",to:t.permalink},n.createElement("div",{className:"pagination-nav__sublabel"},n.createElement(s.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post")),n.createElement("div",{className:"pagination-nav__label"},t.title," \xbb"))))};var m=a(9937),c=a(1461),d=a(3155);const g=function(e){const{content:t,sidebar:a}=e,{frontMatter:s,metadata:i}=t,{title:g,description:u,nextItem:p,prevItem:b}=i,{hide_table_of_contents:E}=s;return n.createElement(l.A,{title:g,description:u,wrapperClassName:d.GN.wrapper.blogPages,pageClassName:d.GN.page.blogPostPage},t&&n.createElement("div",{className:"container margin-vert--lg"},n.createElement("div",{className:"row"},n.createElement("aside",{className:"col col--3"},n.createElement(m.A,{sidebar:a})),n.createElement("main",{className:"col col--7"},n.createElement(r.A,{frontMatter:s,metadata:i,isBlogPostPage:!0},n.createElement(t,null)),(p||b)&&n.createElement(o,{nextItem:p,prevItem:b})),!E&&t.toc&&n.createElement("div",{className:"col col--2"},n.createElement(c.A,{toc:t.toc})))))}},9937:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6540),l=a(53),r=a(4676);const s={sidebar:"sidebar_q+wC",sidebarItemTitle:"sidebarItemTitle_9G5K",sidebarItemList:"sidebarItemList_6T4b",sidebarItem:"sidebarItem_cjdF",sidebarItemLink:"sidebarItemLink_zyXk",sidebarItemLinkActive:"sidebarItemLinkActive_wcJs"};var i=a(4798);function o(e){let{sidebar:t}=e;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.A)(s.sidebar,"thin-scrollbar"),"aria-label":(0,i.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},n.createElement("div",{className:(0,l.A)(s.sidebarItemTitle,"margin-bottom--md")},t.title),n.createElement("ul",{className:s.sidebarItemList},t.items.map((e=>n.createElement("li",{key:e.permalink,className:s.sidebarItem},n.createElement(r.A,{isNavLink:!0,to:e.permalink,className:s.sidebarItemLink,activeClassName:s.sidebarItemLinkActive},e.title))))))}},6458:(e,t,a)=>{a.d(t,{A:()=>m});var n=a(6540),l=a(4798),r=a(8168),s=a(53);const i="iconEdit_mS5F",o=e=>{let{className:t,...a}=e;return n.createElement("svg",(0,r.A)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(i,t),"aria-hidden":"true"},a),n.createElement("g",null,n.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))};function m(e){let{editUrl:t}=e;return n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},n.createElement(o,null),n.createElement(l.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},1461:(e,t,a)=>{a.d(t,{A:()=>m});var n=a(6540),l=a(53);const r=function(e,t,a){const[l,r]=(0,n.useState)(void 0);(0,n.useEffect)((()=>{function n(){const n=function(){const e=Array.from(document.getElementsByClassName("anchor")),t=e.find((e=>{const{top:t}=e.getBoundingClientRect();return t>=a}));if(t){if(t.getBoundingClientRect().top>=a){return e[e.indexOf(t)-1]??t}return t}return e[e.length-1]}();if(n){let a=0,s=!1;const i=document.getElementsByClassName(e);for(;a{document.removeEventListener("scroll",n),document.removeEventListener("resize",n)}}))},s="tableOfContents_vrFS",i="table-of-contents__link";function o(e){let{toc:t,isChild:a}=e;return t.length?n.createElement("ul",{className:a?"":"table-of-contents table-of-contents__left-border"},t.map((e=>n.createElement("li",{key:e.id},n.createElement("a",{href:`#${e.id}`,className:i,dangerouslySetInnerHTML:{__html:e.value}}),n.createElement(o,{isChild:!0,toc:e.children}))))):null}const m=function(e){let{toc:t}=e;return r(i,"table-of-contents__link--active",100),n.createElement("div",{className:(0,l.A)(s,"thin-scrollbar")},n.createElement(o,{toc:t}))}}}]); \ No newline at end of file diff --git a/assets/js/cf597cf6.8bba3131.js b/assets/js/cf597cf6.8bba3131.js deleted file mode 100644 index 71dc5bc..0000000 --- a/assets/js/cf597cf6.8bba3131.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1438],{3905:function(e,n,t){"use strict";t.d(n,{Zo:function(){return u},kt:function(){return h}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=l(t),h=o,p=d["".concat(c,".").concat(h)]||d[h]||m[h]||s;return t?r.createElement(p,a(a({ref:n},u),{},{components:t})):r.createElement(p,a({ref:n},u))}));function h(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var s=t.length,a=new Array(s);a[0]=d;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,a[1]=i;for(var l=2;l [\n /*\n * The model you want to use as a User model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Myckhel\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Myckhel\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\Message`\n */\n "message" => Myckhel\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Myckhel\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Myckhel\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Myckhel\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Myckhel\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Myckhel\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cf597cf6.c728b076.js b/assets/js/cf597cf6.c728b076.js new file mode 100644 index 0000000..3ebcf41 --- /dev/null +++ b/assets/js/cf597cf6.c728b076.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1956],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>h});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=l(t),p=o,h=d["".concat(c,".").concat(p)]||d[p]||m[p]||s;return t?r.createElement(h,a(a({ref:n},u),{},{components:t})):r.createElement(h,a({ref:n},u))}));function h(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var s=t.length,a=new Array(s);a[0]=p;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{t.r(n),t.d(n,{contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var r=t(8168),o=(t(6540),t(5680));const s={id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},a=void 0,i={unversionedId:"guides/configure",id:"guides/configure",isDocsHomePage:!1,title:"ChatSystem configuration",description:"Publish config file",source:"@site/docs/guides/configure.md",sourceDirName:"guides",slug:"/guides/configure",permalink:"/laravel-chat-system/docs/next/guides/configure",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/configure.md",version:"current",frontMatter:{id:"configure",title:"ChatSystem configuration",sidebar_label:"Configuring ChatSystem",slug:"/guides/configure"},sidebar:"docs",previous:{title:"Requirements",permalink:"/laravel-chat-system/docs/next/requirements"},next:{title:"Using Providers",permalink:"/laravel-chat-system/docs/next/guides/providers"}},c=[{value:"Publish config file",id:"publish-config-file",children:[]}],l={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,o.yg)(u,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h2",{id:"publish-config-file"},"Publish config file"),(0,o.yg)("p",null,"publish the config file if not published"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Binkode\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-php"},'\nreturn [\n /*\n * ChatSystem Models\n */\n "models" => [\n /*\n * The model you want to use as a User model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IChatEventMaker` contract.\n */\n "user" => "App\\\\Models\\\\User",\n \n /*\n * The model you want to use as a Conversation model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IConversation` contract.\n */\n "conversation" => Binkode\\ChatSystem\\Models\\Conversation::class,\n \n /*\n * The model you want to use as a ConversationUser model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IConversationUser` contract or extends the\n * `Binkode\\ChatSystem\\Models\\ConversationUser`\n */\n "conversation_user" => Binkode\\ChatSystem\\Models\\ConversationUser::class,\n \n /*\n * The model you want to use as a Message model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IMessage` contract or extends the\n * `Binkode\\ChatSystem\\Models\\Message`\n */\n "message" => Binkode\\ChatSystem\\Models\\Message::class,\n \n /*\n * The model you want to use as a ChatEvent model needs to implement the\n * `Binkode\\ChatSystem\\Contracts\\IChatEvent` contract or extends the\n * `Binkode\\ChatSystem\\Models\\ChatEvent`\n */\n "chat_event" => Binkode\\ChatSystem\\Models\\ChatEvent::class,\n ],\n\n /*\n * ChatSystem Routes\n * Change if you want to add middleware or prefix to\n * chatSystem routes.\n */\n "route" => [\n "middlewares" => [\'api\'],\n "prefix" => \'api\'\n ],\n\n /*\n * Events Queues\n * Change if you want to rename the broadcast queue\n */\n "queues" => [\n "events" => [\n "message" => [\n "created" => "chat",\n "events" => "chat-event",\n ],\n ],\n "jobs" => [\n "chat" => [\n "make-event" => "chat-event",\n ],\n ],\n ],\n\n /*\n * Model Observers\n * The class you want to use for model Observer\n */\n "observers" => [\n "models" => [\n "chat_event" => Binkode\\ChatSystem\\Observers\\ChatEventObserver::class,\n "conversation" => Binkode\\ChatSystem\\Observers\\ConversationObserver::class,\n ]\n ]\n];\n\n\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d1105fff.788c4674.js b/assets/js/d1105fff.788c4674.js deleted file mode 100644 index 0308efa..0000000 --- a/assets/js/d1105fff.788c4674.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8869],{3905:function(e,r,n){"use strict";n.d(r,{Zo:function(){return p},kt:function(){return v}});var t=n(7294);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=t.createContext({}),d=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=d(e.components);return t.createElement(c.Provider,{value:r},e.children)},l={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=d(n),v=s,m=u["".concat(c,".").concat(v)]||u[v]||l[v]||i;return n?t.createElement(m,o(o({ref:r},p),{},{components:n})):t.createElement(m,o({ref:r},p))}));function v(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=u;var a={};for(var c in r)hasOwnProperty.call(r,c)&&(a[c]=r[c]);a.originalType=e,a.mdxType="string"==typeof e?e:s,o[1]=a;for(var d=2;dRegistering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],p={toc:d};function l(e){var r=e.components,n=(0,s.Z)(e,["components"]);return(0,i.kt)("wrapper",(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"registering-providers"},"Registering Providers"),(0,i.kt)("h3",{id:"registering-observers"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,i.kt)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,i.kt)("h3",{id:"registering-policies"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,i.kt)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,i.kt)("h3",{id:"registering-broadcast-routes"},(0,i.kt)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,i.kt)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,i.kt)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,i.kt)("h3",{id:"overriding-chatsystem-observer-methods"},(0,i.kt)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,i.kt)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Myckhel\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Myckhel\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,i.kt)("p",null,"Then you have to unregister the extended observer registered with ",(0,i.kt)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,i.kt)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,i.kt)("h3",{id:"overriding-chatsystem-policy-methods"},(0,i.kt)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,i.kt)("p",null,"You may want to overried some specific Policy methods such as ",(0,i.kt)("inlineCode",{parentName:"p"},"view"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"delete")," method."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Myckhel\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\nuse Myckhel\\ChatSystem\\Contracts\\IChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(IChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(IChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d1105fff.90fda3ca.js b/assets/js/d1105fff.90fda3ca.js new file mode 100644 index 0000000..ab6ae29 --- /dev/null +++ b/assets/js/d1105fff.90fda3ca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7724],{5680:(e,r,n)=>{n.d(r,{xA:()=>p,yg:()=>g});var t=n(6540);function s(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function i(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var r=1;r=0||(s[n]=e[n]);return s}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=t.createContext({}),d=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},p=function(e){var r=d(e.components);return t.createElement(c.Provider,{value:r},e.children)},l="mdxType",v={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,s=e.mdxType,i=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),l=d(n),u=s,g=l["".concat(c,".").concat(u)]||l[u]||v[u]||i;return n?t.createElement(g,o(o({ref:r},p),{},{components:n})):t.createElement(g,o({ref:r},p))}));function g(e,r){var n=arguments,s=r&&r.mdxType;if("string"==typeof e||s){var i=n.length,o=new Array(i);o[0]=u;var a={};for(var c in r)hasOwnProperty.call(r,c)&&(a[c]=r[c]);a.originalType=e,a[l]="string"==typeof e?e:s,o[1]=a;for(var d=2;d{n.r(r),n.d(r,{contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=n(8168),s=(n(6540),n(5680));const i={id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},o=void 0,a={unversionedId:"guides/providers",id:"version-v1.0.0-beta.0/guides/providers",isDocsHomePage:!1,title:"ChatSystem Providers",description:"Registering Providers",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/providers.md",sourceDirName:"guides",slug:"/guides/providers",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/providers.md",version:"v1.0.0-beta.0",frontMatter:{id:"providers",title:"ChatSystem Providers",sidebar_label:"Using Providers",slug:"/guides/providers"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Configuring ChatSystem",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure"},next:{title:"Using Models",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models"}},c=[{value:"Registering Providers",id:"registering-providers",children:[{value:"Registering Observers",id:"registering-observers",children:[]},{value:"Registering Policies",id:"registering-policies",children:[]},{value:"Registering Broadcast Routes",id:"registering-broadcast-routes",children:[]}]},{value:"Overriding Providers",id:"overriding-providers",children:[{value:"Overriding ChatSystem Observer Methods",id:"overriding-chatsystem-observer-methods",children:[]},{value:"Overriding ChatSystem Policy Methods",id:"overriding-chatsystem-policy-methods",children:[]}]}],d={toc:c},p="wrapper";function l(e){let{components:r,...n}=e;return(0,s.yg)(p,(0,t.A)({},d,n,{components:r,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"registering-providers"},"Registering Providers"),(0,s.yg)("h3",{id:"registering-observers"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Observers")),(0,s.yg)("p",null,"ChatSystem provides observer to listen to model events.\nMake sure you register the observers in your Application Service Provider."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers();\n }\n")),(0,s.yg)("h3",{id:"registering-policies"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Policies")),(0,s.yg)("p",null,"ChatSystem provides policies to authenticate its api endpoints.\nMake sure you register the policies in your application Auth Service Provider if you are using Built in ChatSystem api endpoints."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AuthServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerPolicies();\n }\n")),(0,s.yg)("h3",{id:"registering-broadcast-routes"},(0,s.yg)("inlineCode",{parentName:"h3"},"Registering Broadcast Routes")),(0,s.yg)("p",null,"ChatSystem provides broadcast routes to broadcast events on some specific channels.\nMake sure you register the broadcast routes in your Broadcast Service Provider if you will be listening to the broadcast channels provided by ChatSystem."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\BroadcastServiceProvider.php\n\nuse ChatSystem;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerBroadcastRoutes();\n }\n")),(0,s.yg)("h2",{id:"overriding-providers"},"Overriding Providers"),(0,s.yg)("h3",{id:"overriding-chatsystem-observer-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Observer Methods")),(0,s.yg)("p",null,"You may want to overried some specific Observers methods.\nFor example you may want to create system messages everytime a conversation is created."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Observers;\nuse Myckhel\\ChatSystem\\Observers\\ConversationObserver as BaseConversationObserver;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\n\nclass ConversationObserver extends BaseConversationObserver\n{\n /**\n * Handle the conversation \"created\" event.\n *\n * @param \\Myckhel\\ChatSystem\\Contracts\\IConversation $conversation\n * @return void\n */\n public function created(IConversation $conversation)\n {\n $messages = $conversation->messages()->createMany([\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.safety'),\n 'type' => 'system'\n ],\n [\n 'user_id' => $conversation->user_id,\n 'message' => trans('msg.chat.system.msg_desc'),\n 'type' => 'system'\n ],\n ]);\n }\n}\n")),(0,s.yg)("p",null,"Then you have to unregister the extended observer registered with ",(0,s.yg)("inlineCode",{parentName:"p"},"ChatSystem::registerObservers()")," by passing ",(0,s.yg)("inlineCode",{parentName:"p"},"exclude")," argument."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"// App\\Providers\\AppServiceProvider.php\n\nuse ChatSystem;\nuse App\\Models\\Conversation;\nuse App\\Observers\\ConversationObserver;\n...\n public function boot()\n {\n ...\n\n ChatSystem::registerObservers(exclude: ['conversation' => true]);\n\n Conversation::observe(ConversationObserver::class);\n }\n")),(0,s.yg)("h3",{id:"overriding-chatsystem-policy-methods"},(0,s.yg)("inlineCode",{parentName:"h3"},"Overriding ChatSystem Policy Methods")),(0,s.yg)("p",null,"You may want to overried some specific Policy methods such as ",(0,s.yg)("inlineCode",{parentName:"p"},"view"),", ",(0,s.yg)("inlineCode",{parentName:"p"},"delete")," method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"...\nnamespace App\\Policies;\n\nuse App\\Models\\Conversation;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\nuse Myckhel\\ChatSystem\\Policies\\ConversationPolicy as CSCP;\nuse Myckhel\\ChatSystem\\Contracts\\IConversation;\nuse Myckhel\\ChatSystem\\Contracts\\IChatEventMaker;\n\nclass ConversationPolicy extends CSCP\n{\n use HandlesAuthorization;\n\n /**\n * Determine whether the user can view the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function view(IChatEventMaker $user, IConversation $conversation)\n {\n return in_array($conversation->type, ['issue', 'group'])\n || $user->relatedToConversation($conversation);\n }\n\n /**\n * Determine whether the user can delete the model.\n *\n * @param \\App\\User $user\n * @param \\App\\Models\\Conversation $conversation\n * @return mixed\n */\n public function delete(IChatEventMaker $user, IConversation $conversation)\n {\n return $user->relatedToConversation($conversation);\n }\n}\n")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d19a2e56.4dacf5ef.js b/assets/js/d19a2e56.4dacf5ef.js deleted file mode 100644 index 475b59b..0000000 --- a/assets/js/d19a2e56.4dacf5ef.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[621],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,s=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=l(n),m=s,h=d["".concat(c,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(h,a(a({ref:t},p),{},{components:n})):r.createElement(h,a({ref:t},p))}));function m(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var o=n.length,a=new Array(o);a[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:s,a[1]=i;for(var l=2;l{n.d(t,{xA:()=>c,yg:()=>h});var r=n(6540);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(s[n]=e[n]);return s}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,s=e.mdxType,a=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=s,h=u["".concat(l,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(h,o(o({ref:t},c),{},{components:n})):r.createElement(h,o({ref:t},c))}));function h(e,t){var n=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var a=n.length,o=new Array(a);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:s,o[1]=i;for(var p=2;p{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var r=n(8168),s=(n(6540),n(5680));const a={id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},o=void 0,i={unversionedId:"guides/guides.routes",id:"version-v1.0.0-beta.0/guides/guides.routes",isDocsHomePage:!1,title:"Using Routes",description:"ChatSystem provides basic usage through some route endpoints.",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/routes.md",sourceDirName:"guides",slug:"/guides/routes",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/routes.md",version:"v1.0.0-beta.0",frontMatter:{id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Using Models",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models"},next:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation"}},l=[],p={toc:l},c="wrapper";function u(e){let{components:t,...n}=e;return(0,s.yg)(c,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.yg)("p",null,"ChatSystem provides basic usage through some route endpoints.\nYou may make use of them if suites your use cases."),(0,s.yg)("p",null,"Checkout api documentation for each route below: ",(0,s.yg)("a",{parentName:"p",href:"https://documenter.getpostman.com/view/9558301/TzXwEyDq#83bc243b-8297-417d-9fd8-18a557e4826e"},"Postman documentation link"),"."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre"},"+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| Domain | Method | URI | Name | Action | Middleware |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| | GET|HEAD | api/chat_events | chat_events.index | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/chat_events | chat_events.store | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/chat_events/{chat_event} | chat_events.show | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/chat_events/{chat_event} | chat_events.update | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/chat_events/{chat_event} | chat_events.destroy | Myckhel\\ChatSystem\\Http\\Controllers\\ChatEventController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations | conversations.index | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/conversations | conversations.store | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/count | generated::qP7MgZeXOQ2KO9kH | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@count | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/{conversation} | conversations.show | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/conversations/{conversation} | conversations.update | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/conversations/{conversation} | conversations.destroy | Myckhel\\ChatSystem\\Http\\Controllers\\ConversationController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages | generated::P5UtLfEaXJNWQUcU | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@delete | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages | messages.index | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/messages | messages.store | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages/{message} | messages.show | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/messages/{message} | messages.update | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages/{message} | messages.destroy | Myckhel\\ChatSystem\\Http\\Controllers\\MessageController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2420314.7e9bc5e6.js b/assets/js/d2420314.7e9bc5e6.js new file mode 100644 index 0000000..dd3fadc --- /dev/null +++ b/assets/js/d2420314.7e9bc5e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5507],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>p});var s=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=s.createContext({}),d=function(e){var t=s.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(i.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),g=d(n),u=r,p=g["".concat(i,".").concat(u)]||g[u]||m[u]||o;return n?s.createElement(p,a(a({ref:t},c),{},{components:n})):s.createElement(p,a({ref:t},c))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=u;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[g]="string"==typeof e?e:r,a[1]=l;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>a,default:()=>g,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var s=n(8168),r=(n(6540),n(5680));const o={id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},a=void 0,l={unversionedId:"guides/models",id:"guides/models",isDocsHomePage:!1,title:"ChatSystem Models",description:"Using ChatSystem Models",source:"@site/docs/guides/models.md",sourceDirName:"guides",slug:"/guides/models",permalink:"/laravel-chat-system/docs/next/guides/models",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/models.md",version:"current",frontMatter:{id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},sidebar:"docs",previous:{title:"Using Providers",permalink:"/laravel-chat-system/docs/next/guides/providers"},next:{title:"Using Routes",permalink:"/laravel-chat-system/docs/next/guides/routes"}},i=[{value:"Using ChatSystem Models",id:"using-chatsystem-models",children:[]},{value:"Controlling ChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],d={toc:i},c="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(c,(0,s.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Models\\Conversation;\nuse Binkode\\ChatSystem\\Models\\Message;\nuse Binkode\\ChatSystem\\Models\\ConversationUser;\nuse Binkode\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,r.yg)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,r.yg)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,r.yg)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,r.yg)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,r.yg)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Binkode\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,r.yg)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,r.yg)("p",null,"make sure you have published the chatsystem config file. see ",(0,r.yg)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,r.yg)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2420314.fa18ddfd.js b/assets/js/d2420314.fa18ddfd.js deleted file mode 100644 index 55174a6..0000000 --- a/assets/js/d2420314.fa18ddfd.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1882],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return g}});var s=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=s.createContext({}),d=function(e){var t=s.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},m=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=d(n),g=r,p=m["".concat(i,".").concat(g)]||m[g]||u[g]||o;return n?s.createElement(p,a(a({ref:t},c),{},{components:n})):s.createElement(p,a({ref:t},c))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:r,a[1]=l;for(var d=2;dChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],c={toc:d};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,o.kt)("wrapper",(0,s.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Models\\Conversation;\nuse Myckhel\\ChatSystem\\Models\\Message;\nuse Myckhel\\ChatSystem\\Models\\ConversationUser;\nuse Myckhel\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,o.kt)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,o.kt)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,o.kt)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,o.kt)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,o.kt)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,o.kt)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Myckhel\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,o.kt)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,o.kt)("p",null,"make sure you have published the chatsystem config file. see ",(0,o.kt)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,o.kt)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,o.kt)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d44911f8.3f24dc63.js b/assets/js/d44911f8.3f24dc63.js deleted file mode 100644 index 4d4c683..0000000 --- a/assets/js/d44911f8.3f24dc63.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8894],{8487:function(l){"use strict";l.exports=JSON.parse('{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"hello","name":"hello","count":1,"permalink":"/laravel-chat-system/blog/tags/hello"}')}}]); \ No newline at end of file diff --git a/assets/js/d44911f8.61ece18d.js b/assets/js/d44911f8.61ece18d.js new file mode 100644 index 0000000..787b51f --- /dev/null +++ b/assets/js/d44911f8.61ece18d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9422],{2631:l=>{l.exports=JSON.parse('{"allTagsPath":"/laravel-chat-system/blog/tags","slug":"hello","name":"hello","count":1,"permalink":"/laravel-chat-system/blog/tags/hello"}')}}]); \ No newline at end of file diff --git a/assets/js/d5102270.2aa05eba.js b/assets/js/d5102270.2aa05eba.js deleted file mode 100644 index 5858cb9..0000000 --- a/assets/js/d5102270.2aa05eba.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8594],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return u},kt:function(){return d}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=l(r),d=a,y=m["".concat(c,".").concat(d)]||m[d]||p[d]||s;return r?n.createElement(y,o(o({ref:t},u),{},{components:r})):n.createElement(y,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var l=2;l true]);\n")),(0,s.kt)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,s.kt)("p",null,"method to register broadcast routes ChatSystem provides."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,s.kt)("h2",{id:"async"},"async()"),(0,s.kt)("p",null,"method to asynchronously call fuctions if only ",(0,s.kt)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,s.kt)("h4",{id:"params-1"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,s.kt)("inlineCode",{parentName:"li"},"callback arguments"))),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d5102270.da330681.js b/assets/js/d5102270.da330681.js new file mode 100644 index 0000000..efa3d8d --- /dev/null +++ b/assets/js/d5102270.da330681.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9303],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},y="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(r),m=a,g=y["".concat(l,".").concat(m)]||y[m]||u[m]||s;return r?n.createElement(g,o(o({ref:t},p),{},{components:r})):n.createElement(g,o({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=r.length,o=new Array(s);o[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[y]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{contentTitle:()=>o,default:()=>y,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const s={id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},o=void 0,i={unversionedId:"apis/chatsystem",id:"apis/chatsystem",isDocsHomePage:!1,title:"ChatSytem APIs",description:"registerPolicies()",source:"@site/docs/apis/chatSystem.md",sourceDirName:"apis",slug:"/apis/chatsytem",permalink:"/laravel-chat-system/docs/next/apis/chatsytem",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/chatSystem.md",version:"current",frontMatter:{id:"chatsystem",title:"ChatSytem APIs",sidebar_label:"ChatSytem",slug:"/apis/chatsytem"},sidebar:"docs",previous:{title:"Message Created Event",permalink:"/laravel-chat-system/docs/next/apis/events/message/created"}},l=[{value:"registerPolicies()",id:"registerpolicies",children:[]},{value:"registerObservers()",id:"registerobservers",children:[]},{value:"registerBroadcastRoutes()",id:"registerbroadcastroutes",children:[]},{value:"async()",id:"async",children:[]}],c={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"registerpolicies"},"registerPolicies()"),(0,a.yg)("p",null,"method to register policies ChatSystem provides."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerPolicies();\n")),(0,a.yg)("h2",{id:"registerobservers"},"registerObservers()"),(0,a.yg)("p",null,"method to register observers ChatSystem provides."),(0,a.yg)("h4",{id:"params"},"@Params"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("inlineCode",{parentName:"strong"},"exclude"))," | array of models name to exclude from register | ",(0,a.yg)("inlineCode",{parentName:"li"},"array"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerObservers(exclude: ['conversation' => true]);\n")),(0,a.yg)("h2",{id:"registerbroadcastroutes"},"registerBroadcastRoutes()"),(0,a.yg)("p",null,"method to register broadcast routes ChatSystem provides."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::registerBroadcastRoutes();\n")),(0,a.yg)("h2",{id:"async"},"async()"),(0,a.yg)("p",null,"method to asynchronously call fuctions if only ",(0,a.yg)("inlineCode",{parentName:"p"},"laravel octane")," is configured to use swoole otherwise call functions synchronously."),(0,a.yg)("h4",{id:"params-1"},"@Params"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},(0,a.yg)("inlineCode",{parentName:"strong"},"calls"))," | array of models name to exclude from register | ",(0,a.yg)("inlineCode",{parentName:"li"},"callback arguments"))),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"use ChatSystem;\n\nChatSystem::async(\n fn () => print(1),\n fn () => print(2),\n fn () => print(3),\n);\n")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d52f8d63.2b356368.js b/assets/js/d52f8d63.2b356368.js new file mode 100644 index 0000000..3871ddd --- /dev/null +++ b/assets/js/d52f8d63.2b356368.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7923],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>u});var s=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=s.createContext({}),d=function(e){var t=s.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(i.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},p=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),g=d(n),p=r,u=g["".concat(i,".").concat(p)]||g[p]||m[p]||a;return n?s.createElement(u,o(o({ref:t},c),{},{components:n})):s.createElement(u,o({ref:t},c))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=p;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[g]="string"==typeof e?e:r,o[1]=l;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>o,default:()=>g,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var s=n(8168),r=(n(6540),n(5680));const a={id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},o=void 0,l={unversionedId:"guides/models",id:"version-v1.0-alpha.3/guides/models",isDocsHomePage:!1,title:"ChatSystem Models",description:"Using ChatSystem Models",source:"@site/versioned_docs/version-v1.0-alpha.3/guides/models.md",sourceDirName:"guides",slug:"/guides/models",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/models",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/guides/models.md",version:"v1.0-alpha.3",frontMatter:{id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Using Providers",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers"},next:{title:"Using Routes",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes"}},i=[{value:"Using ChatSystem Models",id:"using-chatsystem-models",children:[]},{value:"Controlling ChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],d={toc:i},c="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(c,(0,s.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Models\\Conversation;\nuse Myckhel\\ChatSystem\\Models\\Message;\nuse Myckhel\\ChatSystem\\Models\\ConversationUser;\nuse Myckhel\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,r.yg)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,r.yg)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,r.yg)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,r.yg)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,r.yg)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Myckhel\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,r.yg)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,r.yg)("p",null,"make sure you have published the chatsystem config file. see ",(0,r.yg)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,r.yg)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d52f8d63.ce8fc934.js b/assets/js/d52f8d63.ce8fc934.js deleted file mode 100644 index c9de1fe..0000000 --- a/assets/js/d52f8d63.ce8fc934.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9561],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return p}});var s=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=s.createContext({}),d=function(e){var t=s.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},m=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=d(n),p=r,g=m["".concat(i,".").concat(p)]||m[p]||u[p]||o;return n?s.createElement(g,a(a({ref:t},c),{},{components:n})):s.createElement(g,a({ref:t},c))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:r,a[1]=l;for(var d=2;dChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],c={toc:d};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,o.kt)("wrapper",(0,s.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Models\\Conversation;\nuse Myckhel\\ChatSystem\\Models\\Message;\nuse Myckhel\\ChatSystem\\Models\\ConversationUser;\nuse Myckhel\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,o.kt)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,o.kt)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,o.kt)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,o.kt)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,o.kt)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,o.kt)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Myckhel\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,o.kt)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,o.kt)("p",null,"make sure you have published the chatsystem config file. see ",(0,o.kt)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,o.kt)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,o.kt)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d610846f.40d7874a.js b/assets/js/d610846f.40d7874a.js deleted file mode 100644 index bbc46a4..0000000 --- a/assets/js/d610846f.40d7874a.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6176],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return m}});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),f=i(r),m=o,h=f["".concat(u,".").concat(m)]||f[m]||p[m]||a;return r?n.createElement(h,l(l({ref:t},s),{},{components:r})):n.createElement(h,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(i,".").concat(f)]||p[f]||m[f]||a;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={slug:"hello-world",title:"Hello",author:"Endilie Yacop Sucipto",author_title:"Maintainer of Docusaurus",author_url:"https://github.com/endiliey",author_image_url:"https://avatars1.githubusercontent.com/u/17883920?s=460&v=4",tags:["hello","docusaurus"]},l=void 0,c={permalink:"/laravel-chat-system/blog/hello-world",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/blog/2019-05-29-hello-world.md",source:"@site/blog/2019-05-29-hello-world.md",title:"Hello",description:"Welcome to this blog. This blog is created with Docusaurus 2 alpha.",date:"2019-05-29T00:00:00.000Z",formattedDate:"May 29, 2019",tags:[{label:"hello",permalink:"/laravel-chat-system/blog/tags/hello"},{label:"docusaurus",permalink:"/laravel-chat-system/blog/tags/docusaurus"}],readingTime:.12,truncated:!0},i=[],u={toc:i},s="wrapper";function p(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Welcome to this blog. This blog is created with ",(0,o.yg)("a",{parentName:"p",href:"https://v2.docusaurus.io/"},(0,o.yg)("strong",{parentName:"a"},"Docusaurus 2 alpha")),"."),(0,o.yg)("p",null,"This is a test post."),(0,o.yg)("p",null,"A whole bunch of other information."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d8a0deca.7aa06752.js b/assets/js/d8a0deca.7aa06752.js new file mode 100644 index 0000000..155b399 --- /dev/null +++ b/assets/js/d8a0deca.7aa06752.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[337],{5680:(e,a,n)=>{n.d(a,{xA:()=>d,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function s(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=t.createContext({}),g=function(e){var a=t.useContext(o),n=a;return e&&(n="function"==typeof e?e(a):s(s({},a),e)),n},d=function(e){var a=g(e.components);return t.createElement(o.Provider,{value:a},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=g(n),y=r,u=p["".concat(o,".").concat(y)]||p[y]||m[y]||l;return n?t.createElement(u,s(s({ref:a},d),{},{components:n})):t.createElement(u,s({ref:a},d))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,s=new Array(l);s[0]=y;var i={};for(var o in a)hasOwnProperty.call(a,o)&&(i[o]=a[o]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>o});var t=n(8168),r=(n(6540),n(5680));const l={id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},s=void 0,i={unversionedId:"apis/models/message",id:"version-v1.0.0-beta.4/apis/models/message",isDocsHomePage:!1,title:"Message APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.4/apis/models/message.md",sourceDirName:"apis/models",slug:"/apis/models/message",permalink:"/laravel-chat-system/docs/apis/models/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/apis/models/message.md",version:"v1.0.0-beta.4",frontMatter:{id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/guides/broadcasts"},next:{title:"Conversation",permalink:"/laravel-chat-system/docs/apis/models/conversation"}},o=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereNotReadBy()",id:"wherenotreadby",children:[]},{value:"whereNotDeliveredTo()",id:"wherenotdeliveredto",children:[]},{value:"whereNotDeletedBy()",id:"wherenotdeletedby",children:[]},{value:"whereRelatedTo()",id:"whererelatedto",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDeliver()",id:"makedeliver-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],g={toc:o},d="wrapper";function p(e){let{components:a,...n}=e;return(0,r.yg)(d,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Models\\Message")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"conversation_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"message")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"metas")),(0,r.yg)("td",{parentName:"tr",align:null},"json"),(0,r.yg)("td",{parentName:"tr",align:null},"message key values")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Message Model Query Builder APIs"),(0,r.yg)("h3",{id:"wherenotsender"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,r.yg)("h3",{id:"wherereply"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereReply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,r.yg)("h3",{id:"wheredoesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,r.yg)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"null|Closure"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotreadby"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotReadBy()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not read by the given user")),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotReadBy(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotdeliveredto"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotDeliveredTo()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not delivered to the given user")),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeliveredTo(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotdeletedby"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotDeletedBy()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not deleted by the given user")),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeletedBy(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whererelatedto"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereRelatedTo()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedTo(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"hasevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,r.yg)("h3",{id:"hasnoevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"participantshasdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedeliver"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDeliver($user);\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|user"))),(0,r.yg)("p",null,"find user from the message's participants"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message has many chat events")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,r.yg)("h3",{id:"sender"},(0,r.yg)("inlineCode",{parentName:"h3"},"sender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to user")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,r.yg)("h3",{id:"reply"},(0,r.yg)("inlineCode",{parentName:"h3"},"reply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makeread-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedelete-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makedeliver-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e68f5092.1afd84d5.js b/assets/js/e68f5092.1afd84d5.js deleted file mode 100644 index 1f96bc5..0000000 --- a/assets/js/e68f5092.1afd84d5.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2356],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),p=l(n),m=r,g=p["".concat(c,".").concat(m)]||p[m]||d[m]||s;return n?a.createElement(g,i(i({ref:t},u),{},{components:n})):a.createElement(g,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var l=2;lchatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,s.kt)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,s.kt)("p",null,"By default, everytime chat is event is created, a ",(0,s.kt)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,s.kt)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,s.kt)("details",null,(0,s.kt)("summary",null,"output"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e68f5092.bc5491ee.js b/assets/js/e68f5092.bc5491ee.js new file mode 100644 index 0000000..416ebb1 --- /dev/null +++ b/assets/js/e68f5092.bc5491ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2614],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>m});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),l=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return a.createElement(c.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=l(n),g=r,m=p["".concat(c,".").concat(g)]||p[g]||u[g]||s;return n?a.createElement(m,i(i({ref:t},d),{},{components:n})):a.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var l=2;l{n.r(t),n.d(t,{contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var a=n(8168),r=(n(6540),n(5680));const s={id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},i=void 0,o={unversionedId:"guides/guides.chatEvent",id:"guides/guides.chatEvent",isDocsHomePage:!1,title:"Using ChatEvent",description:"Creating chatEvent",source:"@site/docs/guides/chatEvent.md",sourceDirName:"guides",slug:"/guides/chatEvent",permalink:"/laravel-chat-system/docs/next/guides/chatEvent",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/guides/chatEvent.md",version:"current",frontMatter:{id:"guides.chatEvent",title:"Using ChatEvent",sidebar_label:"Using ChatEvent",slug:"/guides/chatEvent"},sidebar:"docs",previous:{title:"Using Message",permalink:"/laravel-chat-system/docs/next/guides/message"},next:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/next/guides/broadcasts"}},c=[{value:"Creating chatEvent",id:"creating-chatevent",children:[]},{value:"Broadcasting chatEvent",id:"broadcasting-chatevent",children:[]}],l={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.yg)(d,(0,a.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"creating-chatevent"},"Creating chatEvent"),(0,r.yg)("p",null,"You may create chat events by a ",(0,r.yg)("inlineCode",{parentName:"p"},"IChatEventMaker")," model for ",(0,r.yg)("inlineCode",{parentName:"p"},"Message")," or ",(0,r.yg)("inlineCode",{parentName:"p"},"Conversation")," models.\nfor example, creating a read event for a particular message."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$user->chatEventMakers()\n ->create([\n 'made_type' => $message::class,\n 'made_id' => $message->id,\n 'type' => \"read\"\n ]);\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'{\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "maker_id": 13,\n "maker_type": "App\\\\Models\\\\User",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "created_at": "2021-07-23T23:00:06.000000Z",\n "id": 2042\n}\n'))),(0,r.yg)("h2",{id:"broadcasting-chatevent"},"Broadcasting chatEvent"),(0,r.yg)("p",null,"By default, everytime chat is event is created, a ",(0,r.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message\\Events")," is broadcasted if only you ",(0,r.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registered ChatSystem Observers"),".\nYou may manually broadcast chatEvent."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Events\\Message\\Events;\n\nbroadcast(new Events($chatEvent));\n")),(0,r.yg)("details",null,(0,r.yg)("summary",null,"output"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 23:00:07] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2042,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "read",\n "all": false,\n "created_at": "2021-07-23T23:00:06.000000Z",\n "updated_at": "2021-07-23T23:00:06.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n "isSender": true\n }\n },\n "conversation_id": null,\n "socket": null\n}\n'))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7764ff1.247d56f0.js b/assets/js/e7764ff1.247d56f0.js new file mode 100644 index 0000000..a9cf27a --- /dev/null +++ b/assets/js/e7764ff1.247d56f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[49],{5680:(e,a,n)=>{n.d(a,{xA:()=>c,yg:()=>p});var t=n(6540);function s(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function r(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(s[n]=e[n]);return s}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}var l=t.createContext({}),g=function(e){var a=t.useContext(l),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},c=function(e){var a=g(e.components);return t.createElement(l.Provider,{value:a},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(e,a){var n=e.components,s=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=g(n),m=s,p=d["".concat(l,".").concat(m)]||d[m]||u[m]||r;return n?t.createElement(p,i(i({ref:a},c),{},{components:n})):t.createElement(p,i({ref:a},c))}));function p(e,a){var n=arguments,s=a&&a.mdxType;if("string"==typeof e||s){var r=n.length,i=new Array(r);i[0]=m;var o={};for(var l in a)hasOwnProperty.call(a,l)&&(o[l]=a[l]);o.originalType=e,o[d]="string"==typeof e?e:s,i[1]=o;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var t=n(8168),s=(n(6540),n(5680));const r={id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},i=void 0,o={unversionedId:"guides/guides.message",id:"version-v1.0.0-beta.4/guides/guides.message",isDocsHomePage:!1,title:"Using Message",description:"Creating message",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/message.md",sourceDirName:"guides",slug:"/guides/message",permalink:"/laravel-chat-system/docs/guides/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/message.md",version:"v1.0.0-beta.4",frontMatter:{id:"guides.message",title:"Using Message",sidebar_label:"Using Message",slug:"/guides/message"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/guides/conversation"},next:{title:"Using ChatEvent",permalink:"/laravel-chat-system/docs/guides/chatEvent"}},l=[{value:"Creating message",id:"creating-message",children:[]},{value:"Broadcasting Message Created",id:"broadcasting-message-created",children:[]},{value:"Creating an activity message type",id:"creating-an-activity-message-type",children:[]},{value:"Creating a message with token",id:"creating-a-message-with-token",children:[]},{value:"Deleting message",id:"deleting-message",children:[]}],g={toc:l},c="wrapper";function d(e){let{components:a,...n}=e;return(0,s.yg)(c,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,s.yg)("h2",{id:"creating-message"},"Creating message"),(0,s.yg)("p",null,"You may create a message within a conversation using its ",(0,s.yg)("inlineCode",{parentName:"p"},"messages")," relationship method."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->messages()->create([\n 'reply_id' => $reply_id, // eg. message_id\n 'reply_type' => $reply_type, // eg. message::class\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n 'type' => 'user', // default user\n]);\n")),(0,s.yg)("h2",{id:"broadcasting-message-created"},"Broadcasting Message Created"),(0,s.yg)("p",null,"You may broadcast a ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/created"},"message created event")," after creating a message for websocket clients to receive."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"use Binkode\\ChatSystem\\Events\\Message\\Created;\n\nbroadcast(new Created($message));\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:36:25] local.INFO: Broadcasting [message] on channels [private-message-created.304, private-message-new.user.13] with payload:\n{\n "message": {\n "id": 922,\n "conversation_id": 304,\n "user_id": 13,\n "reply_type": null,\n "reply_id": null,\n "message": "i am good",\n "type": "activity",\n "metas": null,\n "created_at": "2021-07-23T22:36:20.000000Z",\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "isSender": true,\n "reply": null\n },\n "socket": null\n} \n'))),(0,s.yg)("h2",{id:"creating-an-activity-message-type"},"Creating an activity message type"),(0,s.yg)("p",null,"A message type is default to ",(0,s.yg)("inlineCode",{parentName:"p"},"user")," which means its a user message.\nYou may want to create another type of messages, for example, a ",(0,s.yg)("inlineCode",{parentName:"p"},"system")," or an ",(0,s.yg)("inlineCode",{parentName:"p"},"activity")," message.\nAn activity message can be used to hold a single event of a conversation. A user leaving a conversation is an event that occurs in a conversation which the event can be remembered by creating an activity message with the event."),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createActivityMessage([\n 'user_id' => $user->id,\n 'message' => 'Someone left the conversation',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "Someone left the conversation",\n "type": "activity",\n "conversation_id": 304,\n "updated_at": "2021-07-23T22:36:20.000000Z",\n "created_at": "2021-07-23T22:36:20.000000Z",\n "id": 922,\n}\n'))),(0,s.yg)("h2",{id:"creating-a-message-with-token"},"Creating a message with token"),(0,s.yg)("p",null,"You may use message unique token feature to prevent creating duplicate messages.\nFor example, In your frontend app, you might be using job queue to create messages. let assume job queue sent request to the backend to create a message, after the message was created, client network lost and client couldn't know if the message was created but the message was surely created, now exception has occured and job queue has tried to send the same message later after network was regained, now the same message has been created twice.\nIf you had provided a unique token, the backend would have check and responded with an existing message having the token otherwise creates a new message. "),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations($conversation_id)->first();\n\n$conversation->createMessageWithToken($token, [\n 'user_id' => $user->id,\n 'message' => 'hello laravel',\n]);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'{\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627076937515"\n },\n "conversation_id": 300,\n "updated_at": "2021-07-23T21:48:58.000000Z",\n "created_at": "2021-07-23T21:48:58.000000Z",\n "id": 907,\n "isSender": true,\n}\n'))),(0,s.yg)("h2",{id:"deleting-message"},"Deleting message"),(0,s.yg)("p",null,"You may delete message(s) with ",(0,s.yg)("a",{parentName:"p",href:"../apis/models/message#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,s.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the message has been deleted for all participants.\nThe method will also try to emit ",(0,s.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-php"},"$message->makeDelete($user, $everyone);\n")),(0,s.yg)("details",null,(0,s.yg)("summary",null,"output"),(0,s.yg)("pre",null,(0,s.yg)("code",{parentName:"pre",className:"language-json"},'[2021-07-23 22:54:58] local.INFO: Broadcasting [message] on channels [private-message-event.user.13, private-message-event.user.10] with payload:\n{\n "event": {\n "id": 2041,\n "maker_type": "App\\\\Models\\\\User",\n "maker_id": 13,\n "made_type": "App\\\\Models\\\\Message",\n "made_id": 925,\n "type": "delete",\n "all": true,\n "created_at": "2021-07-23T22:54:57.000000Z",\n "updated_at": "2021-07-23T22:54:57.000000Z",\n "made": {\n "id": 925,\n "conversation_id": 305,\n "user_id": 13,\n "message": "i am good",\n "type": "user",\n "metas": {\n "token": "1627080883413"\n },\n "created_at": "2021-07-23T22:54:44.000000Z",\n "updated_at": "2021-07-23T22:54:44.000000Z",\n }\n },\n "conversation_id": 305,\n "socket": null\n}\n'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ea59044a.13539328.js b/assets/js/ea59044a.13539328.js deleted file mode 100644 index 99cf24f..0000000 --- a/assets/js/ea59044a.13539328.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[12],{3905:function(e,t,r){"use strict";r.d(t,{Zo:function(){return p},kt:function(){return h}});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var o=n.createContext({}),c=function(e){var t=n.useContext(o),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),h=i,f=d["".concat(o,".").concat(h)]||d[h]||u[h]||l;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function h(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=r.length,a=new Array(l);a[0]=d;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:i,a[1]=s;for(var c=2;cInstall",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]}],p={toc:c};function u(e){var t=e.components,r=(0,i.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"install"},(0,l.kt)("inlineCode",{parentName:"h2"},"Install")),(0,l.kt)("p",null,"Via Composer"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"composer require myckhel/laravel-chat-system\n")),(0,l.kt)("h2",{id:"setup"},(0,l.kt)("inlineCode",{parentName:"h2"},"Setup")),(0,l.kt)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,l.kt)("inlineCode",{parentName:"p"},"config")," directory"),(0,l.kt)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,l.kt)("p",null,"migration files should be copied to the ",(0,l.kt)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,l.kt)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,l.kt)("p",null,"seeders files should be copied to the ",(0,l.kt)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,l.kt)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,l.kt)("p",null,"factories files should be copied to the ",(0,l.kt)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,l.kt)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Myckhel\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,l.kt)("p",null,"all resources files should be copied to the respective directories"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ea59044a.5bc56204.js b/assets/js/ea59044a.5bc56204.js new file mode 100644 index 0000000..f2cd243 --- /dev/null +++ b/assets/js/ea59044a.5bc56204.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9922],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var i=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var o=i.createContext({}),c=function(e){var t=i.useContext(o),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=c(e.components);return i.createElement(o.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),h=n,g=d["".concat(o,".").concat(h)]||d[h]||u[h]||l;return r?i.createElement(g,a(a({ref:t},p),{},{components:r})):i.createElement(g,a({ref:t},p))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,a=new Array(l);a[0]=h;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[d]="string"==typeof e?e:n,a[1]=s;for(var c=2;c{r.r(t),r.d(t,{contentTitle:()=>a,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>o});var i=r(8168),n=(r(6540),r(5680));const l={id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},a=void 0,s={unversionedId:"install",id:"version-v1.0-alpha.3/install",isDocsHomePage:!1,title:"Installation",description:"Install",source:"@site/versioned_docs/version-v1.0-alpha.3/install.md",sourceDirName:".",slug:"/install",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/install",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0-alpha.3/install.md",version:"v1.0-alpha.3",frontMatter:{id:"install",title:"Installation",sidebar_label:"Installation",slug:"/install"},sidebar:"version-v1.0-alpha.3/docs",previous:{title:"Introduction",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/"},next:{title:"Requirements",permalink:"/laravel-chat-system/docs/v1.0-alpha.3/requirements"}},o=[{value:"Install",id:"install",children:[]},{value:"Setup",id:"setup",children:[{value:"Publishing the config file",id:"publishing-the-config-file",children:[]},{value:"Publishing the migrations files",id:"publishing-the-migrations-files",children:[]},{value:"Publishing the seeders files",id:"publishing-the-seeders-files",children:[]},{value:"Publishing the factories files",id:"publishing-the-factories-files",children:[]},{value:"Publishing all resources files",id:"publishing-all-resources-files",children:[]}]}],c={toc:o},p="wrapper";function d(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,i.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"install"},(0,n.yg)("inlineCode",{parentName:"h2"},"Install")),(0,n.yg)("p",null,"Via Composer"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"composer require myckhel/laravel-chat-system\n")),(0,n.yg)("h2",{id:"setup"},(0,n.yg)("inlineCode",{parentName:"h2"},"Setup")),(0,n.yg)("h3",{id:"publishing-the-config-file"},"Publishing the config file"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='config'\n")),(0,n.yg)("p",null,(0,n.yg)("inlineCode",{parentName:"p"},"chat-system.php")," should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"config")," directory"),(0,n.yg)("h3",{id:"publishing-the-migrations-files"},"Publishing the migrations files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='migrations'\n")),(0,n.yg)("p",null,"migration files should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"database/migrations")," directory"),(0,n.yg)("h3",{id:"publishing-the-seeders-files"},"Publishing the seeders files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='seeders'\n")),(0,n.yg)("p",null,"seeders files should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"database/seeders")," directory"),(0,n.yg)("h3",{id:"publishing-the-factories-files"},"Publishing the factories files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},"php artisan vendor:publish --provider=\"Myckhel\\ChatSystem\\ChatSystemServiceProvider\" --tag='factories'\n")),(0,n.yg)("p",null,"factories files should be copied to the ",(0,n.yg)("inlineCode",{parentName:"p"},"database/factories")," directory"),(0,n.yg)("h3",{id:"publishing-all-resources-files"},"Publishing all resources files"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-bash"},'php artisan vendor:publish --provider="Myckhel\\ChatSystem\\ChatSystemServiceProvider"\n')),(0,n.yg)("p",null,"all resources files should be copied to the respective directories"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f132c5eb.5f6165ec.js b/assets/js/f132c5eb.5f6165ec.js new file mode 100644 index 0000000..9bcb9bd --- /dev/null +++ b/assets/js/f132c5eb.5f6165ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4270],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var s=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=s.createContext({}),d=function(e){var t=s.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(i.Provider,{value:t},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),g=d(n),u=r,y=g["".concat(i,".").concat(u)]||g[u]||m[u]||o;return n?s.createElement(y,a(a({ref:t},c),{},{components:n})):s.createElement(y,a({ref:t},c))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=u;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[g]="string"==typeof e?e:r,a[1]=l;for(var d=2;d{n.r(t),n.d(t,{contentTitle:()=>a,default:()=>g,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var s=n(8168),r=(n(6540),n(5680));const o={id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},a=void 0,l={unversionedId:"guides/models",id:"version-v1.0.0-beta.0/guides/models",isDocsHomePage:!1,title:"ChatSystem Models",description:"Using ChatSystem Models",source:"@site/versioned_docs/version-v1.0.0-beta.0/guides/models.md",sourceDirName:"guides",slug:"/guides/models",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/guides/models.md",version:"v1.0.0-beta.0",frontMatter:{id:"models",title:"ChatSystem Models",sidebar_label:"Using Models",slug:"/guides/models"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Using Providers",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers"},next:{title:"Using Routes",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes"}},i=[{value:"Using ChatSystem Models",id:"using-chatsystem-models",children:[]},{value:"Controlling ChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],d={toc:i},c="wrapper";function g(e){let{components:t,...n}=e;return(0,r.yg)(c,(0,s.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Models\\Conversation;\nuse Myckhel\\ChatSystem\\Models\\Message;\nuse Myckhel\\ChatSystem\\Models\\ConversationUser;\nuse Myckhel\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,r.yg)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,r.yg)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,r.yg)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,r.yg)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,r.yg)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Myckhel\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,r.yg)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,r.yg)("p",null,"make sure you have published the chatsystem config file. see ",(0,r.yg)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,r.yg)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,r.yg)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f132c5eb.e677368c.js b/assets/js/f132c5eb.e677368c.js deleted file mode 100644 index e1471aa..0000000 --- a/assets/js/f132c5eb.e677368c.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6825],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return c},kt:function(){return g}});var s=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=s.createContext({}),d=function(e){var t=s.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return s.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},m=s.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=d(n),g=r,p=m["".concat(l,".").concat(g)]||m[g]||u[g]||o;return n?s.createElement(p,a(a({ref:t},c),{},{components:n})):s.createElement(p,a({ref:t},c))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,a=new Array(o);a[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:r,a[1]=i;for(var d=2;dChatSystem Models",id:"controlling-chatsystem-models",children:[{value:"Extending ChatSystem Models",id:"extending-chatsystem-models",children:[]},{value:"Registering ChatSystem Models",id:"registering-chatsystem-models",children:[]},{value:"Using registered ChatSystem models",id:"using-registered-chatsystem-models",children:[]}]}],c={toc:d};function u(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,o.kt)("wrapper",(0,s.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"using-chatsystem-models"},"Using ChatSystem Models"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use Myckhel\\ChatSystem\\Models\\Conversation;\nuse Myckhel\\ChatSystem\\Models\\Message;\nuse Myckhel\\ChatSystem\\Models\\ConversationUser;\nuse Myckhel\\ChatSystem\\Models\\ChatEvent;\n\nConversation::get();\nMessage::get();\nConversationUser::get();\nChatEvent::get();\n")),(0,o.kt)("h2",{id:"controlling-chatsystem-models"},"Controlling ",(0,o.kt)("inlineCode",{parentName:"h2"},"ChatSystem")," Models"),(0,o.kt)("h3",{id:"extending-chatsystem-models"},"Extending ",(0,o.kt)("inlineCode",{parentName:"h3"},"ChatSystem")," Models"),(0,o.kt)("p",null,"You may want to take control of some models, for example, caching model queries.\nYou may take control by extending the models and registering the model through the ",(0,o.kt)("inlineCode",{parentName:"p"},"chatsystem")," config."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"\nnamespace App\\Models;\n\nuse Myckhel\\ChatSystem\\Models\\Message as BaseMessage;\nuse QueryCache;\n\nclass Message extends BaseMessage\n{\n use QueryCache;\n}\n\n")),(0,o.kt)("h3",{id:"registering-chatsystem-models"},"Registering ChatSystem Models"),(0,o.kt)("p",null,"make sure you have published the chatsystem config file. see ",(0,o.kt)("a",{parentName:"p",href:"../install#publishing-the-config-file"},"publishing-the-config-file")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'...\nreturn [\n...\n /*\n * Models\n */\n "models" => [\n ...\n // register Message model\n "message" => "App\\\\Models\\\\Message",\n ],\n...\n')),(0,o.kt)("h3",{id:"using-registered-chatsystem-models"},"Using registered ",(0,o.kt)("inlineCode",{parentName:"h3"},"ChatSystem")," models"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use App\\Models\\Message;\n\nMessage::get();\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f2f1ace8.736f9e1b.js b/assets/js/f2f1ace8.736f9e1b.js new file mode 100644 index 0000000..a8e5897 --- /dev/null +++ b/assets/js/f2f1ace8.736f9e1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9387],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>h});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,s=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=l(n),m=o,h=d["".concat(p,".").concat(m)]||d[m]||u[m]||s;return n?r.createElement(h,a(a({ref:t},c),{},{components:n})):r.createElement(h,a({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=n.length,a=new Array(s);a[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var r=n(8168),o=(n(6540),n(5680));const s={id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},a=void 0,i={unversionedId:"guides/guides.routes",id:"version-v1.0.0-beta.4/guides/guides.routes",isDocsHomePage:!1,title:"Using Routes",description:"ChatSystem provides basic usage through some route endpoints.",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/routes.md",sourceDirName:"guides",slug:"/guides/routes",permalink:"/laravel-chat-system/docs/guides/routes",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/routes.md",version:"v1.0.0-beta.4",frontMatter:{id:"guides.routes",title:"Using Routes",sidebar_label:"Using Routes",slug:"/guides/routes"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Using Models",permalink:"/laravel-chat-system/docs/guides/models"},next:{title:"Using Conversation",permalink:"/laravel-chat-system/docs/guides/conversation"}},p=[],l={toc:p},c="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(c,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"ChatSystem provides basic usage through some route endpoints.\nYou may make use of them if suites your use cases."),(0,o.yg)("p",null,"Checkout api documentation for each route below: ",(0,o.yg)("a",{parentName:"p",href:"https://documenter.getpostman.com/view/9558301/TzXwEyDq#83bc243b-8297-417d-9fd8-18a557e4826e"},"Postman documentation link"),"."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| Domain | Method | URI | Name | Action | Middleware |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n| | GET|HEAD | api/chat_events | chat_events.index | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/chat_events | chat_events.store | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/chat_events/{chat_event} | chat_events.show | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/chat_events/{chat_event} | chat_events.update | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/chat_events/{chat_event} | chat_events.destroy | Binkode\\ChatSystem\\Http\\Controllers\\ChatEventController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations | conversations.index | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/conversations | conversations.store | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/count | generated::qP7MgZeXOQ2KO9kH | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@count | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/conversations/{conversation} | conversations.show | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/conversations/{conversation} | conversations.update | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/conversations/{conversation} | conversations.destroy | Binkode\\ChatSystem\\Http\\Controllers\\ConversationController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages | generated::P5UtLfEaXJNWQUcU | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@delete | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages | messages.index | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@index | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | POST | api/messages | messages.store | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@store | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | GET|HEAD | api/messages/{message} | messages.show | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@show | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | PUT|PATCH | api/messages/{message} | messages.update | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@update | App\\Http\\Middleware\\Authenticate:sanctum |\n| | | | | | api |\n| | DELETE | api/messages/{message} | messages.destroy | Binkode\\ChatSystem\\Http\\Controllers\\MessageController@destroy | App\\Http\\Middleware\\Authenticate:sanctum |\n+--------+---------------+------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------+---------------------------------------------+\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f8a052a3.6194a017.js b/assets/js/f8a052a3.6194a017.js new file mode 100644 index 0000000..7f90227 --- /dev/null +++ b/assets/js/f8a052a3.6194a017.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9383],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>v});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(t),d=a,v=u["".concat(c,".").concat(d)]||u[d]||g[d]||o;return t?r.createElement(v,i(i({ref:n},p),{},{components:t})):r.createElement(v,i({ref:n},p))}));function v(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},i=void 0,s={unversionedId:"guides/guides.conversation",id:"version-v1.0.0-beta.4/guides/guides.conversation",isDocsHomePage:!1,title:"Using Conversation",description:"Creating conversation",source:"@site/versioned_docs/version-v1.0.0-beta.4/guides/conversation.md",sourceDirName:"guides",slug:"/guides/conversation",permalink:"/laravel-chat-system/docs/guides/conversation",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.4/guides/conversation.md",version:"v1.0.0-beta.4",frontMatter:{id:"guides.conversation",title:"Using Conversation",sidebar_label:"Using Conversation",slug:"/guides/conversation"},sidebar:"version-v1.0.0-beta.4/docs",previous:{title:"Using Routes",permalink:"/laravel-chat-system/docs/guides/routes"},next:{title:"Using Message",permalink:"/laravel-chat-system/docs/guides/message"}},c=[{value:"Creating conversation",id:"creating-conversation",children:[]},{value:"Creating conversation type",id:"creating-conversation-type",children:[]},{value:"Adding/removing user/participant to conversation",id:"addingremoving-userparticipant-to-conversation",children:[]},{value:"Deleting conversation",id:"deleting-conversation",children:[]}],l={toc:c},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.yg)(p,(0,r.A)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"creating-conversation"},"Creating conversation"),(0,a.yg)("p",null,"When conversation is created, the system will automatically add the creator as a participant of the conversation using the ",(0,a.yg)("inlineCode",{parentName:"p"},"conversation.user_id")," if only the chatSystem Observer have been registered. see ",(0,a.yg)("a",{parentName:"p",href:"providers#registering-observers"},"registering-observers")," "),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n]);\n")),(0,a.yg)("details",null,(0,a.yg)("summary",null,"output"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "private",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,a.yg)("h2",{id:"creating-conversation-type"},"Creating conversation type"),(0,a.yg)("p",null,"You may create a conversation of another type such as ",(0,a.yg)("inlineCode",{parentName:"p"},"group")," and should have a name."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation = $user->conversations()->create([\n 'user_id' => $user->id,\n 'type' => 'group',\n 'name' => 'Laravel Developer\\'s Group',\n]);\n")),(0,a.yg)("details",null,(0,a.yg)("summary",null,"output"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'// conversation\n{\n "id": 297,\n "user_id": 13,\n "type": "group",\n "name": "Laravel Developer\\\'s Group",\n "updated_at": "2021-07-14T18:59:44.000000Z",\n "created_at": "2021-07-14T18:59:44.000000Z"\n}\n'))),(0,a.yg)("h2",{id:"addingremoving-userparticipant-to-conversation"},"Adding/removing user/participant to conversation"),(0,a.yg)("p",null,"You may add as many participants to a conversation but its not a good idea for a conversation of type ",(0,a.yg)("inlineCode",{parentName:"p"},"private")," to have more than 2 participants.\nThe function will also create a message of type = activity. pass a message argument to customise the activity message."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->addParticipant($user, message: 'Someone joined the conversation');\n$conversation->removeParticipant($user, message: 'Someone left the conversation');\n")),(0,a.yg)("h2",{id:"deleting-conversation"},"Deleting conversation"),(0,a.yg)("p",null,"You may delete conversation with ",(0,a.yg)("a",{parentName:"p",href:"../apis/models/conversation#makedelete"},"makeDelete")," method which requires 1 argument = user deleting the conversation.\nYou can specify delete for all option by passing named argument ",(0,a.yg)("inlineCode",{parentName:"p"},"all")," which will specify that the conversation has been deleted for all participants.\nThe method will also try to emit ",(0,a.yg)("a",{parentName:"p",href:"../apis/events/message/events"},"Message Events")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-php"},"$conversation->makeDelete($user, all: true);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f9b5df66.63686f63.js b/assets/js/f9b5df66.63686f63.js deleted file mode 100644 index 4cd342c..0000000 --- a/assets/js/f9b5df66.63686f63.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5972],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(n),m=a,g=u["".concat(c,".").concat(m)]||u[m]||d[m]||s;return n?r.createElement(g,o(o({ref:t},p),{},{components:n})):r.createElement(g,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var l=2;lNamespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],p={toc:l};function d(e){var t=e.components,n=(0,a.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Events\\Message\\Created")),(0,s.kt)("h2",{id:"broadcasts-as"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts as")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message"))),(0,s.kt)("h2",{id:"broadcasts-with"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts with")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message")," type ",(0,s.kt)("inlineCode",{parentName:"li"},"Myckhel\\ChatSystem\\Contracts\\IMessage"))),(0,s.kt)("h2",{id:"broadcasts-on-channels"},(0,s.kt)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f9b5df66.6745dcff.js b/assets/js/f9b5df66.6745dcff.js new file mode 100644 index 0000000..386cfe3 --- /dev/null +++ b/assets/js/f9b5df66.6745dcff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6513],{5680:(e,t,a)=>{a.d(t,{xA:()=>p,yg:()=>u});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=r.createContext({}),l=function(e){var t=r.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=l(a),m=n,u=d["".concat(c,".").concat(m)]||d[m]||g[m]||s;return a?r.createElement(u,o(o({ref:t},p),{},{components:a})):r.createElement(u,o({ref:t},p))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,o=new Array(s);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var l=2;l{a.r(t),a.d(t,{contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var r=a(8168),n=(a(6540),a(5680));const s={id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},o=void 0,i={unversionedId:"apis/events/message/messageCreated",id:"apis/events/message/messageCreated",isDocsHomePage:!1,title:"Message Created Event",description:"Namespace",source:"@site/docs/apis/events/message/created.md",sourceDirName:"apis/events/message",slug:"/apis/events/message/created",permalink:"/laravel-chat-system/docs/next/apis/events/message/created",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/events/message/created.md",version:"current",frontMatter:{id:"messageCreated",title:"Message Created Event",sidebar_label:"Message Created Event",slug:"/apis/events/message/created"},sidebar:"docs",previous:{title:"Message Events",permalink:"/laravel-chat-system/docs/next/apis/events/message/events"},next:{title:"ChatSytem",permalink:"/laravel-chat-system/docs/next/apis/chatsytem"}},c=[{value:"Namespace",id:"namespace",children:[]},{value:"Broadcasts as",id:"broadcasts-as",children:[]},{value:"Broadcasts with",id:"broadcasts-with",children:[]},{value:"Broadcasts on channels",id:"broadcasts-on-channels",children:[]}],l={toc:c},p="wrapper";function d(e){let{components:t,...a}=e;return(0,n.yg)(p,(0,r.A)({},l,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h2",{id:"namespace"},(0,n.yg)("strong",{parentName:"h2"},"Namespace")),(0,n.yg)("p",null,(0,n.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Events\\Message\\Created")),(0,n.yg)("h2",{id:"broadcasts-as"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts as")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message"))),(0,n.yg)("h2",{id:"broadcasts-with"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts with")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message")," type ",(0,n.yg)("inlineCode",{parentName:"li"},"Binkode\\ChatSystem\\Contracts\\IMessage"))),(0,n.yg)("h2",{id:"broadcasts-on-channels"},(0,n.yg)("strong",{parentName:"h2"},"Broadcasts on channels")),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"private-message-created.{$conversation_id}")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("inlineCode",{parentName:"li"},"message-new.user.{$participant_id}"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb69cb71.82661032.js b/assets/js/fb69cb71.82661032.js deleted file mode 100644 index 0cbce54..0000000 --- a/assets/js/fb69cb71.82661032.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5485],{3905:function(e,t,n){"use strict";n.d(t,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),m=p(n),c=r,k=m["".concat(l,".").concat(c)]||m[c]||d[c]||s;return n?a.createElement(k,i(i({ref:t},u),{},{components:n})):a.createElement(k,i({ref:t},u))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;pNamespace",id:"namespace",children:[{value:"messages()",id:"messages",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"conversations()",id:"conversations",children:[]},{value:"relatedToMessage()",id:"relatedtomessage",children:[]},{value:"relatedToConversation()",id:"relatedtoconversation",children:[]}]}],u={toc:p};function d(e){var t=e.components,n=(0,r.Z)(e,["components"]);return(0,s.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"namespace"},(0,s.kt)("strong",{parentName:"h2"},"Namespace")),(0,s.kt)("p",null,(0,s.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Traits\\ChatEvent")),(0,s.kt)("h3",{id:"messages"},(0,s.kt)("inlineCode",{parentName:"h3"},"messages()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"adds query for model's messages")),(0,s.kt)("h4",{id:"return"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,s.kt)("h4",{id:"params"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation messages to query for | ",(0,s.kt)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,s.kt)("h4",{id:"params-1"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser belongs to message | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h4",{id:"params-2"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?reply"))," | adds where reply query | ",(0,s.kt)("inlineCode",{parentName:"li"},"array"))),(0,s.kt)("h4",{id:"params-3"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h3",{id:"undelivered"},(0,s.kt)("inlineCode",{parentName:"h3"},"undelivered()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"adds query for model where it messages has not been delivered")),(0,s.kt)("h4",{id:"return-1"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,s.kt)("h3",{id:"conversations"},(0,s.kt)("inlineCode",{parentName:"h3"},"conversations()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"adds query for model's conversations")),(0,s.kt)("h4",{id:"return-2"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,s.kt)("h4",{id:"params-4"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?conversation"))," | conversations to query for | ",(0,s.kt)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,s.kt)("h4",{id:"params-5"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser is a participant | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h4",{id:"params-6"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,s.kt)("inlineCode",{parentName:"li"},"string"))),(0,s.kt)("h3",{id:"relatedtomessage"},(0,s.kt)("inlineCode",{parentName:"h3"},"relatedToMessage()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"checks wherther model is related to the given message")),(0,s.kt)("h4",{id:"return-3"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"bool"))),(0,s.kt)("h4",{id:"params-7"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?message"))," | message to compare relation with | ",(0,s.kt)("inlineCode",{parentName:"li"},"IMessage"))),(0,s.kt)("h3",{id:"relatedtoconversation"},(0,s.kt)("inlineCode",{parentName:"h3"},"relatedToConversation()")),(0,s.kt)("blockquote",null,(0,s.kt)("p",{parentName:"blockquote"},"checks wherther model is related to the given conversation")),(0,s.kt)("h4",{id:"return-4"},"@Return"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},"type ",(0,s.kt)("inlineCode",{parentName:"li"},"bool"))),(0,s.kt)("h4",{id:"params-8"},"@Params"),(0,s.kt)("ul",null,(0,s.kt)("li",{parentName:"ul"},(0,s.kt)("strong",{parentName:"li"},(0,s.kt)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation to compare relation with | ",(0,s.kt)("inlineCode",{parentName:"li"},"IConversation"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb69cb71.c0b554a0.js b/assets/js/fb69cb71.c0b554a0.js new file mode 100644 index 0000000..0fe7bb6 --- /dev/null +++ b/assets/js/fb69cb71.c0b554a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4111],{5680:(e,a,n)=>{n.d(a,{xA:()=>p,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function s(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=t.createContext({}),g=function(e){var a=t.useContext(o),n=a;return e&&(n="function"==typeof e?e(a):i(i({},a),e)),n},p=function(e){var a=g(e.components);return t.createElement(o.Provider,{value:a},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),y=g(n),m=r,u=y["".concat(o,".").concat(m)]||y[m]||d[m]||s;return n?t.createElement(u,i(i({ref:a},p),{},{components:n})):t.createElement(u,i({ref:a},p))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var s=n.length,i=new Array(s);i[0]=m;var l={};for(var o in a)hasOwnProperty.call(a,o)&&(l[o]=a[o]);l.originalType=e,l[y]="string"==typeof e?e:r,i[1]=l;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>i,default:()=>y,frontMatter:()=>s,metadata:()=>l,toc:()=>o});var t=n(8168),r=(n(6540),n(5680));const s={id:"hasMessage",title:"HasMessage APIs",sidebar_label:"HasMessage",slug:"/apis/traits/message/hasMessage"},i=void 0,l={unversionedId:"apis/traits/message/hasMessage",id:"apis/traits/message/hasMessage",isDocsHomePage:!1,title:"HasMessage APIs",description:"Namespace",source:"@site/docs/apis/traits/message/hasMessage.md",sourceDirName:"apis/traits/message",slug:"/apis/traits/message/hasMessage",permalink:"/laravel-chat-system/docs/next/apis/traits/message/hasMessage",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/docs/apis/traits/message/hasMessage.md",version:"current",frontMatter:{id:"hasMessage",title:"HasMessage APIs",sidebar_label:"HasMessage",slug:"/apis/traits/message/hasMessage"},sidebar:"docs",previous:{title:"HasChatEvent",permalink:"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent"},next:{title:"Message Events",permalink:"/laravel-chat-system/docs/next/apis/events/message/events"}},o=[{value:"Namespace",id:"namespace",children:[{value:"messages()",id:"messages",children:[]},{value:"undelivered()",id:"undelivered",children:[]},{value:"conversations()",id:"conversations",children:[]},{value:"relatedToMessage()",id:"relatedtomessage",children:[]},{value:"relatedToConversation()",id:"relatedtoconversation",children:[]}]}],g={toc:o},p="wrapper";function y(e){let{components:a,...n}=e;return(0,r.yg)(p,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Binkode\\ChatSystem\\Traits\\ChatEvent")),(0,r.yg)("h3",{id:"messages"},(0,r.yg)("inlineCode",{parentName:"h3"},"messages()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query for model's messages")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation messages to query for | ",(0,r.yg)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser belongs to message | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?reply"))," | adds where reply query | ",(0,r.yg)("inlineCode",{parentName:"li"},"array"))),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h3",{id:"undelivered"},(0,r.yg)("inlineCode",{parentName:"h3"},"undelivered()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query for model where it messages has not been delivered")),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h3",{id:"conversations"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversations()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query for model's conversations")),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"QueryBuilder"))),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversations to query for | ",(0,r.yg)("inlineCode",{parentName:"li"},"IConversation|int"))),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?otherUser"))," | adds where otherUser is a participant | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds where type query | ",(0,r.yg)("inlineCode",{parentName:"li"},"string"))),(0,r.yg)("h3",{id:"relatedtomessage"},(0,r.yg)("inlineCode",{parentName:"h3"},"relatedToMessage()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"checks wherther model is related to the given message")),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?message"))," | message to compare relation with | ",(0,r.yg)("inlineCode",{parentName:"li"},"IMessage"))),(0,r.yg)("h3",{id:"relatedtoconversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"relatedToConversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"checks wherther model is related to the given conversation")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversation"))," | conversation to compare relation with | ",(0,r.yg)("inlineCode",{parentName:"li"},"IConversation"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fee6fa1d.532fbddd.js b/assets/js/fee6fa1d.532fbddd.js deleted file mode 100644 index 8779712..0000000 --- a/assets/js/fee6fa1d.532fbddd.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5596],{3905:function(e,t,a){"use strict";a.d(t,{Zo:function(){return p},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=d(a),k=r,c=u["".concat(o,".").concat(k)]||u[k]||m[k]||l;return a?n.createElement(c,s(s({ref:t},p),{},{components:a})):n.createElement(c,s({ref:t},p))}));function k(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,s=new Array(l);s[0]=u;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var d=2;dNamespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereNotReadBy()",id:"wherenotreadby",children:[]},{value:"whereNotDeliveredTo()",id:"wherenotdeliveredto",children:[]},{value:"whereNotDeletedBy()",id:"wherenotdeletedby",children:[]},{value:"whereRelatedTo()",id:"whererelatedto",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDeliver()",id:"makedeliver-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],p={toc:d};function m(e){var t=e.components,a=(0,r.Z)(e,["components"]);return(0,l.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h2",{id:"namespace"},(0,l.kt)("strong",{parentName:"h2"},"Namespace")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Message")),(0,l.kt)("h2",{id:"columns"},(0,l.kt)("strong",{parentName:"h2"},"Columns")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"name"),(0,l.kt)("th",{parentName:"tr",align:null},"type"),(0,l.kt)("th",{parentName:"tr",align:null},"description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"conversation_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"user_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"reply_id")),(0,l.kt)("td",{parentName:"tr",align:null},"int"),(0,l.kt)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"reply_type")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"message")),(0,l.kt)("td",{parentName:"tr",align:null},"string"),(0,l.kt)("td",{parentName:"tr",align:null},"message text")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"type")),(0,l.kt)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,l.kt)("td",{parentName:"tr",align:null},"message text")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"metas")),(0,l.kt)("td",{parentName:"tr",align:null},"json"),(0,l.kt)("td",{parentName:"tr",align:null},"message key values")))),(0,l.kt)("h2",{id:"query-builders"},"Query Builders"),(0,l.kt)("p",null,"Message Model Query Builder APIs"),(0,l.kt)("h3",{id:"wherenotsender"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,l.kt)("h4",{id:"params"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,l.kt)("h3",{id:"wherereply"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereReply()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,l.kt)("h4",{id:"params-1"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,l.kt)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,l.kt)("h3",{id:"wheredoesnthavechatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,l.kt)("h4",{id:"params-2"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,l.kt)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"null|Closure"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,l.kt)("h3",{id:"wherenotreadby"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotReadBy()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message is not read by the given user")),(0,l.kt)("h4",{id:"params-3"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotReadBy(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"wherenotdeliveredto"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotDeliveredTo()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message is not delivered to the given user")),(0,l.kt)("h4",{id:"params-4"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeliveredTo(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"wherenotdeletedby"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereNotDeletedBy()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message is not deleted by the given user")),(0,l.kt)("h4",{id:"params-5"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeletedBy(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"whererelatedto"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereRelatedTo()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,l.kt)("h4",{id:"params-6"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedTo(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"hasevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,l.kt)("h4",{id:"params-7"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"callable"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,l.kt)("h3",{id:"hasnoevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,l.kt)("h4",{id:"params-8"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,l.kt)("inlineCode",{parentName:"li"},"callable"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,l.kt)("h3",{id:"whereconversationwasntdeleted"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,l.kt)("h4",{id:"params-9"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,l.kt)("h3",{id:"whereconversationwasntdeleted-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,l.kt)("h4",{id:"params-10"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,l.kt)("h2",{id:"util-methods"},"Util Methods"),(0,l.kt)("h3",{id:"participantshasdeleted"},(0,l.kt)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,l.kt)("h4",{id:"return"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("h4",{id:"params-11"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,l.kt)("inlineCode",{parentName:"li"},"int"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,l.kt)("h3",{id:"makedelete"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"delete")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-1"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-12"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,l.kt)("inlineCode",{parentName:"li"},"true|false")," | ",(0,l.kt)("inlineCode",{parentName:"li"},"bool"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,l.kt)("h3",{id:"makeread"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"read")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-2"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-1"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-13"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,l.kt)("h3",{id:"makedeliver"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,l.kt)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,l.kt)("inlineCode",{parentName:"p"},"message")," through the given ",(0,l.kt)("inlineCode",{parentName:"p"},"user"))),(0,l.kt)("h4",{id:"return-3"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,l.kt)("h4",{id:"emits-2"},"@Emits"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,l.kt)("h4",{id:"params-14"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,l.kt)("inlineCode",{parentName:"li"},"user"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDeliver($user);\n")),(0,l.kt)("h3",{id:"participants"},(0,l.kt)("inlineCode",{parentName:"h3"},"participants()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,l.kt)("h4",{id:"return-4"},"@Return"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"type ",(0,l.kt)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,l.kt)("h4",{id:"params-15"},"@Params"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},(0,l.kt)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,l.kt)("inlineCode",{parentName:"li"},"int|user"))),(0,l.kt)("p",null,"find user from the message's participants"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,l.kt)("h2",{id:"relationships"},"Relationships"),(0,l.kt)("p",null,"These are methods that defines the relationship between models."),(0,l.kt)("h3",{id:"conversation"},(0,l.kt)("inlineCode",{parentName:"h3"},"conversation()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,l.kt)("h3",{id:"chatevents"},(0,l.kt)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message has many chat events")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,l.kt)("h3",{id:"sender"},(0,l.kt)("inlineCode",{parentName:"h3"},"sender()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message belongs to user")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,l.kt)("h3",{id:"reply"},(0,l.kt)("inlineCode",{parentName:"h3"},"reply()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,l.kt)("h2",{id:"collection-methods"},"Collection methods"),(0,l.kt)("p",null,"These are methods that could be called on collection of messages."),(0,l.kt)("h3",{id:"makeread-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeRead()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,l.kt)("h3",{id:"makedelete-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,l.kt)("h3",{id:"makedeliver-1"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user, all: false);\n")),(0,l.kt)("h3",{id:"makechatevent"},(0,l.kt)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fee6fa1d.6fbdcae3.js b/assets/js/fee6fa1d.6fbdcae3.js new file mode 100644 index 0000000..b7dce82 --- /dev/null +++ b/assets/js/fee6fa1d.6fbdcae3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7905],{5680:(e,a,n)=>{n.d(a,{xA:()=>d,yg:()=>u});var t=n(6540);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function s(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=t.createContext({}),g=function(e){var a=t.useContext(o),n=a;return e&&(n="function"==typeof e?e(a):s(s({},a),e)),n},d=function(e){var a=g(e.components);return t.createElement(o.Provider,{value:a},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var a=e.children;return t.createElement(t.Fragment,{},a)}},y=t.forwardRef((function(e,a){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=g(n),y=r,u=p["".concat(o,".").concat(y)]||p[y]||m[y]||l;return n?t.createElement(u,s(s({ref:a},d),{},{components:n})):t.createElement(u,s({ref:a},d))}));function u(e,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof e||r){var l=n.length,s=new Array(l);s[0]=y;var i={};for(var o in a)hasOwnProperty.call(a,o)&&(i[o]=a[o]);i.originalType=e,i[p]="string"==typeof e?e:r,s[1]=i;for(var g=2;g{n.r(a),n.d(a,{contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>o});var t=n(8168),r=(n(6540),n(5680));const l={id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},s=void 0,i={unversionedId:"apis/models/message",id:"version-v1.0.0-beta.0/apis/models/message",isDocsHomePage:!1,title:"Message APIs",description:"Namespace",source:"@site/versioned_docs/version-v1.0.0-beta.0/apis/models/message.md",sourceDirName:"apis/models",slug:"/apis/models/message",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/versioned_docs/version-v1.0.0-beta.0/apis/models/message.md",version:"v1.0.0-beta.0",frontMatter:{id:"message",title:"Message APIs",sidebar_label:"Message",slug:"/apis/models/message"},sidebar:"version-v1.0.0-beta.0/docs",previous:{title:"Listening to broadcast events",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts"},next:{title:"Conversation",permalink:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation"}},o=[{value:"Namespace",id:"namespace",children:[]},{value:"Columns",id:"columns",children:[]},{value:"Query Builders",id:"query-builders",children:[{value:"whereNotSender()",id:"wherenotsender",children:[]},{value:"whereReply()",id:"wherereply",children:[]},{value:"whereDoesntHaveChatEvents()",id:"wheredoesnthavechatevents",children:[]},{value:"whereNotReadBy()",id:"wherenotreadby",children:[]},{value:"whereNotDeliveredTo()",id:"wherenotdeliveredto",children:[]},{value:"whereNotDeletedBy()",id:"wherenotdeletedby",children:[]},{value:"whereRelatedTo()",id:"whererelatedto",children:[]},{value:"hasEvent()",id:"hasevent",children:[]},{value:"HasNoEvent()",id:"hasnoevent",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted",children:[]},{value:"whereConversationWasntDeleted()",id:"whereconversationwasntdeleted-1",children:[]}]},{value:"Util Methods",id:"util-methods",children:[{value:"participantsHasDeleted()",id:"participantshasdeleted",children:[]},{value:"makeDelete()",id:"makedelete",children:[]},{value:"makeRead()",id:"makeread",children:[]},{value:"makeDeliver()",id:"makedeliver",children:[]},{value:"participants()",id:"participants",children:[]}]},{value:"Relationships",id:"relationships",children:[{value:"conversation()",id:"conversation",children:[]},{value:"chatEvents()",id:"chatevents",children:[]},{value:"sender()",id:"sender",children:[]},{value:"reply()",id:"reply",children:[]}]},{value:"Collection methods",id:"collection-methods",children:[{value:"makeRead()",id:"makeread-1",children:[]},{value:"makeDelete()",id:"makedelete-1",children:[]},{value:"makeDeliver()",id:"makedeliver-1",children:[]},{value:"makeChatEvent()",id:"makechatevent",children:[]}]}],g={toc:o},d="wrapper";function p(e){let{components:a,...n}=e;return(0,r.yg)(d,(0,t.A)({},g,n,{components:a,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"namespace"},(0,r.yg)("strong",{parentName:"h2"},"Namespace")),(0,r.yg)("p",null,(0,r.yg)("inlineCode",{parentName:"p"},"Myckhel\\ChatSystem\\Models\\Message")),(0,r.yg)("h2",{id:"columns"},(0,r.yg)("strong",{parentName:"h2"},"Columns")),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"name"),(0,r.yg)("th",{parentName:"tr",align:null},"type"),(0,r.yg)("th",{parentName:"tr",align:null},"description"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"conversation_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"conversation id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"user_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"user id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_id")),(0,r.yg)("td",{parentName:"tr",align:null},"int"),(0,r.yg)("td",{parentName:"tr",align:null},"reply id message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"reply_type")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"reply class message belongs to")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"message")),(0,r.yg)("td",{parentName:"tr",align:null},"string"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"type")),(0,r.yg)("td",{parentName:"tr",align:null},"enum(user, system, activity)"),(0,r.yg)("td",{parentName:"tr",align:null},"message text")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},(0,r.yg)("inlineCode",{parentName:"td"},"metas")),(0,r.yg)("td",{parentName:"tr",align:null},"json"),(0,r.yg)("td",{parentName:"tr",align:null},"message key values")))),(0,r.yg)("h2",{id:"query-builders"},"Query Builders"),(0,r.yg)("p",null,"Message Model Query Builder APIs"),(0,r.yg)("h3",{id:"wherenotsender"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotSender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query to to exclude the given user")),(0,r.yg)("h4",{id:"params"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotSender($user)->get();\n")),(0,r.yg)("h3",{id:"wherereply"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereReply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query condition on the given reply_id and or reply_type")),(0,r.yg)("h4",{id:"params-1"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"reply"))," | message sender to exclude. | ",(0,r.yg)("inlineCode",{parentName:"li"},"array[reply_id => int, reply_type => string]"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereReply([\n 'reply_id' => 1,\n 'reply_type' => Message::class\n])->get();\n")),(0,r.yg)("h3",{id:"wheredoesnthavechatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereDoesntHaveChatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message doesn't have chatEvents")),(0,r.yg)("h4",{id:"params-2"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?type"))," | adds condition where = message chatEvents.type. | ",(0,r.yg)("inlineCode",{parentName:"li"},"string(read|delete|deliver)")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?conversationScope"))," | callback to get the conversation query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"null|Closure"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereDoesntHaveChatEvents(\n 'read',\n $user,\n fn ($query) => $query->where('created_at', '<', NOW())\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotreadby"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotReadBy()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not read by the given user")),(0,r.yg)("h4",{id:"params-3"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotReadBy(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotdeliveredto"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotDeliveredTo()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not delivered to the given user")),(0,r.yg)("h4",{id:"params-4"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeliveredTo(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"wherenotdeletedby"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereNotDeletedBy()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message is not deleted by the given user")),(0,r.yg)("h4",{id:"params-5"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where user = message chatEvents maker | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereNotDeletedBy(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whererelatedto"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereRelatedTo()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has participant = user")),(0,r.yg)("h4",{id:"params-6"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | adds condition where user = participant | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|IChatEventMaker|null"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereRelatedTo(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"hasevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"hasEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has chatEvents")),(0,r.yg)("h4",{id:"params-7"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::hasEvents(\n fn ($q) => $q->whereType('read'),\n)->get();\n")),(0,r.yg)("h3",{id:"hasnoevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"HasNoEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"adds query where message has no chatEvents")),(0,r.yg)("h4",{id:"params-8"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"eventScope?"))," | callback to get the chatEvents query object. | ",(0,r.yg)("inlineCode",{parentName:"li"},"callable"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::HasNoEvent(\n fn ($q) => $q->whereType('deliver'),\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-9"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h3",{id:"whereconversationwasntdeleted-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"whereConversationWasntDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"query where message's conversation has not been deleted")),(0,r.yg)("h4",{id:"params-10"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"by?"))," | adds condition where conversation was not deleted by the given user. | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"Message::whereConversationWasntDeleted(\n $user,\n)->get();\n")),(0,r.yg)("h2",{id:"util-methods"},"Util Methods"),(0,r.yg)("h3",{id:"participantshasdeleted"},(0,r.yg)("inlineCode",{parentName:"h3"},"participantsHasDeleted()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"check if message has been deleted by all participants of the conversation message belongs to.")),(0,r.yg)("h4",{id:"return"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("h4",{id:"params-11"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?maker_id"))," | chatEvent maker_id to exclude | ",(0,r.yg)("inlineCode",{parentName:"li"},"int"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participantsHasDeleted($user->id); // true|false\n")),(0,r.yg)("h3",{id:"makedelete"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"delete")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-1"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-12"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?all"))," | specify whether to apply event for all. this should set the chat event column to ",(0,r.yg)("inlineCode",{parentName:"li"},"true|false")," | ",(0,r.yg)("inlineCode",{parentName:"li"},"bool"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDelete($user);\n")),(0,r.yg)("h3",{id:"makeread"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"read")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-2"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-1"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-13"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedeliver"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"create a chatEvent of type ",(0,r.yg)("inlineCode",{parentName:"p"},"deliver")," for the ",(0,r.yg)("inlineCode",{parentName:"p"},"message")," through the given ",(0,r.yg)("inlineCode",{parentName:"p"},"user"))),(0,r.yg)("h4",{id:"return-3"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"chatEvent"},"ChatEvent Model"))),(0,r.yg)("h4",{id:"emits-2"},"@Emits"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("a",{parentName:"li",href:"../events/message/events"},"Message Events"))),(0,r.yg)("h4",{id:"params-14"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"user"))," | user to assign the event to | ",(0,r.yg)("inlineCode",{parentName:"li"},"user"))),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->makeDeliver($user);\n")),(0,r.yg)("h3",{id:"participants"},(0,r.yg)("inlineCode",{parentName:"h3"},"participants()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Query participants of the conversation the message belongs to.")),(0,r.yg)("h4",{id:"return-4"},"@Return"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"type ",(0,r.yg)("inlineCode",{parentName:"li"},"ConversationUser Query Builder"))),(0,r.yg)("h4",{id:"params-15"},"@Params"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},(0,r.yg)("inlineCode",{parentName:"strong"},"?user"))," | adds condition where participant = user | ",(0,r.yg)("inlineCode",{parentName:"li"},"int|user"))),(0,r.yg)("p",null,"find user from the message's participants"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->participants($otherUser)->find(); // ConversationUser|null\n")),(0,r.yg)("h2",{id:"relationships"},"Relationships"),(0,r.yg)("p",null,"These are methods that defines the relationship between models."),(0,r.yg)("h3",{id:"conversation"},(0,r.yg)("inlineCode",{parentName:"h3"},"conversation()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Conversation message belongs to.")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->conversation->id;\n")),(0,r.yg)("h3",{id:"chatevents"},(0,r.yg)("inlineCode",{parentName:"h3"},"chatEvents()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message has many chat events")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->chatEvents;\n")),(0,r.yg)("h3",{id:"sender"},(0,r.yg)("inlineCode",{parentName:"h3"},"sender()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to user")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->user;\n")),(0,r.yg)("h3",{id:"reply"},(0,r.yg)("inlineCode",{parentName:"h3"},"reply()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Message belongs to message as reply")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$message = $user->messages()->first();\n$message->reply;\n")),(0,r.yg)("h2",{id:"collection-methods"},"Collection methods"),(0,r.yg)("p",null,"These are methods that could be called on collection of messages."),(0,r.yg)("h3",{id:"makeread-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeRead()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as read,\npass a user arg to specify the user reading the messages. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeRead($user);\n")),(0,r.yg)("h3",{id:"makedelete-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDelete()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as deleted,\npass a user arg to specify the user deleting the messages.\npass a all arg to delete the messages for a participants of the message conversation. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDelete(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makedeliver-1"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeDeliver()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to mark messages as delivered,\npass a user arg to specify the user which messages are being delivered to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeDeliver(user: $user, all: false);\n")),(0,r.yg)("h3",{id:"makechatevent"},(0,r.yg)("inlineCode",{parentName:"h3"},"makeChatEvent()")),(0,r.yg)("blockquote",null,(0,r.yg)("p",{parentName:"blockquote"},"Method to make events for messages,\npass a user arg to specify the user making the event.\npass a type arg to specify the type of the event.\npass a all arg to specify the event is for all participant of the conversation message belongs to. ")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-php"},"$messages = $user->messages()->get();\n\n$messages->makeChatEvent(user: $user, type: 'delete', all: false);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.6de781f7.js b/assets/js/main.6de781f7.js new file mode 100644 index 0000000..52fc4f9 --- /dev/null +++ b/assets/js/main.6de781f7.js @@ -0,0 +1,2 @@ +/*! For license information please see main.6de781f7.js.LICENSE.txt */ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8792],{5091:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});const a={title:"Laravel Chat System",tagline:"Simple Laravel Chat Library",url:"https://binkode.github.io",baseUrl:"/laravel-chat-system/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"binkode",projectName:"laravel-chat-system",themeConfig:{prism:{additionalLanguages:["php"],defaultLanguage:"php",darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},theme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]}},navbar:{title:"Laravel Chat System",logo:{alt:"Laravel Chat System",src:"img/logo.png"},items:[{type:"docsVersionDropdown",position:"left",dropdownActiveClassDisabled:!0,dropdownItemsBefore:[],dropdownItemsAfter:[]},{to:"docs/",activeBasePath:"docs",label:"Docs",position:"left"},{href:"https://github.com/binkode/laravel-chat-system-docs",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Getting Started",to:"docs/"}]},{title:"Community",items:[{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/laravel-chat-system"}]},{title:"More",items:[{label:"Blog",to:"blog"},{label:"GitHub",href:"https://github.com/binkode/laravel-chat-system"}]}],copyright:"Copyright \xa9 2025 Laravel Chat System, Inc. Built with Docusaurus."},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1,switchConfig:{darkIcon:"\ud83c\udf1c",darkIconStyle:{},lightIcon:"\ud83c\udf1e",lightIconStyle:{}}},docs:{versionPersistence:"localStorage"},metadatas:[],hideableSidebar:!1},presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/Users/user/Desktop/apps/package/chat-system/docs/sidebars.js",editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/"},blog:{showReadingTime:!0,editUrl:"https://github.com/binkode/laravel-chat-system-docs/edit/master/"},theme:{customCss:"/Users/user/Desktop/apps/package/chat-system/docs/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",customFields:{},plugins:[],themes:[],titleDelimiter:"|",noIndex:!1}},9555:(e,t,n)=>{"use strict";var a=n(6540),r=n(961),o=n(4625),s=n(4599),i=n.n(s);const l=e=>{let{error:t,retry:n,pastDelay:r}=e;return t?a.createElement("div",{style:{align:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},a.createElement("p",null,t.message),a.createElement("div",null,a.createElement("button",{type:"button",onClick:n},"Retry"))):r?a.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},a.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},a.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},a.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},a.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),a.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),a.createElement("circle",{cx:"22",cy:"22",r:"8"},a.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null},c=JSON.parse('{"/laravel-chat-system/-530":{"component":"c4f5d8e4","config":"5e9f5e1a"},"/laravel-chat-system/blog-393":{"component":"a6aa9e1f","sidebar":"814f3328","items":[{"content":"3570154c"}],"metadata":"7461c12e"},"/laravel-chat-system/blog/hello-world-df8":{"component":"ccc49370","sidebar":"814f3328","content":"d610846f"},"/laravel-chat-system/blog/tags-8a2":{"component":"01a85c17","sidebar":"814f3328","tags":"c6e24a80"},"/laravel-chat-system/blog/tags/docusaurus-981":{"component":"6875c492","sidebar":"814f3328","items":[{"content":"3570154c"}],"metadata":"55b06f29"},"/laravel-chat-system/blog/tags/hello-5e8":{"component":"6875c492","sidebar":"814f3328","items":[{"content":"3570154c"}],"metadata":"d44911f8"},"/laravel-chat-system/markdown-page-ae6":{"component":"1f391b9e","content":"393be207"},"/laravel-chat-system/docs/next-aa9":{"component":"1be78505","versionMetadata":"935f2afb"},"/laravel-chat-system/docs/next/-ffe":{"component":"17896441","content":"0e384e19"},"/laravel-chat-system/docs/next/apis/chatsytem-d16":{"component":"17896441","content":"d5102270"},"/laravel-chat-system/docs/next/apis/events/message/created-df8":{"component":"17896441","content":"f9b5df66"},"/laravel-chat-system/docs/next/apis/events/message/events-ae8":{"component":"17896441","content":"b7a14f04"},"/laravel-chat-system/docs/next/apis/models/chatEvent-3c8":{"component":"17896441","content":"37a05969"},"/laravel-chat-system/docs/next/apis/models/conversation-e40":{"component":"17896441","content":"b605f743"},"/laravel-chat-system/docs/next/apis/models/message-b9d":{"component":"17896441","content":"c4e806d8"},"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent-7ee":{"component":"17896441","content":"4e11e886"},"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent-4a6":{"component":"17896441","content":"23eddd52"},"/laravel-chat-system/docs/next/apis/traits/message/hasMessage-f44":{"component":"17896441","content":"fb69cb71"},"/laravel-chat-system/docs/next/guides/broadcasts-ba8":{"component":"17896441","content":"255abc40"},"/laravel-chat-system/docs/next/guides/chatEvent-8bf":{"component":"17896441","content":"e68f5092"},"/laravel-chat-system/docs/next/guides/configure-d3b":{"component":"17896441","content":"cf597cf6"},"/laravel-chat-system/docs/next/guides/conversation-614":{"component":"17896441","content":"77dc3123"},"/laravel-chat-system/docs/next/guides/message-6de":{"component":"17896441","content":"68e4957e"},"/laravel-chat-system/docs/next/guides/models-7d4":{"component":"17896441","content":"d2420314"},"/laravel-chat-system/docs/next/guides/providers-892":{"component":"17896441","content":"55d12db4"},"/laravel-chat-system/docs/next/guides/routes-f73":{"component":"17896441","content":"42aaa084"},"/laravel-chat-system/docs/next/install-227":{"component":"17896441","content":"c4de80f8"},"/laravel-chat-system/docs/next/requirements-67e":{"component":"17896441","content":"1c6097b5"},"/laravel-chat-system/docs/v1.0-alpha.3-471":{"component":"1be78505","versionMetadata":"728f0bd2"},"/laravel-chat-system/docs/v1.0-alpha.3/-4c9":{"component":"17896441","content":"391c3402"},"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem-25a":{"component":"17896441","content":"137e37e3"},"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created-a64":{"component":"17896441","content":"37ec4886"},"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events-6a1":{"component":"17896441","content":"98cac8af"},"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent-869":{"component":"17896441","content":"9499d50b"},"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation-a60":{"component":"17896441","content":"893980f7"},"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message-b84":{"component":"17896441","content":"821319ba"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts-848":{"component":"17896441","content":"5e0b1e7e"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent-cb2":{"component":"17896441","content":"555f0864"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure-a4d":{"component":"17896441","content":"49cb310b"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation-5dc":{"component":"17896441","content":"0c30993e"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/message-adb":{"component":"17896441","content":"a3336c33"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/models-396":{"component":"17896441","content":"d52f8d63"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers-efe":{"component":"17896441","content":"6565d99e"},"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes-dbb":{"component":"17896441","content":"18878762"},"/laravel-chat-system/docs/v1.0-alpha.3/install-ee6":{"component":"17896441","content":"ea59044a"},"/laravel-chat-system/docs/v1.0-alpha.3/requirements-2dd":{"component":"17896441","content":"affc9ec8"},"/laravel-chat-system/docs/v1.0.0-beta.0-8cf":{"component":"1be78505","versionMetadata":"1c8e0551"},"/laravel-chat-system/docs/v1.0.0-beta.0/-235":{"component":"17896441","content":"4b6591f7"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem-184":{"component":"17896441","content":"26455e38"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created-423":{"component":"17896441","content":"09222012"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events-3ba":{"component":"17896441","content":"c3d5df2c"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent-5be":{"component":"17896441","content":"a7e50a2f"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation-3da":{"component":"17896441","content":"bc1d9ff3"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message-3dc":{"component":"17896441","content":"fee6fa1d"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent-22e":{"component":"17896441","content":"b4fbb582"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent-909":{"component":"17896441","content":"15e7592a"},"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage-ee2":{"component":"17896441","content":"491860cd"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts-77a":{"component":"17896441","content":"9e11f74a"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent-7f4":{"component":"17896441","content":"50d39d4f"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure-e89":{"component":"17896441","content":"0e7c3800"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation-c04":{"component":"17896441","content":"097e01eb"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message-412":{"component":"17896441","content":"06999ba5"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models-0c5":{"component":"17896441","content":"f132c5eb"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers-910":{"component":"17896441","content":"d1105fff"},"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes-5fa":{"component":"17896441","content":"d19a2e56"},"/laravel-chat-system/docs/v1.0.0-beta.0/install-2dd":{"component":"17896441","content":"3ff56a6d"},"/laravel-chat-system/docs/v1.0.0-beta.0/requirements-062":{"component":"17896441","content":"b6bce693"},"/laravel-chat-system/docs-d32":{"component":"1be78505","versionMetadata":"44852a98"},"/laravel-chat-system/docs/-a63":{"component":"17896441","content":"33d4be6b"},"/laravel-chat-system/docs/apis/chatsytem-af5":{"component":"17896441","content":"7ffe32ea"},"/laravel-chat-system/docs/apis/events/message/created-f48":{"component":"17896441","content":"7e7dcd04"},"/laravel-chat-system/docs/apis/events/message/events-38d":{"component":"17896441","content":"bba84d3d"},"/laravel-chat-system/docs/apis/models/chatEvent-b3e":{"component":"17896441","content":"014d94b1"},"/laravel-chat-system/docs/apis/models/conversation-773":{"component":"17896441","content":"27aed3f4"},"/laravel-chat-system/docs/apis/models/message-4df":{"component":"17896441","content":"d8a0deca"},"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent-f2e":{"component":"17896441","content":"4c86028c"},"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent-6b7":{"component":"17896441","content":"34bd3ebc"},"/laravel-chat-system/docs/apis/traits/message/hasMessage-ac7":{"component":"17896441","content":"84c60894"},"/laravel-chat-system/docs/guides/broadcasts-bad":{"component":"17896441","content":"4381b18a"},"/laravel-chat-system/docs/guides/chatEvent-91e":{"component":"17896441","content":"a3c53e6a"},"/laravel-chat-system/docs/guides/configure-665":{"component":"17896441","content":"40fa82e9"},"/laravel-chat-system/docs/guides/conversation-4ab":{"component":"17896441","content":"f8a052a3"},"/laravel-chat-system/docs/guides/message-f9b":{"component":"17896441","content":"e7764ff1"},"/laravel-chat-system/docs/guides/models-faa":{"component":"17896441","content":"affba670"},"/laravel-chat-system/docs/guides/providers-898":{"component":"17896441","content":"13451d4c"},"/laravel-chat-system/docs/guides/routes-d8b":{"component":"17896441","content":"f2f1ace8"},"/laravel-chat-system/docs/install-606":{"component":"17896441","content":"933e2d77"},"/laravel-chat-system/docs/requirements-c99":{"component":"17896441","content":"b4abfadd"}}'),u={"014d94b1":[()=>n.e(3550).then(n.bind(n,5776)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/models/chatEvent.md",5776],"01a85c17":[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(8209)]).then(n.bind(n,3395)),"@theme/BlogTagsListPage",3395],"06999ba5":[()=>n.e(1028).then(n.bind(n,4832)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/message.md",4832],"09222012":[()=>n.e(7621).then(n.bind(n,8229)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/events/message/created.md",8229],"097e01eb":[()=>n.e(1262).then(n.bind(n,5560)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/conversation.md",5560],"0c30993e":[()=>n.e(5979).then(n.bind(n,8728)),"@site/versioned_docs/version-v1.0-alpha.3/guides/conversation.md",8728],"0e384e19":[()=>n.e(3976).then(n.bind(n,7235)),"@site/docs/intro.md",7235],"0e7c3800":[()=>n.e(2761).then(n.bind(n,7251)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/configure.md",7251],"13451d4c":[()=>n.e(6338).then(n.bind(n,5301)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/providers.md",5301],"137e37e3":[()=>n.e(9161).then(n.bind(n,9771)),"@site/versioned_docs/version-v1.0-alpha.3/apis/chatSystem.md",9771],"15e7592a":[()=>n.e(7356).then(n.bind(n,1920)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent.md",1920],17896441:[()=>Promise.all([n.e(1869),n.e(5345),n.e(8401)]).then(n.bind(n,7129)),"@theme/DocItem",7129],18878762:[()=>n.e(1732).then(n.bind(n,7454)),"@site/versioned_docs/version-v1.0-alpha.3/guides/routes.md",7454],"1be78505":[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(6896),n.e(8714)]).then(n.bind(n,106)),"@theme/DocPage",106],"1c6097b5":[()=>n.e(7806).then(n.bind(n,1682)),"@site/docs/require.md",1682],"1c8e0551":[()=>n.e(6609).then(n.t.bind(n,4060,19)),"~docs/default/version-v-1-0-0-beta-0-metadata-prop-392.json",4060],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(6896),n.e(6061)]).then(n.bind(n,3933)),"@theme/MDXPage",3933],"23eddd52":[()=>n.e(9568).then(n.bind(n,5704)),"@site/docs/apis/traits/chatEvent/hasChatEvent.md",5704],"255abc40":[()=>n.e(6439).then(n.bind(n,9331)),"@site/docs/guides/broadcasts.md",9331],"26455e38":[()=>n.e(6581).then(n.bind(n,1140)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/chatSystem.md",1140],"27aed3f4":[()=>n.e(5981).then(n.bind(n,1271)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/models/conversation.md",1271],"33d4be6b":[()=>n.e(8126).then(n.bind(n,9919)),"@site/versioned_docs/version-v1.0.0-beta.4/intro.md",9919],"34bd3ebc":[()=>n.e(3445).then(n.bind(n,5868)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/traits/chatEvent/hasChatEvent.md",5868],"3570154c":[()=>n.e(8475).then(n.bind(n,7044)),"@site/blog/2019-05-29-hello-world.md?truncated=true",7044],"37a05969":[()=>n.e(2299).then(n.bind(n,4772)),"@site/docs/apis/models/chatEvent.md",4772],"37ec4886":[()=>n.e(2831).then(n.bind(n,8094)),"@site/versioned_docs/version-v1.0-alpha.3/apis/events/message/created.md",8094],"391c3402":[()=>n.e(1720).then(n.bind(n,6668)),"@site/versioned_docs/version-v1.0-alpha.3/intro.md",6668],"393be207":[()=>n.e(4134).then(n.bind(n,4666)),"@site/src/pages/markdown-page.md",4666],"3ff56a6d":[()=>n.e(8282).then(n.bind(n,3942)),"@site/versioned_docs/version-v1.0.0-beta.0/install.md",3942],"40fa82e9":[()=>n.e(4620).then(n.bind(n,7247)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/configure.md",7247],"42aaa084":[()=>n.e(6256).then(n.bind(n,7469)),"@site/docs/guides/routes.md",7469],"4381b18a":[()=>n.e(7259).then(n.bind(n,9511)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/broadcasts.md",9511],"44852a98":[()=>n.e(6498).then(n.t.bind(n,6338,19)),"~docs/default/version-v-1-0-0-beta-4-metadata-prop-5ef.json",6338],"491860cd":[()=>n.e(4978).then(n.bind(n,3210)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/traits/message/hasMessage.md",3210],"49cb310b":[()=>n.e(7591).then(n.bind(n,4842)),"@site/versioned_docs/version-v1.0-alpha.3/guides/configure.md",4842],"4b6591f7":[()=>n.e(8481).then(n.bind(n,3819)),"@site/versioned_docs/version-v1.0.0-beta.0/intro.md",3819],"4c86028c":[()=>n.e(1151).then(n.bind(n,1088)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/traits/chatEvent/canMakeChatEvent.md",1088],"4e11e886":[()=>n.e(6641).then(n.bind(n,1268)),"@site/docs/apis/traits/chatEvent/canMakeChatEvent.md",1268],"50d39d4f":[()=>n.e(4914).then(n.bind(n,6665)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/chatEvent.md",6665],"555f0864":[()=>n.e(5830).then(n.bind(n,4756)),"@site/versioned_docs/version-v1.0-alpha.3/guides/chatEvent.md",4756],"55b06f29":[()=>n.e(5076).then(n.t.bind(n,586,19)),"~blog/default/laravel-chat-system-blog-tags-docusaurus-15d.json",586],"55d12db4":[()=>n.e(7832).then(n.bind(n,2225)),"@site/docs/guides/providers.md",2225],"5e0b1e7e":[()=>n.e(5633).then(n.bind(n,600)),"@site/versioned_docs/version-v1.0-alpha.3/guides/broadcasts.md",600],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,5091)),"@generated/docusaurus.config",5091],"6565d99e":[()=>n.e(4124).then(n.bind(n,8848)),"@site/versioned_docs/version-v1.0-alpha.3/guides/providers.md",8848],"6875c492":[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(6896),n.e(4813)]).then(n.bind(n,6033)),"@theme/BlogTagsPostsPage",6033],"68e4957e":[()=>n.e(1684).then(n.bind(n,6056)),"@site/docs/guides/message.md",6056],"728f0bd2":[()=>n.e(9606).then(n.t.bind(n,9140,19)),"~docs/default/version-v-1-0-alpha-3-metadata-prop-98a.json",9140],"7461c12e":[()=>n.e(2742).then(n.t.bind(n,3330,19)),"~blog/default/laravel-chat-system-blog-abd.json",3330],"77dc3123":[()=>n.e(9239).then(n.bind(n,5264)),"@site/docs/guides/conversation.md",5264],"7e7dcd04":[()=>n.e(8075).then(n.bind(n,2657)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/events/message/created.md",2657],"7ffe32ea":[()=>n.e(1150).then(n.bind(n,7496)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/chatSystem.md",7496],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"821319ba":[()=>n.e(1940).then(n.bind(n,8566)),"@site/versioned_docs/version-v1.0-alpha.3/apis/models/message.md",8566],"84c60894":[()=>n.e(695).then(n.bind(n,5654)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/traits/message/hasMessage.md",5654],"893980f7":[()=>n.e(6167).then(n.bind(n,8598)),"@site/versioned_docs/version-v1.0-alpha.3/apis/models/conversation.md",8598],"933e2d77":[()=>n.e(5203).then(n.bind(n,5586)),"@site/versioned_docs/version-v1.0.0-beta.4/install.md",5586],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"9499d50b":[()=>n.e(4721).then(n.bind(n,1575)),"@site/versioned_docs/version-v1.0-alpha.3/apis/models/chatEvent.md",1575],"98cac8af":[()=>n.e(332).then(n.bind(n,2129)),"@site/versioned_docs/version-v1.0-alpha.3/apis/events/message/events.md",2129],"9e11f74a":[()=>n.e(3795).then(n.bind(n,5323)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/broadcasts.md",5323],a3336c33:[()=>n.e(2142).then(n.bind(n,2573)),"@site/versioned_docs/version-v1.0-alpha.3/guides/message.md",2573],a3c53e6a:[()=>n.e(4704).then(n.bind(n,293)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/chatEvent.md",293],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(6896),n.e(7643)]).then(n.bind(n,3861)),"@theme/BlogListPage",3861],a7e50a2f:[()=>n.e(7392).then(n.bind(n,4332)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/models/chatEvent.md",4332],affba670:[()=>n.e(7426).then(n.bind(n,645)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/models.md",645],affc9ec8:[()=>n.e(2004).then(n.bind(n,3613)),"@site/versioned_docs/version-v1.0-alpha.3/require.md",3613],b4abfadd:[()=>n.e(8711).then(n.bind(n,6894)),"@site/versioned_docs/version-v1.0.0-beta.4/require.md",6894],b4fbb582:[()=>n.e(2224).then(n.bind(n,300)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent.md",300],b605f743:[()=>n.e(7572).then(n.bind(n,2523)),"@site/docs/apis/models/conversation.md",2523],b6bce693:[()=>n.e(3431).then(n.bind(n,6282)),"@site/versioned_docs/version-v1.0.0-beta.0/require.md",6282],b7a14f04:[()=>n.e(6810).then(n.bind(n,2584)),"@site/docs/apis/events/message/events.md",2584],bba84d3d:[()=>n.e(505).then(n.bind(n,108)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/events/message/events.md",108],bc1d9ff3:[()=>n.e(3261).then(n.bind(n,2179)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/models/conversation.md",2179],c3d5df2c:[()=>n.e(655).then(n.bind(n,6992)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/events/message/events.md",6992],c4de80f8:[()=>n.e(2777).then(n.bind(n,1182)),"@site/docs/install.md",1182],c4e806d8:[()=>n.e(2631).then(n.bind(n,7485)),"@site/docs/apis/models/message.md",7485],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(2634)]).then(n.bind(n,4349)),"@site/src/pages/index.js",4349],c6e24a80:[()=>n.e(6020).then(n.t.bind(n,2845,19)),"~blog/default/laravel-chat-system-blog-tags-tags-7c0.json",2845],ccc49370:[()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(6896),n.e(3249)]).then(n.bind(n,2111)),"@theme/BlogPostPage",2111],cf597cf6:[()=>n.e(1956).then(n.bind(n,7915)),"@site/docs/guides/configure.md",7915],d1105fff:[()=>n.e(7724).then(n.bind(n,5737)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/providers.md",5737],d19a2e56:[()=>n.e(294).then(n.bind(n,3157)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/routes.md",3157],d2420314:[()=>n.e(5507).then(n.bind(n,1169)),"@site/docs/guides/models.md",1169],d44911f8:[()=>n.e(9422).then(n.t.bind(n,2631,19)),"~blog/default/laravel-chat-system-blog-tags-hello-9c9.json",2631],d5102270:[()=>n.e(9303).then(n.bind(n,1516)),"@site/docs/apis/chatSystem.md",1516],d52f8d63:[()=>n.e(7923).then(n.bind(n,5018)),"@site/versioned_docs/version-v1.0-alpha.3/guides/models.md",5018],d610846f:[()=>n.e(330).then(n.bind(n,7048)),"@site/blog/2019-05-29-hello-world.md",7048],d8a0deca:[()=>n.e(337).then(n.bind(n,3705)),"@site/versioned_docs/version-v1.0.0-beta.4/apis/models/message.md",3705],e68f5092:[()=>n.e(2614).then(n.bind(n,3649)),"@site/docs/guides/chatEvent.md",3649],e7764ff1:[()=>n.e(49).then(n.bind(n,8220)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/message.md",8220],ea59044a:[()=>n.e(9922).then(n.bind(n,385)),"@site/versioned_docs/version-v1.0-alpha.3/install.md",385],f132c5eb:[()=>n.e(4270).then(n.bind(n,4521)),"@site/versioned_docs/version-v1.0.0-beta.0/guides/models.md",4521],f2f1ace8:[()=>n.e(9387).then(n.bind(n,4377)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/routes.md",4377],f8a052a3:[()=>n.e(9383).then(n.bind(n,5828)),"@site/versioned_docs/version-v1.0.0-beta.4/guides/conversation.md",5828],f9b5df66:[()=>n.e(6513).then(n.bind(n,3021)),"@site/docs/apis/events/message/created.md",3021],fb69cb71:[()=>n.e(4111).then(n.bind(n,3378)),"@site/docs/apis/traits/message/hasMessage.md",3378],fee6fa1d:[()=>n.e(7905).then(n.bind(n,949)),"@site/versioned_docs/version-v1.0.0-beta.0/apis/models/message.md",949]};const d=function(e){const t={};return function e(n,a){Object.keys(n).forEach((r=>{const o=n[r],s=a?a+"."+r:r;"object"===typeof o&&!!o&&Object.keys(o).length?e(o,s):t[s]=o}))}(e),t};const p=function(e,t){if("*"===e)return i()({loading:l,loader:()=>Promise.all([n.e(1869),n.e(5345),n.e(5241),n.e(9090)]).then(n.bind(n,9090))});const r=c[`${e}-${t}`],o=[],s=[],p={},f=d(r);return Object.keys(f).forEach((e=>{const t=u[f[e]];t&&(p[e]=t[0],o.push(t[1]),s.push(t[2]))})),i().Map({loading:l,loader:p,modules:o,webpack:()=>s,render:(e,t)=>{const n=JSON.parse(JSON.stringify(r));Object.keys(e).forEach((t=>{let a=n;const r=t.split(".");for(let e=0;e"default"!==e));o&&o.length&&o.forEach((n=>{a[r[r.length-1]][n]=e[t][n]}))}));const o=n.component;return delete n.component,a.createElement(o,{...n,...t})}})},f=[{path:"/laravel-chat-system/",component:p("/laravel-chat-system/","530"),exact:!0},{path:"/laravel-chat-system/blog",component:p("/laravel-chat-system/blog","393"),exact:!0},{path:"/laravel-chat-system/blog/hello-world",component:p("/laravel-chat-system/blog/hello-world","df8"),exact:!0},{path:"/laravel-chat-system/blog/tags",component:p("/laravel-chat-system/blog/tags","8a2"),exact:!0},{path:"/laravel-chat-system/blog/tags/docusaurus",component:p("/laravel-chat-system/blog/tags/docusaurus","981"),exact:!0},{path:"/laravel-chat-system/blog/tags/hello",component:p("/laravel-chat-system/blog/tags/hello","5e8"),exact:!0},{path:"/laravel-chat-system/markdown-page",component:p("/laravel-chat-system/markdown-page","ae6"),exact:!0},{path:"/laravel-chat-system/docs/next",component:p("/laravel-chat-system/docs/next","aa9"),routes:[{path:"/laravel-chat-system/docs/next/",component:p("/laravel-chat-system/docs/next/","ffe"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/chatsytem",component:p("/laravel-chat-system/docs/next/apis/chatsytem","d16"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/events/message/created",component:p("/laravel-chat-system/docs/next/apis/events/message/created","df8"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/events/message/events",component:p("/laravel-chat-system/docs/next/apis/events/message/events","ae8"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/models/chatEvent",component:p("/laravel-chat-system/docs/next/apis/models/chatEvent","3c8"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/models/conversation",component:p("/laravel-chat-system/docs/next/apis/models/conversation","e40"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/models/message",component:p("/laravel-chat-system/docs/next/apis/models/message","b9d"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent",component:p("/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent","7ee"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent",component:p("/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent","4a6"),exact:!0},{path:"/laravel-chat-system/docs/next/apis/traits/message/hasMessage",component:p("/laravel-chat-system/docs/next/apis/traits/message/hasMessage","f44"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/broadcasts",component:p("/laravel-chat-system/docs/next/guides/broadcasts","ba8"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/chatEvent",component:p("/laravel-chat-system/docs/next/guides/chatEvent","8bf"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/configure",component:p("/laravel-chat-system/docs/next/guides/configure","d3b"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/conversation",component:p("/laravel-chat-system/docs/next/guides/conversation","614"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/message",component:p("/laravel-chat-system/docs/next/guides/message","6de"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/models",component:p("/laravel-chat-system/docs/next/guides/models","7d4"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/providers",component:p("/laravel-chat-system/docs/next/guides/providers","892"),exact:!0},{path:"/laravel-chat-system/docs/next/guides/routes",component:p("/laravel-chat-system/docs/next/guides/routes","f73"),exact:!0},{path:"/laravel-chat-system/docs/next/install",component:p("/laravel-chat-system/docs/next/install","227"),exact:!0},{path:"/laravel-chat-system/docs/next/requirements",component:p("/laravel-chat-system/docs/next/requirements","67e"),exact:!0}]},{path:"/laravel-chat-system/docs/v1.0-alpha.3",component:p("/laravel-chat-system/docs/v1.0-alpha.3","471"),routes:[{path:"/laravel-chat-system/docs/v1.0-alpha.3/",component:p("/laravel-chat-system/docs/v1.0-alpha.3/","4c9"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem",component:p("/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem","25a"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created",component:p("/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created","a64"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events",component:p("/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events","6a1"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent",component:p("/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent","869"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation",component:p("/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation","a60"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message",component:p("/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message","b84"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts","848"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent","cb2"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/configure","a4d"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation","5dc"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/message",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/message","adb"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/models",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/models","396"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/providers","efe"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes",component:p("/laravel-chat-system/docs/v1.0-alpha.3/guides/routes","dbb"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/install",component:p("/laravel-chat-system/docs/v1.0-alpha.3/install","ee6"),exact:!0},{path:"/laravel-chat-system/docs/v1.0-alpha.3/requirements",component:p("/laravel-chat-system/docs/v1.0-alpha.3/requirements","2dd"),exact:!0}]},{path:"/laravel-chat-system/docs/v1.0.0-beta.0",component:p("/laravel-chat-system/docs/v1.0.0-beta.0","8cf"),routes:[{path:"/laravel-chat-system/docs/v1.0.0-beta.0/",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/","235"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem","184"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created","423"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events","3ba"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent","5be"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation","3da"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message","3dc"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent","22e"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent","909"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage","ee2"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts","77a"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent","7f4"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure","e89"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation","c04"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/message","412"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/models","0c5"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers","910"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes","5fa"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/install",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/install","2dd"),exact:!0},{path:"/laravel-chat-system/docs/v1.0.0-beta.0/requirements",component:p("/laravel-chat-system/docs/v1.0.0-beta.0/requirements","062"),exact:!0}]},{path:"/laravel-chat-system/docs",component:p("/laravel-chat-system/docs","d32"),routes:[{path:"/laravel-chat-system/docs/",component:p("/laravel-chat-system/docs/","a63"),exact:!0},{path:"/laravel-chat-system/docs/apis/chatsytem",component:p("/laravel-chat-system/docs/apis/chatsytem","af5"),exact:!0},{path:"/laravel-chat-system/docs/apis/events/message/created",component:p("/laravel-chat-system/docs/apis/events/message/created","f48"),exact:!0},{path:"/laravel-chat-system/docs/apis/events/message/events",component:p("/laravel-chat-system/docs/apis/events/message/events","38d"),exact:!0},{path:"/laravel-chat-system/docs/apis/models/chatEvent",component:p("/laravel-chat-system/docs/apis/models/chatEvent","b3e"),exact:!0},{path:"/laravel-chat-system/docs/apis/models/conversation",component:p("/laravel-chat-system/docs/apis/models/conversation","773"),exact:!0},{path:"/laravel-chat-system/docs/apis/models/message",component:p("/laravel-chat-system/docs/apis/models/message","4df"),exact:!0},{path:"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent",component:p("/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent","f2e"),exact:!0},{path:"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent",component:p("/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent","6b7"),exact:!0},{path:"/laravel-chat-system/docs/apis/traits/message/hasMessage",component:p("/laravel-chat-system/docs/apis/traits/message/hasMessage","ac7"),exact:!0},{path:"/laravel-chat-system/docs/guides/broadcasts",component:p("/laravel-chat-system/docs/guides/broadcasts","bad"),exact:!0},{path:"/laravel-chat-system/docs/guides/chatEvent",component:p("/laravel-chat-system/docs/guides/chatEvent","91e"),exact:!0},{path:"/laravel-chat-system/docs/guides/configure",component:p("/laravel-chat-system/docs/guides/configure","665"),exact:!0},{path:"/laravel-chat-system/docs/guides/conversation",component:p("/laravel-chat-system/docs/guides/conversation","4ab"),exact:!0},{path:"/laravel-chat-system/docs/guides/message",component:p("/laravel-chat-system/docs/guides/message","f9b"),exact:!0},{path:"/laravel-chat-system/docs/guides/models",component:p("/laravel-chat-system/docs/guides/models","faa"),exact:!0},{path:"/laravel-chat-system/docs/guides/providers",component:p("/laravel-chat-system/docs/guides/providers","898"),exact:!0},{path:"/laravel-chat-system/docs/guides/routes",component:p("/laravel-chat-system/docs/guides/routes","d8b"),exact:!0},{path:"/laravel-chat-system/docs/install",component:p("/laravel-chat-system/docs/install","606"),exact:!0},{path:"/laravel-chat-system/docs/requirements",component:p("/laravel-chat-system/docs/requirements","c99"),exact:!0}]},{path:"*",component:p("*")}];var h=n(8193),m=n(5091);const g=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/laravel-chat-system/docs","versions":[{"name":"current","label":"Next","isLast":false,"path":"/laravel-chat-system/docs/next","mainDocId":"intro","docs":[{"id":"apis/chatsystem","path":"/laravel-chat-system/docs/next/apis/chatsytem","sidebar":"docs"},{"id":"apis/events/message/messageCreated","path":"/laravel-chat-system/docs/next/apis/events/message/created","sidebar":"docs"},{"id":"apis/events/message/messageEvent","path":"/laravel-chat-system/docs/next/apis/events/message/events","sidebar":"docs"},{"id":"apis/models/chatEvent","path":"/laravel-chat-system/docs/next/apis/models/chatEvent","sidebar":"docs"},{"id":"apis/models/conversation","path":"/laravel-chat-system/docs/next/apis/models/conversation","sidebar":"docs"},{"id":"apis/models/message","path":"/laravel-chat-system/docs/next/apis/models/message","sidebar":"docs"},{"id":"apis/traits/chatEvent/canMakeChatEvent","path":"/laravel-chat-system/docs/next/apis/traits/chatEvent/canMakeChatEvent","sidebar":"docs"},{"id":"apis/traits/chatEvent/hasChatEvent","path":"/laravel-chat-system/docs/next/apis/traits/chatEvent/hasChatEvent","sidebar":"docs"},{"id":"apis/traits/message/hasMessage","path":"/laravel-chat-system/docs/next/apis/traits/message/hasMessage","sidebar":"docs"},{"id":"guides/broadcasts","path":"/laravel-chat-system/docs/next/guides/broadcasts","sidebar":"docs"},{"id":"guides/configure","path":"/laravel-chat-system/docs/next/guides/configure","sidebar":"docs"},{"id":"guides/guides.chatEvent","path":"/laravel-chat-system/docs/next/guides/chatEvent","sidebar":"docs"},{"id":"guides/guides.conversation","path":"/laravel-chat-system/docs/next/guides/conversation","sidebar":"docs"},{"id":"guides/guides.message","path":"/laravel-chat-system/docs/next/guides/message","sidebar":"docs"},{"id":"guides/guides.routes","path":"/laravel-chat-system/docs/next/guides/routes","sidebar":"docs"},{"id":"guides/models","path":"/laravel-chat-system/docs/next/guides/models","sidebar":"docs"},{"id":"guides/providers","path":"/laravel-chat-system/docs/next/guides/providers","sidebar":"docs"},{"id":"install","path":"/laravel-chat-system/docs/next/install","sidebar":"docs"},{"id":"intro","path":"/laravel-chat-system/docs/next/","sidebar":"docs"},{"id":"require","path":"/laravel-chat-system/docs/next/requirements","sidebar":"docs"}]},{"name":"v1.0.0-beta.4","label":"v1.0.0-beta.4","isLast":true,"path":"/laravel-chat-system/docs","mainDocId":"intro","docs":[{"id":"apis/chatsystem","path":"/laravel-chat-system/docs/apis/chatsytem","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/events/message/messageCreated","path":"/laravel-chat-system/docs/apis/events/message/created","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/events/message/messageEvent","path":"/laravel-chat-system/docs/apis/events/message/events","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/models/chatEvent","path":"/laravel-chat-system/docs/apis/models/chatEvent","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/models/conversation","path":"/laravel-chat-system/docs/apis/models/conversation","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/models/message","path":"/laravel-chat-system/docs/apis/models/message","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/traits/chatEvent/canMakeChatEvent","path":"/laravel-chat-system/docs/apis/traits/chatEvent/canMakeChatEvent","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/traits/chatEvent/hasChatEvent","path":"/laravel-chat-system/docs/apis/traits/chatEvent/hasChatEvent","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"apis/traits/message/hasMessage","path":"/laravel-chat-system/docs/apis/traits/message/hasMessage","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/broadcasts","path":"/laravel-chat-system/docs/guides/broadcasts","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/configure","path":"/laravel-chat-system/docs/guides/configure","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/guides.chatEvent","path":"/laravel-chat-system/docs/guides/chatEvent","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/guides.conversation","path":"/laravel-chat-system/docs/guides/conversation","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/guides.message","path":"/laravel-chat-system/docs/guides/message","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/guides.routes","path":"/laravel-chat-system/docs/guides/routes","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/models","path":"/laravel-chat-system/docs/guides/models","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"guides/providers","path":"/laravel-chat-system/docs/guides/providers","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"install","path":"/laravel-chat-system/docs/install","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"intro","path":"/laravel-chat-system/docs/","sidebar":"version-v1.0.0-beta.4/docs"},{"id":"require","path":"/laravel-chat-system/docs/requirements","sidebar":"version-v1.0.0-beta.4/docs"}]},{"name":"v1.0.0-beta.0","label":"v1.0.0-beta.0","isLast":false,"path":"/laravel-chat-system/docs/v1.0.0-beta.0","mainDocId":"intro","docs":[{"id":"apis/chatsystem","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/chatsytem","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/events/message/messageCreated","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/created","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/events/message/messageEvent","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/events/message/events","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/models/chatEvent","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/chatEvent","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/models/conversation","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/conversation","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/models/message","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/models/message","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/traits/chatEvent/canMakeChatEvent","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/canMakeChatEvent","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/traits/chatEvent/hasChatEvent","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/chatEvent/hasChatEvent","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"apis/traits/message/hasMessage","path":"/laravel-chat-system/docs/v1.0.0-beta.0/apis/traits/message/hasMessage","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/broadcasts","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/broadcasts","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/configure","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/configure","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/guides.chatEvent","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/chatEvent","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/guides.conversation","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/conversation","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/guides.message","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/message","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/guides.routes","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/routes","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/models","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/models","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"guides/providers","path":"/laravel-chat-system/docs/v1.0.0-beta.0/guides/providers","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"install","path":"/laravel-chat-system/docs/v1.0.0-beta.0/install","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"intro","path":"/laravel-chat-system/docs/v1.0.0-beta.0/","sidebar":"version-v1.0.0-beta.0/docs"},{"id":"require","path":"/laravel-chat-system/docs/v1.0.0-beta.0/requirements","sidebar":"version-v1.0.0-beta.0/docs"}]},{"name":"v1.0-alpha.3","label":"v1.0-alpha.3","isLast":false,"path":"/laravel-chat-system/docs/v1.0-alpha.3","mainDocId":"intro","docs":[{"id":"apis/chatsystem","path":"/laravel-chat-system/docs/v1.0-alpha.3/apis/chatsytem","sidebar":"version-v1.0-alpha.3/docs"},{"id":"apis/events/message/messageCreated","path":"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/created","sidebar":"version-v1.0-alpha.3/docs"},{"id":"apis/events/message/messageEvent","path":"/laravel-chat-system/docs/v1.0-alpha.3/apis/events/message/events","sidebar":"version-v1.0-alpha.3/docs"},{"id":"apis/models/chatEvent","path":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/chatEvent","sidebar":"version-v1.0-alpha.3/docs"},{"id":"apis/models/conversation","path":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/conversation","sidebar":"version-v1.0-alpha.3/docs"},{"id":"apis/models/message","path":"/laravel-chat-system/docs/v1.0-alpha.3/apis/models/message","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/broadcasts","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/broadcasts","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/configure","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/configure","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/guides.chatEvent","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/chatEvent","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/guides.conversation","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/conversation","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/guides.message","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/message","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/guides.routes","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/routes","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/models","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/models","sidebar":"version-v1.0-alpha.3/docs"},{"id":"guides/providers","path":"/laravel-chat-system/docs/v1.0-alpha.3/guides/providers","sidebar":"version-v1.0-alpha.3/docs"},{"id":"install","path":"/laravel-chat-system/docs/v1.0-alpha.3/install","sidebar":"version-v1.0-alpha.3/docs"},{"id":"intro","path":"/laravel-chat-system/docs/v1.0-alpha.3/","sidebar":"version-v1.0-alpha.3/docs"},{"id":"require","path":"/laravel-chat-system/docs/v1.0-alpha.3/requirements","sidebar":"version-v1.0-alpha.3/docs"}]}]}}}'),v=JSON.parse('{"defaultLocale":"en","locales":["en"],"currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr"}}}');var b=n(2654);const y=JSON.parse('{"docusaurusVersion":"2.0.0-beta.3","siteVersion":"1.0.0-beta.4","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.0.0-beta.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.0.0-beta.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.0.0-beta.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.0.0-beta.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.0.0-beta.3"}}}');var w=n(5920),k=n(8775),E=n(6347),S=n(5947),x=n.n(S);const _=[n(4992),n(4992),n(4992),n(119),n(3400),n(1043)];function C(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a{var a,r;const o=null!==(r=null===(a=null==t?void 0:t.default)||void 0===a?void 0:a[e])&&void 0!==r?r:t[e];o&&o(...n)}))}const T={onRouteUpdate(){for(var e=arguments.length,t=new Array(e),n=0;n{const{component:t}=e.route;if(t&&t.preload)return t.preload()})))}const P={};const L=function(e){if(P[e.pathname])return{...e,pathname:P[e.pathname]};let t=e.pathname||"/";return t=t.trim().replace(/\/index\.html$/,""),""===t&&(t="/"),P[e.pathname]=t,{...e,pathname:t}};x().configure({showSpinner:!1});class R extends a.Component{constructor(e){super(e),this.previousLocation=null,this.progressBarTimeout=null,this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){const n=e.location!==this.props.location,{routes:a,delay:r=1e3}=this.props;if(n){const t=L(e.location);return this.startProgressBar(r),this.previousLocation=L(this.props.location),this.setState({nextRouteHasLoaded:!1}),O(a,t.pathname).then((()=>{T.onRouteUpdate({previousLocation:this.previousLocation,location:t}),this.previousLocation=null,this.setState({nextRouteHasLoaded:!0},this.stopProgressBar);const{hash:e}=t;if(e){const t=decodeURIComponent(e.substring(1)),n=document.getElementById(t);n&&n.scrollIntoView()}else window.scrollTo(0,0)})).catch((e=>console.warn(e))),!1}return!!t.nextRouteHasLoaded}clearProgressBarTimeout(){this.progressBarTimeout&&(clearTimeout(this.progressBarTimeout),this.progressBarTimeout=null)}startProgressBar(e){this.clearProgressBarTimeout(),this.progressBarTimeout=setTimeout((()=>{T.onRouteUpdateDelayed({location:L(this.props.location)}),x().start()}),e)}stopProgressBar(){this.clearProgressBarTimeout(),x().done()}render(){const{children:e,location:t}=this.props;return a.createElement(E.qh,{location:L(t),render:()=>e})}}const N=(0,E.y)(R);var I=n(2602),F=n(4586);const M="docusaurus-base-url-issue-banner-container",D="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[B]=!1}),[]),a.createElement(a.Fragment,null,!h.A.canUseDOM&&a.createElement(I.A,null,a.createElement("script",null,z(e))),a.createElement("div",{id:M}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,F.A)(),{pathname:n}=(0,E.zy)();return t&&n===e?a.createElement($,null):null}const j=function(e){let{children:t}=e;return a.createElement(a.Fragment,null,t)};const H=function(){const[e,t]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{t(!0)}),[]),a.createElement(k.A.Provider,{value:{siteConfig:m.default,siteMetadata:y,globalData:g,i18n:v,codeTranslations:b,isClient:e}},a.createElement(j,null,a.createElement(U,null),a.createElement(N,{routes:f},(0,w.A)(f))))};const q=function(e){if("undefined"==typeof document)return!1;const t=document.createElement("link");try{if(t.relList&&"function"==typeof t.relList.supports)return t.relList.supports(e)}catch(n){return!1}return!1}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=t,a.onerror=n;(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const a=new XMLHttpRequest;a.open("GET",e,!0),a.withCredentials=!0,a.onload=()=>{200===a.status?t():n()},a.send(null)}))},G={};const W=function(e){return new Promise((t=>{G[e]?t():q(e).then((()=>{t(),G[e]=!0})).catch((()=>{}))}))},V={},Y={},K=()=>!(!("connection"in navigator)||-1===(navigator.connection.effectiveType||"").indexOf("2g")||!navigator.connection.saveData),Q=e=>Array.prototype.concat.apply([],e),X={prefetch:e=>{if(!(e=>!K()&&!Y[e]&&!V[e])(e))return!1;V[e]=!0;const t=(0,A.u)(f,e);return Q(t.map((e=>{return t=e.route.path,Q(Object.entries(c).filter((e=>{let[n]=e;return n.replace(/(-[^-]+)$/,"")===t})).map((e=>{let[,t]=e;return Object.values(d(t))})));var t}))).forEach((e=>{const t=n.gca(e);t&&!/undefined/.test(t)&&W(t)})),!0},preload:e=>!!(e=>!K()&&!Y[e])(e)&&(Y[e]=!0,O(f,e),!0)};if(h.A.canUseDOM){window.docusaurus=X;const e=r.hydrate;O(f,window.location.pathname).then((()=>{e(a.createElement(o.Kd,null,a.createElement(H,null)),document.getElementById("__docusaurus"))}))}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const a=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:a,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseIntersectionObserver:a&&"IntersectionObserver"in window,canUseViewport:a&&!!window.screen}},2602:(e,t,n)=>{"use strict";n.d(t,{A:()=>he});var a,r,o,s,i=n(6540),l=n(5556),c=n.n(l),u=n(2098),d=n.n(u),p=n(115),f=n.n(p),h=n(5228),m=n.n(h),g="bodyAttributes",v="htmlAttributes",b="titleAttributes",y={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},w=(Object.keys(y).map((function(e){return y[e]})),"charset"),k="cssText",E="href",S="http-equiv",x="innerHTML",_="itemprop",C="name",T="property",A="rel",O="src",P="target",L={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},R="defaultTitle",N="defer",I="encodeSpecialCharacters",F="onChangeClientState",M="titleTemplate",D=Object.keys(L).reduce((function(e,t){return e[L[t]]=t,e}),{}),B=[y.NOSCRIPT,y.SCRIPT,y.STYLE],z="data-react-helmet",$="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n},q=function(e){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},G=function(e){var t=Q(e,y.TITLE),n=Q(e,M);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var a=Q(e,R);return t||a||void 0},W=function(e){return Q(e,F)||function(){}},V=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return j({},e,t)}),{})},Y=function(e,t){return t.filter((function(e){return void 0!==e[y.BASE]})).map((function(e){return e[y.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var a=Object.keys(n),r=0;r=0;n--){var a=e[n];if(a.hasOwnProperty(t))return a[t]}return null},X=(a=Date.now(),function(e){var t=Date.now();t-a>16?(a=t,e(t)):setTimeout((function(){X(e)}),0)}),Z=function(e){return clearTimeout(e)},J="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||X:n.g.requestAnimationFrame||X,ee="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||Z:n.g.cancelAnimationFrame||Z,te=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},ne=null,ae=function(e,t){var n=e.baseTag,a=e.bodyAttributes,r=e.htmlAttributes,o=e.linkTags,s=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,c=e.scriptTags,u=e.styleTags,d=e.title,p=e.titleAttributes;se(y.BODY,a),se(y.HTML,r),oe(d,p);var f={baseTag:ie(y.BASE,n),linkTags:ie(y.LINK,o),metaTags:ie(y.META,s),noscriptTags:ie(y.NOSCRIPT,i),scriptTags:ie(y.SCRIPT,c),styleTags:ie(y.STYLE,u)},h={},m={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,a=t.oldTags;n.length&&(h[e]=n),a.length&&(m[e]=f[e].oldTags)})),t&&t(),l(e,h,m)},re=function(e){return Array.isArray(e)?e.join(""):e},oe=function(e,t){void 0!==e&&document.title!==e&&(document.title=re(e)),se(y.TITLE,t)},se=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var a=n.getAttribute(z),r=a?a.split(","):[],o=[].concat(r),s=Object.keys(t),i=0;i=0;d--)n.removeAttribute(o[d]);r.length===o.length?n.removeAttribute(z):n.getAttribute(z)!==s.join(",")&&n.setAttribute(z,s.join(","))}},ie=function(e,t){var n=document.head||document.querySelector(y.HEAD),a=n.querySelectorAll(e+"["+z+"]"),r=Array.prototype.slice.call(a),o=[],s=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var a in t)if(t.hasOwnProperty(a))if(a===x)n.innerHTML=t.innerHTML;else if(a===k)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var i=void 0===t[a]?"":t[a];n.setAttribute(a,i)}n.setAttribute(z,"true"),r.some((function(e,t){return s=t,n.isEqualNode(e)}))?r.splice(s,1):o.push(n)})),r.forEach((function(e){return e.parentNode.removeChild(e)})),o.forEach((function(e){return n.appendChild(e)})),{oldTags:r,newTags:o}},le=function(e){return Object.keys(e).reduce((function(t,n){var a=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+a:a}),"")},ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[L[n]||n]=e[n],t}),t)},ue=function(e,t,n){switch(e){case y.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(a={key:e})[z]=!0,r=ce(n,a),[i.createElement(y.TITLE,r,e)];var e,n,a,r},toString:function(){return function(e,t,n,a){var r=le(n),o=re(t);return r?"<"+e+" "+z+'="true" '+r+">"+q(o,a)+"":"<"+e+" "+z+'="true">'+q(o,a)+""}(e,t.title,t.titleAttributes,n)}};case g:case v:return{toComponent:function(){return ce(t)},toString:function(){return le(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var a,r=((a={key:n})[z]=!0,a);return Object.keys(t).forEach((function(e){var n=L[e]||e;if(n===x||n===k){var a=t.innerHTML||t.cssText;r.dangerouslySetInnerHTML={__html:a}}else r[n]=t[e]})),i.createElement(e,r)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,a){var r=Object.keys(a).filter((function(e){return!(e===x||e===k)})).reduce((function(e,t){var r=void 0===a[t]?t:t+'="'+q(a[t],n)+'"';return e?e+" "+r:r}),""),o=a.innerHTML||a.cssText||"",s=-1===B.indexOf(e);return t+"<"+e+" "+z+'="true" '+r+(s?"/>":">"+o+"")}),"")}(e,t,n)}}}},de=function(e){var t=e.baseTag,n=e.bodyAttributes,a=e.encode,r=e.htmlAttributes,o=e.linkTags,s=e.metaTags,i=e.noscriptTags,l=e.scriptTags,c=e.styleTags,u=e.title,d=void 0===u?"":u,p=e.titleAttributes;return{base:ue(y.BASE,t,a),bodyAttributes:ue(g,n,a),htmlAttributes:ue(v,r,a),link:ue(y.LINK,o,a),meta:ue(y.META,s,a),noscript:ue(y.NOSCRIPT,i,a),script:ue(y.SCRIPT,l,a),style:ue(y.STYLE,c,a),title:ue(y.TITLE,{title:d,titleAttributes:p},a)}},pe=d()((function(e){return{baseTag:Y([E,P],e),bodyAttributes:V(g,e),defer:Q(e,N),encode:Q(e,I),htmlAttributes:V(v,e),linkTags:K(y.LINK,[A,E],e),metaTags:K(y.META,[C,w,S,T,_],e),noscriptTags:K(y.NOSCRIPT,[x],e),onChangeClientState:W(e),scriptTags:K(y.SCRIPT,[O,x],e),styleTags:K(y.STYLE,[k],e),title:G(e),titleAttributes:V(b,e)}}),(function(e){ne&&ee(ne),e.defer?ne=J((function(){ae(e,(function(){ne=null}))})):(ae(e),ne=null)}),de)((function(){return null})),fe=(r=pe,s=o=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!f()(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case y.SCRIPT:case y.NOSCRIPT:return{innerHTML:t};case y.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,a=e.arrayTypeChildren,r=e.newChildProps,o=e.nestedChildren;return j({},a,((t={})[n.type]=[].concat(a[n.type]||[],[j({},r,this.mapNestedChildrenToProps(n,o))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,a=e.child,r=e.newProps,o=e.newChildProps,s=e.nestedChildren;switch(a.type){case y.TITLE:return j({},r,((t={})[a.type]=s,t.titleAttributes=j({},o),t));case y.BODY:return j({},r,{bodyAttributes:j({},o)});case y.HTML:return j({},r,{htmlAttributes:j({},o)})}return j({},r,((n={})[a.type]=j({},o),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=j({},t);return Object.keys(e).forEach((function(t){var a;n=j({},n,((a={})[t]=e[t],a))})),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,a={};return i.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[D[n]||n]=e[n],t}),t)}(H(r,["children"]));switch(n.warnOnInvalidChildren(e,o),e.type){case y.LINK:case y.META:case y.NOSCRIPT:case y.SCRIPT:case y.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),t=this.mapArrayTypeChildrenToProps(a,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=H(e,["children"]),a=j({},n);return t&&(a=this.mapChildrenToProps(t,a)),i.createElement(r,a)},U(t,null,[{key:"canUseDOM",set:function(e){r.canUseDOM=e}}]),t}(i.Component),o.propTypes={base:c().object,bodyAttributes:c().object,children:c().oneOfType([c().arrayOf(c().node),c().node]),defaultTitle:c().string,defer:c().bool,encodeSpecialCharacters:c().bool,htmlAttributes:c().object,link:c().arrayOf(c().object),meta:c().arrayOf(c().object),noscript:c().arrayOf(c().object),onChangeClientState:c().func,script:c().arrayOf(c().object),style:c().arrayOf(c().object),title:c().string,titleAttributes:c().object,titleTemplate:c().string},o.defaultProps={defer:!0,encodeSpecialCharacters:!0},o.peek=r.peek,o.rewind=function(){var e=r.rewind();return e||(e=de({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},s);fe.renderStatic=fe.rewind;const he=function(e){return i.createElement(fe,{...e})}},8775:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const a=n(6540).createContext(null)},5920:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const a=n(2831).v},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var a=n(6540),r=n(8775);const o=function(){const e=(0,a.useContext)(r.A);if(null===e)throw new Error("Docusaurus context not provided.");return e}},4599:(e,t,n)=>{"use strict";function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(){return s=Object.assign||function(e){for(var t=1;t{"use strict";var a=n(1258),r=n(8193),o=n(5091);(e=>{if(r.A.canUseDOM){const{themeConfig:{prism:{additionalLanguages:t=[]}={}}}=o.default;window.Prism=e,t.forEach((e=>{n(7016)(`./prism-${e}`)})),delete window.Prism}})(a.A)},7929:(e,t,n)=>{"use strict";n.d(t,{zR:()=>S,TM:()=>O,yJ:()=>m,sC:()=>L,AO:()=>h,Fu:()=>g});var a=n(8168);function r(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,a=n+1,r=e.length;a=0;p--){var f=s[p];"."===f?o(s,p):".."===f?(o(s,p),d++):d&&(o(s,p),d--)}if(!c)for(;d--;d)s.unshift("..");!c||""===s[0]||s[0]&&r(s[0])||s.unshift("");var h=s.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function i(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,a){return e(t,n[a])}));if("object"==typeof t||"object"==typeof n){var a=i(t),r=i(n);return a!==t||r!==n?e(a,r):Object.keys(Object.assign({},t,n)).every((function(a){return e(t[a],n[a])}))}return!1};var c=n(1561);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function f(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,a=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),a&&"#"!==a&&(r+="#"===a.charAt(0)?a:"#"+a),r}function m(e,t,n,r){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",a="",r=t.indexOf("#");-1!==r&&(a=t.substr(r),t=t.substr(0,r));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===a?"":a}}(e),o.state=t):(void 0===(o=(0,a.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=s(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,a,r){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof a?a(o,r):r(!0):r(!1!==o)}else r(!0)},appendListener:function(e){var n=!0;function a(){n&&e.apply(void 0,arguments)}return t.push(a),function(){n=!1,t=t.filter((function(e){return e!==a}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),a=0;at?n.splice(t,n.length-t,r):n.push(r),d({action:a,location:r,index:t,entries:n})}}))},replace:function(e,t){var a="REPLACE",r=m(e,t,p(),w.location);u.confirmTransitionTo(r,a,n,(function(e){e&&(w.entries[w.index]=r,d({action:a,location:r}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var a=n(4363),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function l(e){return a.isMemo(e)?s:i[e.$$typeof]||r}i[a.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[a.Memo]=s;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,a){if("string"!=typeof n){if(h){var r=f(n);r&&r!==h&&e(t,r,a)}var s=u(n);d&&(s=s.concat(d(n)));for(var i=l(t),m=l(n),g=0;g{"use strict";n.r(t)},4992:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var a,r;a=function(){var e,t,n={version:"0.2.0"},a=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function s(e,t,n){var r;return(r="translate3d"===a.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,r}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(a[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=r(e,a.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(a.barSelector),u=a.speed,d=a.easing;return o.offsetWidth,i((function(t){""===a.positionUsing&&(a.positionUsing=n.getPositioningCSS()),l(c,s(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),a.trickleSpeed)};return a.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*a.trickleRate)},e=0,t=0,n.promise=function(a){return a&&"resolved"!==a.state()?(0===t&&n.start(),e++,t++,a.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=a.template;var r,s=t.querySelector(a.barSelector),i=e?"-100":o(n.status||0),c=document.querySelector(a.parent);return l(s,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),a.showSpinner||(r=t.querySelector(a.spinnerSelector))&&f(r),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function a(t){var n=document.body.style;if(t in n)return t;for(var a,r=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((a=e[r]+o)in n)return a;return t}function r(e){return e=n(e),t[e]||(t[e]=a(e))}function o(e,t,n){t=r(t),e.style[t]=n}return function(e,t){var n,a,r=arguments;if(2==r.length)for(n in t)void 0!==(a=t[n])&&t.hasOwnProperty(n)&&o(e,n,a);else o(e,r[1],r[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),a=n+t;c(n,t)||(e.className=a.substring(1))}function d(e,t){var n,a=p(e);c(e,t)&&(n=a.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(r="function"==typeof a?a.call(t,n,t,e):a)||(e.exports=r)},5228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach((function(e){a[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")}catch(r){return!1}}()?Object.assign:function(e,r){for(var o,s,i=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l{"use strict";n.d(t,{A:()=>o});var a=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},a={util:{encode:function e(t){return t instanceof r?new r(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof r)){var _,C=1;if(b){if(!(_=o(k,S,e,v))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,O=S;for(O+=E.value.length;T>=O;)O+=(E=E.next).value.length;if(S=O-=E.value.length,E.value instanceof r)continue;for(var P=E;P!==t.tail&&(Od.reach&&(d.reach=I);var F=E.prev;if(R&&(F=l(t,F,R),S+=R.length),c(t,F,C),E=l(t,F,new r(p,g?a.tokenize(L,g):L,y,L)),N&&l(t,E,N),C>1){var M={cause:p+","+h,reach:I};s(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var a=t.next,r={value:n,prev:t,next:a};return t.next=r,a.prev=r,e.length++,r}function c(e,t,n){for(var a=t.next,r=0;r"+o.content+""},a}(),r=a;a.default=a,r.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var a={"included-cdata":{pattern://i,inside:n}};a["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:a},r.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:r.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},a={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=a.variable[1].inside,s=0;s]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.c=r.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),r.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),r.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},r.languages.c.string],char:r.languages.c.char,comment:r.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:r.languages.c}}}}),r.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete r.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(r),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(r),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var a={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},r={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:a,number:r,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:a,number:r})}(r),r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(r),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,a="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",r=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function s(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return a})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return a}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return a})).replace(/<>/g,(function(){return"(?:"+r+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:s(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:s(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:s(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:s(o),lookbehind:!0,greedy:!0},number:{pattern:s(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(r),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var a=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,r=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return a})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+r+o+"(?:"+r+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+r+o+")(?:"+r+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(a),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+r+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+r+"$"),inside:{"table-header":{pattern:RegExp(a),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,a=t.length;n",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(r),r.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:r.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},r.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var i=p(/^\{$/,/^\}$/);if(-1===i)continue;for(var l=n;l=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,a=t.inside.interpolation,r=a.inside["interpolation-punctuation"],o=a.pattern.source;function s(t,a){if(e.languages[t])return{pattern:RegExp("((?:"+a+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function i(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,a){var r={code:t,grammar:n,language:a};return e.hooks.run("before-tokenize",r),r.tokens=e.tokenize(r.code,r.grammar),e.hooks.run("after-tokenize",r),r.tokens}function c(t){var n={};n["interpolation-punctuation"]=r;var o=e.tokenize(t,n);if(3===o.length){var s=[1,1];s.push.apply(s,l(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,s)}return new e.Token("interpolation",o,a.alias,t)}function u(t,n,a){var r=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),s=0,u={},d=l(r.map((function(e){if("string"==typeof e)return e;for(var n,r=e.content;-1!==t.indexOf(n=i(s++,a)););return u[n]=r,n})).join(""),n,a),p=Object.keys(u);return s=0,function e(t){for(var n=0;n=p.length)return;var a=t[n];if("string"==typeof a||"string"==typeof a.content){var r=p[s],o="string"==typeof a?a:a.content,i=o.indexOf(r);if(-1!==i){++s;var l=o.substring(0,i),d=c(u[r]),f=o.substring(i+r.length),h=[];if(l&&h.push(l),h.push(d),f){var m=[f];e(m),h.push.apply(h,m)}"string"==typeof a?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):a.content=h}}else{var g=a.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(a,d,"language-"+a,t)}e.languages.javascript["template-string"]=[s("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),s("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),s("svg",/\bsvg/.source),s("markdown",/\b(?:markdown|md)/.source),s("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),s("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var a=0,r=n.length;a]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(r),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],a=0;a*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return a})).replace(//g,(function(){return r})),RegExp(e,t)}r=o(r).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""},i=function(t){for(var n=[],a=0;a0&&n[n.length-1].tagName===s(r.content[0].content[1])&&n.pop():"/>"===r.content[r.content.length-1].content||n.push({tagName:s(r.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===r.type&&"{"===r.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===r.type&&"}"===r.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof r)&&n.length>0&&0===n[n.length-1].openedBraces){var l=s(r);a0&&("string"==typeof t[a-1]||"plain-text"===t[a-1].type)&&(l=s(t[a-1])+l,t.splice(a-1,1),a--),t[a]=new e.Token("plain-text",l,null,l)}r.content&&"string"!=typeof r.content&&i(r.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(r),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var a=t[n],r=[];/^\w+$/.test(n)||r.push(/\w+/.exec(n)[0]),"diff"===n&&r.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+a+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:r,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(r),r.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},r.languages.go=r.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),r.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete r.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,a,r,o){if(n.language===a){var s=n.tokenStack=[];n.code=n.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=s.length;-1!==n.code.indexOf(r=t(a,i));)++i;return s[i]=e,r})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,a){if(n.language===a&&n.tokenStack){n.grammar=e.languages[a];var r=0,o=Object.keys(n.tokenStack);!function s(i){for(var l=0;l=o.length);l++){var c=i[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[r],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(a,u),h=p.indexOf(f);if(h>-1){++r;var m=p.substring(0,h),g=new e.Token(a,e.tokenize(d,n.grammar),"language-"+a,d),v=p.substring(h+f.length),b=[];m&&b.push.apply(b,s([m])),b.push(g),v&&b.push.apply(b,s([v])),"string"==typeof c?i.splice.apply(i,[l,1].concat(b)):c.content=b}}else c.content&&s(c.content)}return i}(n.tokens)}}}})}(r),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(r),r.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},r.languages.webmanifest=r.languages.json,r.languages.less=r.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),r.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),r.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},r.languages.objectivec=r.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete r.languages.objectivec["class-name"],r.languages.objc=r.languages.objectivec,r.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},r.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},r.languages.python["string-interpolation"].inside.interpolation.inside.rest=r.languages.python,r.languages.py=r.languages.python,r.languages.reason=r.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),r.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete r.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(r),r.languages.scss=r.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),r.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),r.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),r.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),r.languages.scss.atrule.inside.rest=r.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},a={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};a.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:a}},a.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:a}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:a}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:a}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:a}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:a.interpolation}},rest:a}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:a.interpolation,comment:a.comment,punctuation:/[{},]/}},func:a.func,string:a.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:a.interpolation,punctuation:/[{}()\[\];:.]/}}(r),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(r),r.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=r},3554:()=>{!function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],a=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,r=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,o=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:a,operator:r,punctuation:o};var s={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},i=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:s}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:s}}];e.languages.insertBefore("php","variable",{string:i,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:i,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:a,operator:r,punctuation:o}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},7016:(e,t,n)=>{var a={"./prism-php":3554};function r(e){var t=o(e);return n(t)}function o(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}r.keys=function(){return Object.keys(a)},r.resolve=o,e.exports=r,r.id=7016},2694:(e,t,n)=>{"use strict";var a=n(6925);function r(){}function o(){}o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,s){if(s!==a){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var a=n(6540),r=n(5228),o=n(9982);function s(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n