[{"data":1,"prerenderedAt":4122},["ShallowReactive",2],{"navigation":3,"\u002Fwriting\u002Fmutate":307,"\u002Fwriting\u002Fmutate-surround":4117},{"3.x":4,"2.x":203},[5,32,61,99,121,147,165],{"title":6,"icon":7,"path":8,"stem":9,"children":10,"page":31},"Getting Started","i-heroicons-star","\u002Fgetting-started","1.getting-started",[11,15,19,23,27],{"title":12,"path":13,"stem":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":16,"path":17,"stem":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":20,"path":21,"stem":22},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":24,"path":25,"stem":26},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration",{"title":28,"path":29,"stem":30},"Upgrade guide","\u002Fgetting-started\u002Fupgrade-guide","1.getting-started\u002F5.upgrade-guide",false,{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":31},"Resources","i-heroicons-document-text","\u002Fresources","2.resources",[38,41,45,49,53,57],{"title":33,"path":39,"stem":40},"\u002Fresources\u002Fresources","2.resources\u002F1.resources",{"title":42,"path":43,"stem":44},"Fields","\u002Fresources\u002Ffields","2.resources\u002F2.fields",{"title":46,"path":47,"stem":48},"Relationships","\u002Fresources\u002Frelations","2.resources\u002F3.relations",{"title":50,"path":51,"stem":52},"Validation","\u002Fresources\u002Fvalidation","2.resources\u002F4.validation",{"title":54,"path":55,"stem":56},"Perimeter","\u002Fresources\u002Fperimeter","2.resources\u002F5.perimeter",{"title":58,"path":59,"stem":60},"Limits","\u002Fresources\u002Flimits","2.resources\u002F6.limits",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":31},"Search","i-heroicons-magnifying-glass","\u002Fsearch","3.search",[67,71,75,79,83,87,91,95],{"title":68,"path":69,"stem":70},"Search overview","\u002Fsearch\u002Foverview","3.search\u002F1.overview",{"title":72,"path":73,"stem":74},"Search filters","\u002Fsearch\u002Ffilters","3.search\u002F2.filters",{"title":76,"path":77,"stem":78},"Sorts and selects","\u002Fsearch\u002Fsorts-and-selects","3.search\u002F3.sorts-and-selects",{"title":80,"path":81,"stem":82},"Includes and aggregates","\u002Fsearch\u002Fincludes-and-aggregates","3.search\u002F4.includes-and-aggregates",{"title":84,"path":85,"stem":86},"Scopes and instructions","\u002Fsearch\u002Fscopes-and-instructions","3.search\u002F5.scopes-and-instructions",{"title":88,"path":89,"stem":90},"Text search","\u002Fsearch\u002Ftext-search","3.search\u002F6.text-search",{"title":92,"path":93,"stem":94},"Search engines","\u002Fsearch\u002Fsearch-engines","3.search\u002F7.search-engines",{"title":96,"path":97,"stem":98},"Searching outside HTTP","\u002Fsearch\u002Foutside-http","3.search\u002F8.outside-http",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":31},"Writing","i-heroicons-pencil-square","\u002Fwriting","4.writing",[105,109,113,117],{"title":106,"path":107,"stem":108},"Mutate","\u002Fwriting\u002Fmutate","4.writing\u002F1.mutate",{"title":110,"path":111,"stem":112},"Writing relations","\u002Fwriting\u002Frelations","4.writing\u002F2.relations",{"title":114,"path":115,"stem":116},"Versioned rows","\u002Fwriting\u002Fversioned-rows","4.writing\u002F3.versioned-rows",{"title":118,"path":119,"stem":120},"Deleting and restoring","\u002Fwriting\u002Fdeleting","4.writing\u002F4.deleting",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":31},"Actions and Metrics","i-heroicons-bolt","\u002Factions-and-metrics","5.actions-and-metrics",[127,131,135,139,143],{"title":128,"path":129,"stem":130},"Actions","\u002Factions-and-metrics\u002Factions","5.actions-and-metrics\u002F1.actions",{"title":132,"path":133,"stem":134},"Queued Actions","\u002Factions-and-metrics\u002Fqueued-actions","5.actions-and-metrics\u002F2.queued-actions",{"title":136,"path":137,"stem":138},"Confirmation","\u002Factions-and-metrics\u002Fconfirmation","5.actions-and-metrics\u002F3.confirmation",{"title":140,"path":141,"stem":142},"Metrics","\u002Factions-and-metrics\u002Fmetrics","5.actions-and-metrics\u002F4.metrics",{"title":144,"path":145,"stem":146},"Exports","\u002Factions-and-metrics\u002Fexports","5.actions-and-metrics\u002F5.exports",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":31},"Authorization","i-heroicons-lock-closed","\u002Fauthorization","6.authorization",[153,157,161],{"title":154,"path":155,"stem":156},"Policies","\u002Fauthorization\u002Fpolicies","6.authorization\u002F1.policies",{"title":158,"path":159,"stem":160},"Gates","\u002Fauthorization\u002Fgates","6.authorization\u002F2.gates",{"title":162,"path":163,"stem":164},"Decision Cache","\u002Fauthorization\u002Fdecision-cache","6.authorization\u002F3.decision-cache",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":31},"Digging Deeper","i-heroicons-list-bullet","\u002Fdigging-deeper","7.digging-deeper",[171,175,179,183,187,191,195,199],{"title":172,"path":173,"stem":174},"Details","\u002Fdigging-deeper\u002Fdetails","7.digging-deeper\u002F1.details",{"title":176,"path":177,"stem":178},"Events and Hooks","\u002Fdigging-deeper\u002Fevents-and-hooks","7.digging-deeper\u002F2.events-and-hooks",{"title":180,"path":181,"stem":182},"Custom Responses","\u002Fdigging-deeper\u002Fresponses","7.digging-deeper\u002F3.responses",{"title":184,"path":185,"stem":186},"OpenAPI Documentation","\u002Fdigging-deeper\u002Fopenapi","7.digging-deeper\u002F4.openapi",{"title":188,"path":189,"stem":190},"Precognition","\u002Fdigging-deeper\u002Fprecognition","7.digging-deeper\u002F5.precognition",{"title":192,"path":193,"stem":194},"Artisan Commands","\u002Fdigging-deeper\u002Fartisan","7.digging-deeper\u002F6.artisan",{"title":196,"path":197,"stem":198},"Laravel Boost Skill","\u002Fdigging-deeper\u002Fai-skill","7.digging-deeper\u002F7.ai-skill",{"title":200,"path":201,"stem":202},"Translations","\u002Fdigging-deeper\u002Ftranslations","7.digging-deeper\u002F8.translations",[204,215,237,260,297],{"title":6,"icon":7,"path":205,"stem":206,"children":207,"page":31},"\u002F2.x\u002Fgetting-started","2.x\u002F1.getting-started",[208,211],{"title":16,"path":209,"stem":210},"\u002F2.x\u002Fgetting-started\u002Finstallation","2.x\u002F1.getting-started\u002F1.installation",{"title":212,"path":213,"stem":214},"Upgrade Guide","\u002F2.x\u002Fgetting-started\u002Fupgrade-guide","2.x\u002F1.getting-started\u002F2.upgrade-guide",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":31},"Endpoints","i-heroicons-arrow-uturn-left","\u002F2.x\u002Fendpoints","2.x\u002F2.endpoints",[221,224,227,230,233],{"title":172,"path":222,"stem":223},"\u002F2.x\u002Fendpoints\u002Fdetails","2.x\u002F2.endpoints\u002F1.details",{"title":62,"path":225,"stem":226},"\u002F2.x\u002Fendpoints\u002Fsearch","2.x\u002F2.endpoints\u002F2.search",{"title":106,"path":228,"stem":229},"\u002F2.x\u002Fendpoints\u002Fmutate","2.x\u002F2.endpoints\u002F3.mutate",{"title":128,"path":231,"stem":232},"\u002F2.x\u002Fendpoints\u002Factions","2.x\u002F2.endpoints\u002F4.actions",{"title":234,"path":235,"stem":236},"Delete","\u002F2.x\u002Fendpoints\u002Fdelete","2.x\u002F2.endpoints\u002F5.delete",{"title":33,"icon":34,"path":238,"stem":239,"children":240,"page":31},"\u002F2.x\u002Fresources","2.x\u002F3.resources",[241,245,249,252,256],{"title":242,"path":243,"stem":244},"Basics","\u002F2.x\u002Fresources\u002Fbasics","2.x\u002F3.resources\u002F1.basics",{"title":246,"path":247,"stem":248},"Exposed Data","\u002F2.x\u002Fresources\u002Fexposed-data","2.x\u002F3.resources\u002F2.exposed-data",{"title":46,"path":250,"stem":251},"\u002F2.x\u002Fresources\u002Frelationships","2.x\u002F3.resources\u002F3.relationships",{"title":253,"path":254,"stem":255},"Validations","\u002F2.x\u002Fresources\u002Fvalidations","2.x\u002F3.resources\u002F4.validations",{"title":257,"path":258,"stem":259},"Interactions","\u002F2.x\u002Fresources\u002Finteractions","2.x\u002F3.resources\u002F5.interactions",{"title":166,"icon":167,"path":261,"stem":262,"children":263,"page":31},"\u002F2.x\u002Fdigging-deeper","2.x\u002F4.digging-deeper",[264,267,271,274,278,282,286,290,294],{"title":128,"path":265,"stem":266},"\u002F2.x\u002Fdigging-deeper\u002Factions","2.x\u002F4.digging-deeper\u002F1.actions",{"title":268,"path":269,"stem":270},"Hooks","\u002F2.x\u002Fdigging-deeper\u002Fhooks","2.x\u002F4.digging-deeper\u002F2.hooks",{"title":158,"path":272,"stem":273},"\u002F2.x\u002Fdigging-deeper\u002Fgates","2.x\u002F4.digging-deeper\u002F3.gates",{"title":275,"path":276,"stem":277},"Authorizations","\u002F2.x\u002Fdigging-deeper\u002Fauthorizations","2.x\u002F4.digging-deeper\u002F4.authorizations",{"title":279,"path":280,"stem":281},"Full Text Search","\u002F2.x\u002Fdigging-deeper\u002Ffull-text-search","2.x\u002F4.digging-deeper\u002F5.full-text-search",{"title":283,"path":284,"stem":285},"Instructions","\u002F2.x\u002Fdigging-deeper\u002Finstructions","2.x\u002F4.digging-deeper\u002F6.instructions",{"title":287,"path":288,"stem":289},"Responses","\u002F2.x\u002Fdigging-deeper\u002Fresponses","2.x\u002F4.digging-deeper\u002F7.responses",{"title":291,"path":292,"stem":293},"Documentation","\u002F2.x\u002Fdigging-deeper\u002Fdocumentation","2.x\u002F4.digging-deeper\u002F8.documentation",{"title":188,"path":295,"stem":296},"\u002F2.x\u002Fdigging-deeper\u002Fprecognition","2.x\u002F4.digging-deeper\u002F9.precognition",{"title":298,"icon":299,"path":300,"stem":301,"children":302,"page":31},"Integrations","i-lucide-puzzle","\u002F2.x\u002Fintegrations","2.x\u002F5.integrations",[303],{"title":304,"path":305,"stem":306},"Flutter","\u002F2.x\u002Fintegrations\u002Fflutter","2.x\u002F5.integrations\u002F1.flutter",{"id":308,"title":106,"body":309,"description":4110,"extension":4111,"links":4112,"meta":4113,"navigation":435,"path":107,"seo":4114,"sitemap":4115,"stem":108,"__hash__":4116},"docs3x\u002F4.writing\u002F1.mutate.md",{"type":310,"value":311,"toc":4095},"minimark",[312,321,725,1035,1242,1247,1430,1479,1482,1487,1697,1804,1812,1816,1852,1856,1863,1942,1947,1951,1962,2008,2112,2136,2140,2150,2418,2715,2807,2811,2814,2874,2916,3007,3010,3015,3020,3075,3126,3130,3133,3360,3649,3663,3734,3737,3794,3803,3806,3916,3920,3989,4091],[313,314,315,316,320],"p",{},"Every resource answers ",[317,318,319],"code",{},"POST \u002F{resource}\u002Fmutate",". One request creates and updates rows, writes their relations, and runs as one database transaction: either every entry is written, or none.",[322,323,329],"pre",{"className":324,"code":325,"filename":326,"language":327,"meta":328,"style":328},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use Lomkit\\Rest\\Fields\\ID;\nuse Lomkit\\Rest\\Fields\\Text;\nuse Lomkit\\Rest\\Relations\\BelongsToMany;\nuse Lomkit\\Rest\\Relations\\HasMany;\n\nclass CategoryResource extends Resource\n{\n    public static string $model = Category::class;\n\n    public function fields(): array\n    {\n        return [\n            ID::make('id'),\n            Text::make('name')->rules('max:255')->creationRules('required'),\n        ];\n    }\n\n    public function relations(): array\n    {\n        return [\n            HasMany::make('products', ProductResource::class),\n            BelongsToMany::make('featuredProducts', ProductResource::class),\n        ];\n    }\n}\n","app\u002FRest\u002FResources\u002FCategoryResource.php","php","",[317,330,331,363,385,408,430,437,454,460,491,496,514,520,530,556,606,612,618,623,637,642,649,680,709,714,719],{"__ignoreMap":328},[332,333,336,340,344,348,351,353,355,357,360],"span",{"class":334,"line":335},"line",1,[332,337,339],{"class":338},"sbssI","use",[332,341,343],{"class":342},"sTEyZ"," Lomkit",[332,345,347],{"class":346},"sMK4o","\\",[332,349,350],{"class":342},"Rest",[332,352,347],{"class":346},[332,354,42],{"class":342},[332,356,347],{"class":346},[332,358,359],{"class":342},"ID",[332,361,362],{"class":346},";\n",[332,364,366,368,370,372,374,376,378,380,383],{"class":334,"line":365},2,[332,367,339],{"class":338},[332,369,343],{"class":342},[332,371,347],{"class":346},[332,373,350],{"class":342},[332,375,347],{"class":346},[332,377,42],{"class":342},[332,379,347],{"class":346},[332,381,382],{"class":342},"Text",[332,384,362],{"class":346},[332,386,388,390,392,394,396,398,401,403,406],{"class":334,"line":387},3,[332,389,339],{"class":338},[332,391,343],{"class":342},[332,393,347],{"class":346},[332,395,350],{"class":342},[332,397,347],{"class":346},[332,399,400],{"class":342},"Relations",[332,402,347],{"class":346},[332,404,405],{"class":342},"BelongsToMany",[332,407,362],{"class":346},[332,409,411,413,415,417,419,421,423,425,428],{"class":334,"line":410},4,[332,412,339],{"class":338},[332,414,343],{"class":342},[332,416,347],{"class":346},[332,418,350],{"class":342},[332,420,347],{"class":346},[332,422,400],{"class":342},[332,424,347],{"class":346},[332,426,427],{"class":342},"HasMany",[332,429,362],{"class":346},[332,431,433],{"class":334,"line":432},5,[332,434,436],{"emptyLinePlaceholder":435},true,"\n",[332,438,440,444,448,451],{"class":334,"line":439},6,[332,441,443],{"class":442},"spNyl","class",[332,445,447],{"class":446},"sBMFI"," CategoryResource",[332,449,450],{"class":442}," extends",[332,452,453],{"class":446}," Resource\n",[332,455,457],{"class":334,"line":456},7,[332,458,459],{"class":346},"{\n",[332,461,463,466,469,472,475,478,481,484,487,489],{"class":334,"line":462},8,[332,464,465],{"class":442},"    public",[332,467,468],{"class":442}," static",[332,470,471],{"class":338}," string",[332,473,474],{"class":346}," $",[332,476,477],{"class":342},"model ",[332,479,480],{"class":346},"=",[332,482,483],{"class":446}," Category",[332,485,486],{"class":346},"::",[332,488,443],{"class":338},[332,490,362],{"class":346},[332,492,494],{"class":334,"line":493},9,[332,495,436],{"emptyLinePlaceholder":435},[332,497,499,501,504,508,511],{"class":334,"line":498},10,[332,500,465],{"class":442},[332,502,503],{"class":442}," function",[332,505,507],{"class":506},"s2Zo4"," fields",[332,509,510],{"class":346},"():",[332,512,513],{"class":338}," array\n",[332,515,517],{"class":334,"line":516},11,[332,518,519],{"class":346},"    {\n",[332,521,523,527],{"class":334,"line":522},12,[332,524,526],{"class":525},"s7zQu","        return",[332,528,529],{"class":346}," [\n",[332,531,533,536,538,541,544,547,551,553],{"class":334,"line":532},13,[332,534,535],{"class":446},"            ID",[332,537,486],{"class":346},[332,539,540],{"class":506},"make",[332,542,543],{"class":346},"(",[332,545,546],{"class":346},"'",[332,548,550],{"class":549},"sfazB","id",[332,552,546],{"class":346},[332,554,555],{"class":346},"),\n",[332,557,559,562,564,566,568,570,573,575,578,581,583,585,588,590,592,595,597,599,602,604],{"class":334,"line":558},14,[332,560,561],{"class":446},"            Text",[332,563,486],{"class":346},[332,565,540],{"class":506},[332,567,543],{"class":346},[332,569,546],{"class":346},[332,571,572],{"class":549},"name",[332,574,546],{"class":346},[332,576,577],{"class":346},")->",[332,579,580],{"class":506},"rules",[332,582,543],{"class":346},[332,584,546],{"class":346},[332,586,587],{"class":549},"max:255",[332,589,546],{"class":346},[332,591,577],{"class":346},[332,593,594],{"class":506},"creationRules",[332,596,543],{"class":346},[332,598,546],{"class":346},[332,600,601],{"class":549},"required",[332,603,546],{"class":346},[332,605,555],{"class":346},[332,607,609],{"class":334,"line":608},15,[332,610,611],{"class":346},"        ];\n",[332,613,615],{"class":334,"line":614},16,[332,616,617],{"class":346},"    }\n",[332,619,621],{"class":334,"line":620},17,[332,622,436],{"emptyLinePlaceholder":435},[332,624,626,628,630,633,635],{"class":334,"line":625},18,[332,627,465],{"class":442},[332,629,503],{"class":442},[332,631,632],{"class":506}," relations",[332,634,510],{"class":346},[332,636,513],{"class":338},[332,638,640],{"class":334,"line":639},19,[332,641,519],{"class":346},[332,643,645,647],{"class":334,"line":644},20,[332,646,526],{"class":525},[332,648,529],{"class":346},[332,650,652,655,657,659,661,663,666,668,671,674,676,678],{"class":334,"line":651},21,[332,653,654],{"class":446},"            HasMany",[332,656,486],{"class":346},[332,658,540],{"class":506},[332,660,543],{"class":346},[332,662,546],{"class":346},[332,664,665],{"class":549},"products",[332,667,546],{"class":346},[332,669,670],{"class":346},",",[332,672,673],{"class":446}," ProductResource",[332,675,486],{"class":346},[332,677,443],{"class":338},[332,679,555],{"class":346},[332,681,683,686,688,690,692,694,697,699,701,703,705,707],{"class":334,"line":682},22,[332,684,685],{"class":446},"            BelongsToMany",[332,687,486],{"class":346},[332,689,540],{"class":506},[332,691,543],{"class":346},[332,693,546],{"class":346},[332,695,696],{"class":549},"featuredProducts",[332,698,546],{"class":346},[332,700,670],{"class":346},[332,702,673],{"class":446},[332,704,486],{"class":346},[332,706,443],{"class":338},[332,708,555],{"class":346},[332,710,712],{"class":334,"line":711},23,[332,713,611],{"class":346},[332,715,717],{"class":334,"line":716},24,[332,718,617],{"class":346},[332,720,722],{"class":334,"line":721},25,[332,723,724],{"class":346},"}\n",[322,726,731],{"className":727,"code":728,"filename":729,"language":730,"meta":328,"style":328},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mutate\": [\n    {\n      \"operation\": \"create\",\n      \"attributes\": {\"name\": \"Lighting\"},\n      \"relations\": {\n        \"products\": [\n          {\"operation\": \"create\", \"attributes\": {\"name\": \"Desk lamp\", \"price\": 39}},\n          {\"operation\": \"attach\", \"key\": [4, 5]}\n        ]\n      }\n    },\n    {\"operation\": \"update\", \"key\": 2, \"attributes\": {\"name\": \"Seating\"}}\n  ]\n}\n","POST \u002Fapi\u002Fcategories\u002Fmutate","json",[317,732,733,737,753,757,780,812,826,839,904,948,953,958,963,1026,1031],{"__ignoreMap":328},[332,734,735],{"class":334,"line":335},[332,736,459],{"class":346},[332,738,739,742,745,748,751],{"class":334,"line":365},[332,740,741],{"class":346},"  \"",[332,743,744],{"class":442},"mutate",[332,746,747],{"class":346},"\"",[332,749,750],{"class":346},":",[332,752,529],{"class":346},[332,754,755],{"class":334,"line":387},[332,756,519],{"class":346},[332,758,759,762,765,767,769,772,775,777],{"class":334,"line":410},[332,760,761],{"class":346},"      \"",[332,763,764],{"class":446},"operation",[332,766,747],{"class":346},[332,768,750],{"class":346},[332,770,771],{"class":346}," \"",[332,773,774],{"class":549},"create",[332,776,747],{"class":346},[332,778,779],{"class":346},",\n",[332,781,782,784,787,789,791,794,796,798,800,802,804,807,809],{"class":334,"line":432},[332,783,761],{"class":346},[332,785,786],{"class":446},"attributes",[332,788,747],{"class":346},[332,790,750],{"class":346},[332,792,793],{"class":346}," {",[332,795,747],{"class":346},[332,797,572],{"class":338},[332,799,747],{"class":346},[332,801,750],{"class":346},[332,803,771],{"class":346},[332,805,806],{"class":549},"Lighting",[332,808,747],{"class":346},[332,810,811],{"class":346},"},\n",[332,813,814,816,819,821,823],{"class":334,"line":439},[332,815,761],{"class":346},[332,817,818],{"class":446},"relations",[332,820,747],{"class":346},[332,822,750],{"class":346},[332,824,825],{"class":346}," {\n",[332,827,828,831,833,835,837],{"class":334,"line":456},[332,829,830],{"class":346},"        \"",[332,832,665],{"class":338},[332,834,747],{"class":346},[332,836,750],{"class":346},[332,838,529],{"class":346},[332,840,841,844,846,849,851,853,855,857,859,861,863,865,867,869,871,873,876,878,880,882,885,887,889,891,894,896,898,901],{"class":334,"line":462},[332,842,843],{"class":346},"          {",[332,845,747],{"class":346},[332,847,764],{"class":848},"swJcz",[332,850,747],{"class":346},[332,852,750],{"class":346},[332,854,771],{"class":346},[332,856,774],{"class":549},[332,858,747],{"class":346},[332,860,670],{"class":346},[332,862,771],{"class":346},[332,864,786],{"class":848},[332,866,747],{"class":346},[332,868,750],{"class":346},[332,870,793],{"class":346},[332,872,747],{"class":346},[332,874,572],{"class":875},"su27w",[332,877,747],{"class":346},[332,879,750],{"class":346},[332,881,771],{"class":346},[332,883,884],{"class":549},"Desk lamp",[332,886,747],{"class":346},[332,888,670],{"class":346},[332,890,771],{"class":346},[332,892,893],{"class":875},"price",[332,895,747],{"class":346},[332,897,750],{"class":346},[332,899,900],{"class":338}," 39",[332,902,903],{"class":346},"}},\n",[332,905,906,908,910,912,914,916,918,921,923,925,927,930,932,934,937,940,942,945],{"class":334,"line":493},[332,907,843],{"class":346},[332,909,747],{"class":346},[332,911,764],{"class":848},[332,913,747],{"class":346},[332,915,750],{"class":346},[332,917,771],{"class":346},[332,919,920],{"class":549},"attach",[332,922,747],{"class":346},[332,924,670],{"class":346},[332,926,771],{"class":346},[332,928,929],{"class":848},"key",[332,931,747],{"class":346},[332,933,750],{"class":346},[332,935,936],{"class":346}," [",[332,938,939],{"class":338},"4",[332,941,670],{"class":346},[332,943,944],{"class":338}," 5",[332,946,947],{"class":346},"]}\n",[332,949,950],{"class":334,"line":498},[332,951,952],{"class":346},"        ]\n",[332,954,955],{"class":334,"line":516},[332,956,957],{"class":346},"      }\n",[332,959,960],{"class":334,"line":522},[332,961,962],{"class":346},"    },\n",[332,964,965,968,970,972,974,976,978,981,983,985,987,989,991,993,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1021,1023],{"class":334,"line":532},[332,966,967],{"class":346},"    {",[332,969,747],{"class":346},[332,971,764],{"class":446},[332,973,747],{"class":346},[332,975,750],{"class":346},[332,977,771],{"class":346},[332,979,980],{"class":549},"update",[332,982,747],{"class":346},[332,984,670],{"class":346},[332,986,771],{"class":346},[332,988,929],{"class":446},[332,990,747],{"class":346},[332,992,750],{"class":346},[332,994,995],{"class":338}," 2",[332,997,670],{"class":346},[332,999,771],{"class":346},[332,1001,786],{"class":446},[332,1003,747],{"class":346},[332,1005,750],{"class":346},[332,1007,793],{"class":346},[332,1009,747],{"class":346},[332,1011,572],{"class":338},[332,1013,747],{"class":346},[332,1015,750],{"class":346},[332,1017,771],{"class":346},[332,1019,1020],{"class":549},"Seating",[332,1022,747],{"class":346},[332,1024,1025],{"class":346},"}}\n",[332,1027,1028],{"class":334,"line":558},[332,1029,1030],{"class":346},"  ]\n",[332,1032,1033],{"class":334,"line":608},[332,1034,724],{"class":346},[322,1036,1039],{"className":727,"code":1037,"filename":1038,"language":730,"meta":328,"style":328},"{\n  \"operations\": [\n    {\n      \"operation\": \"create\",\n      \"key\": 3,\n      \"relations\": {\n        \"products\": [\n          {\"operation\": \"create\", \"key\": 9},\n          {\"operation\": \"attach\", \"key\": [4, 5]}\n        ]\n      }\n    },\n    {\"operation\": \"update\", \"key\": 2}\n  ]\n}\n","200 OK",[317,1040,1041,1045,1058,1062,1080,1095,1107,1119,1152,1190,1194,1198,1202,1234,1238],{"__ignoreMap":328},[332,1042,1043],{"class":334,"line":335},[332,1044,459],{"class":346},[332,1046,1047,1049,1052,1054,1056],{"class":334,"line":365},[332,1048,741],{"class":346},[332,1050,1051],{"class":442},"operations",[332,1053,747],{"class":346},[332,1055,750],{"class":346},[332,1057,529],{"class":346},[332,1059,1060],{"class":334,"line":387},[332,1061,519],{"class":346},[332,1063,1064,1066,1068,1070,1072,1074,1076,1078],{"class":334,"line":410},[332,1065,761],{"class":346},[332,1067,764],{"class":446},[332,1069,747],{"class":346},[332,1071,750],{"class":346},[332,1073,771],{"class":346},[332,1075,774],{"class":549},[332,1077,747],{"class":346},[332,1079,779],{"class":346},[332,1081,1082,1084,1086,1088,1090,1093],{"class":334,"line":432},[332,1083,761],{"class":346},[332,1085,929],{"class":446},[332,1087,747],{"class":346},[332,1089,750],{"class":346},[332,1091,1092],{"class":338}," 3",[332,1094,779],{"class":346},[332,1096,1097,1099,1101,1103,1105],{"class":334,"line":439},[332,1098,761],{"class":346},[332,1100,818],{"class":446},[332,1102,747],{"class":346},[332,1104,750],{"class":346},[332,1106,825],{"class":346},[332,1108,1109,1111,1113,1115,1117],{"class":334,"line":456},[332,1110,830],{"class":346},[332,1112,665],{"class":338},[332,1114,747],{"class":346},[332,1116,750],{"class":346},[332,1118,529],{"class":346},[332,1120,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1150],{"class":334,"line":462},[332,1122,843],{"class":346},[332,1124,747],{"class":346},[332,1126,764],{"class":848},[332,1128,747],{"class":346},[332,1130,750],{"class":346},[332,1132,771],{"class":346},[332,1134,774],{"class":549},[332,1136,747],{"class":346},[332,1138,670],{"class":346},[332,1140,771],{"class":346},[332,1142,929],{"class":848},[332,1144,747],{"class":346},[332,1146,750],{"class":346},[332,1148,1149],{"class":338}," 9",[332,1151,811],{"class":346},[332,1153,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188],{"class":334,"line":493},[332,1155,843],{"class":346},[332,1157,747],{"class":346},[332,1159,764],{"class":848},[332,1161,747],{"class":346},[332,1163,750],{"class":346},[332,1165,771],{"class":346},[332,1167,920],{"class":549},[332,1169,747],{"class":346},[332,1171,670],{"class":346},[332,1173,771],{"class":346},[332,1175,929],{"class":848},[332,1177,747],{"class":346},[332,1179,750],{"class":346},[332,1181,936],{"class":346},[332,1183,939],{"class":338},[332,1185,670],{"class":346},[332,1187,944],{"class":338},[332,1189,947],{"class":346},[332,1191,1192],{"class":334,"line":498},[332,1193,952],{"class":346},[332,1195,1196],{"class":334,"line":516},[332,1197,957],{"class":346},[332,1199,1200],{"class":334,"line":522},[332,1201,962],{"class":346},[332,1203,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232],{"class":334,"line":532},[332,1205,967],{"class":346},[332,1207,747],{"class":346},[332,1209,764],{"class":446},[332,1211,747],{"class":346},[332,1213,750],{"class":346},[332,1215,771],{"class":346},[332,1217,980],{"class":549},[332,1219,747],{"class":346},[332,1221,670],{"class":346},[332,1223,771],{"class":346},[332,1225,929],{"class":446},[332,1227,747],{"class":346},[332,1229,750],{"class":346},[332,1231,995],{"class":338},[332,1233,724],{"class":346},[332,1235,1236],{"class":334,"line":558},[332,1237,1030],{"class":346},[332,1239,1240],{"class":334,"line":608},[332,1241,724],{"class":346},[1243,1244,1246],"h2",{"id":1245},"entries","Entries",[1248,1249,1250,1266],"table",{},[1251,1252,1253],"thead",{},[1254,1255,1256,1260,1263],"tr",{},[1257,1258,1259],"th",{},"Key",[1257,1261,1262],{},"Taken by",[1257,1264,1265],{},"Value",[1267,1268,1269,1310,1327,1346,1359,1376,1393,1413],"tbody",{},[1254,1270,1271,1276,1279],{},[1272,1273,1274],"td",{},[317,1275,764],{},[1272,1277,1278],{},"Every entry",[1272,1280,1281,1283,1284,1286,1287,1289,1290,1289,1293,1289,1296,1299,1300,1303,1304,1306,1307],{},[317,1282,774],{}," or ",[317,1285,980],{}," at the root; ",[317,1288,920],{},", ",[317,1291,1292],{},"detach",[317,1294,1295],{},"sync",[317,1297,1298],{},"toggle"," and ",[317,1301,1302],{},"delete"," too under ",[317,1305,818],{},", see ",[1308,1309,400],"a",{"href":111},[1254,1311,1312,1316,1321],{},[1272,1313,1314],{},[317,1315,929],{},[1272,1317,1318,1319],{},"Every operation but ",[317,1320,774],{},[1272,1322,1323,1324,1326],{},"The key of the row, typed like the ",[317,1325,359],{}," field of the resource. A list of keys only in an entry of a to-many relation",[1254,1328,1329,1333,1343],{},[1272,1330,1331],{},[317,1332,786],{},[1272,1334,1335,1289,1337,1289,1339,1289,1341],{},[317,1336,774],{},[317,1338,980],{},[317,1340,1295],{},[317,1342,1298],{},[1272,1344,1345],{},"The values of the fields that the operation writes",[1254,1347,1348,1352,1356],{},[1272,1349,1350],{},[317,1351,818],{},[1272,1353,1318,1354],{},[317,1355,1302],{},[1272,1357,1358],{},"The entries of each relation, by name: an object for a to-one relation, a list for a to-many relation",[1254,1360,1361,1366,1371],{},[1272,1362,1363],{},[317,1364,1365],{},"version",[1272,1367,1368,1370],{},[317,1369,980],{},", on a versioned resource",[1272,1372,1373,1374],{},"The version of the row that the client read, see ",[1308,1375,114],{"href":115},[1254,1377,1378,1383,1386],{},[1272,1379,1380],{},[317,1381,1382],{},"pivot",[1272,1384,1385],{},"Entries of a many-to-many relation",[1272,1387,1388,1389],{},"The pivot values, see ",[1308,1390,1392],{"href":1391},"\u002Fwriting\u002Frelations#pivot-fields","Pivot fields",[1254,1394,1395,1400,1404],{},[1272,1396,1397],{},[317,1398,1399],{},"without_detaching",[1272,1401,1402],{},[317,1403,1295],{},[1272,1405,1406,1409,1410,1412],{},[317,1407,1408],{},"true"," keeps the rows that ",[317,1411,929],{}," does not list",[1254,1414,1415,1420,1427],{},[1272,1416,1417],{},[317,1418,1419],{},"type",[1272,1421,1422,1423,1426],{},"Entries of a ",[317,1424,1425],{},"MorphTo"," relation",[1272,1428,1429],{},"The morph type of the row",[1431,1432,1433,1442,1451,1460,1476],"ul",{},[1434,1435,1436,1438,1439],"li",{},[317,1437,744],{}," must be a JSON list: ",[317,1440,1441],{},"The mutate field must be a list.",[1434,1443,1444,1445,1289,1448],{},"A key that an entry does not take gives a 422 on that key: ",[317,1446,1447],{},"The mutate.0.atributes field is prohibited.",[317,1449,1450],{},"The mutate.0.key field is prohibited when mutate.0.operation is create.",[1434,1452,1453,1289,1455,1299,1457,1459],{},[317,1454,786],{},[317,1456,818],{},[317,1458,1382],{}," must be objects.",[1434,1461,1462,1465,1466,1468,1469,1472,1473],{},[317,1463,1464],{},"confirmation",", next to ",[317,1467,744],{},", carries the token of a ",[1308,1470,1464],{"href":1471},"\u002Factions-and-metrics\u002Fconfirmation#confirming-writes",". It must be a string: ",[317,1474,1475],{},"The confirmation field must be a string.",[1434,1477,1478],{},"An unknown key at the first level of the body is ignored.",[1243,1480,1481],{"id":786},"Attributes",[313,1483,1484,1486],{},[317,1485,786],{}," accepts the fields that the operation can write, each validated by its field.",[322,1488,1490],{"className":324,"code":1489,"language":327,"meta":328,"style":328},"ID::make('id'),                                    \u002F\u002F refused on create and update\nID::make('uuid')->creatable(),                     \u002F\u002F a key that clients send on create\nText::make('title')->rules('max:255')->creationRules('required'),\nNumber::make('rating')->nullable(),                \u002F\u002F a number or null\nDateTime::make('created_at')->readonly(),          \u002F\u002F refused on create and update\nText::make('slug')->updatable(false),              \u002F\u002F written on create only\nText::make('api_token')->writeOnly(),              \u002F\u002F written, never returned\n",[317,1491,1492,1515,1543,1586,1614,1642,1670],{"__ignoreMap":328},[332,1493,1494,1496,1498,1500,1502,1504,1506,1508,1511],{"class":334,"line":335},[332,1495,359],{"class":446},[332,1497,486],{"class":346},[332,1499,540],{"class":506},[332,1501,543],{"class":346},[332,1503,546],{"class":346},[332,1505,550],{"class":549},[332,1507,546],{"class":346},[332,1509,1510],{"class":346},"),",[332,1512,1514],{"class":1513},"sHwdD","                                    \u002F\u002F refused on create and update\n",[332,1516,1517,1519,1521,1523,1525,1527,1530,1532,1534,1537,1540],{"class":334,"line":365},[332,1518,359],{"class":446},[332,1520,486],{"class":346},[332,1522,540],{"class":506},[332,1524,543],{"class":346},[332,1526,546],{"class":346},[332,1528,1529],{"class":549},"uuid",[332,1531,546],{"class":346},[332,1533,577],{"class":346},[332,1535,1536],{"class":506},"creatable",[332,1538,1539],{"class":346},"(),",[332,1541,1542],{"class":1513},"                     \u002F\u002F a key that clients send on create\n",[332,1544,1545,1547,1549,1551,1553,1555,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584],{"class":334,"line":387},[332,1546,382],{"class":446},[332,1548,486],{"class":346},[332,1550,540],{"class":506},[332,1552,543],{"class":346},[332,1554,546],{"class":346},[332,1556,1557],{"class":549},"title",[332,1559,546],{"class":346},[332,1561,577],{"class":346},[332,1563,580],{"class":506},[332,1565,543],{"class":346},[332,1567,546],{"class":346},[332,1569,587],{"class":549},[332,1571,546],{"class":346},[332,1573,577],{"class":346},[332,1575,594],{"class":506},[332,1577,543],{"class":346},[332,1579,546],{"class":346},[332,1581,601],{"class":549},[332,1583,546],{"class":346},[332,1585,555],{"class":346},[332,1587,1588,1591,1593,1595,1597,1599,1602,1604,1606,1609,1611],{"class":334,"line":410},[332,1589,1590],{"class":446},"Number",[332,1592,486],{"class":346},[332,1594,540],{"class":506},[332,1596,543],{"class":346},[332,1598,546],{"class":346},[332,1600,1601],{"class":549},"rating",[332,1603,546],{"class":346},[332,1605,577],{"class":346},[332,1607,1608],{"class":506},"nullable",[332,1610,1539],{"class":346},[332,1612,1613],{"class":1513},"                \u002F\u002F a number or null\n",[332,1615,1616,1619,1621,1623,1625,1627,1630,1632,1634,1637,1639],{"class":334,"line":432},[332,1617,1618],{"class":446},"DateTime",[332,1620,486],{"class":346},[332,1622,540],{"class":506},[332,1624,543],{"class":346},[332,1626,546],{"class":346},[332,1628,1629],{"class":549},"created_at",[332,1631,546],{"class":346},[332,1633,577],{"class":346},[332,1635,1636],{"class":506},"readonly",[332,1638,1539],{"class":346},[332,1640,1641],{"class":1513},"          \u002F\u002F refused on create and update\n",[332,1643,1644,1646,1648,1650,1652,1654,1657,1659,1661,1664,1667],{"class":334,"line":439},[332,1645,382],{"class":446},[332,1647,486],{"class":346},[332,1649,540],{"class":506},[332,1651,543],{"class":346},[332,1653,546],{"class":346},[332,1655,1656],{"class":549},"slug",[332,1658,546],{"class":346},[332,1660,577],{"class":346},[332,1662,1663],{"class":506},"updatable",[332,1665,1666],{"class":346},"(false),",[332,1668,1669],{"class":1513},"              \u002F\u002F written on create only\n",[332,1671,1672,1674,1676,1678,1680,1682,1685,1687,1689,1692,1694],{"class":334,"line":456},[332,1673,382],{"class":446},[332,1675,486],{"class":346},[332,1677,540],{"class":506},[332,1679,543],{"class":346},[332,1681,546],{"class":346},[332,1683,1684],{"class":549},"api_token",[332,1686,546],{"class":346},[332,1688,577],{"class":346},[332,1690,1691],{"class":506},"writeOnly",[332,1693,1539],{"class":346},[332,1695,1696],{"class":1513},"              \u002F\u002F written, never returned\n",[1431,1698,1699,1718,1729,1749,1776,1783,1797],{},[1434,1700,1701,1703,1704,1289,1706,1299,1708,1710,1711,1713,1714,1717],{},[317,1702,774],{}," accepts the creatable fields, and ",[317,1705,980],{},[317,1707,1295],{},[317,1709,1298],{}," the updatable fields. A field is creatable and updatable by default. ",[317,1712,359],{}," fields and ",[317,1715,1716],{},"readonly()"," fields are not.",[1434,1719,1720,1721,1724,1725,1728],{},"A ",[317,1722,1723],{},"virtual()"," field is refused unless it declares ",[317,1726,1727],{},"fillUsing()",", which runs after the other fields of the entry.",[1434,1730,1731,1732,1734,1735,1738,1739,1289,1741,1299,1743,1745,1746],{},"Another key gives a 422 under ",[317,1733,786],{},": ",[317,1736,1737],{},"The created_at key of the mutate.0.attributes field is not writable on create."," On ",[317,1740,980],{},[317,1742,1295],{},[317,1744,1298],{},", the message ends with ",[317,1747,1748],{},"on update.",[1434,1750,1751,1752,1289,1754,1757,1758,1761,1762,1283,1764,1767,1768,1771,1772,1775],{},"Each attribute is validated by the base rule of its type, ",[317,1753,1608],{},[317,1755,1756],{},"rules()",", and ",[317,1759,1760],{},"creationRules()"," on ",[317,1763,774],{},[317,1765,1766],{},"updateRules()"," on the other operations. ",[317,1769,1770],{},"null"," is refused unless the field is ",[317,1773,1774],{},"nullable()",".",[1434,1777,1778,1779,1782],{},"A rule that names another attribute, such as ",[317,1780,1781],{},"required_if:featured,true",", compares with that attribute in the same entry.",[1434,1784,1785,1786,1289,1788,1299,1791,1793,1794,1775],{},"The resource rules, ",[317,1787,1756],{},[317,1789,1790],{},"createRules()",[317,1792,1766],{},", still apply, for rules that compare attributes and for nested keys such as ",[317,1795,1796],{},"metadata.source",[1434,1798,1799,1800,1803],{},"The model is filled with the writable fields of the operation only, after the ",[317,1801,1802],{},"mutating()"," hook.",[313,1805,1806,1807,1299,1809,1811],{},"See ",[1308,1808,42],{"href":43},[1308,1810,50],{"href":51}," for the field declarations and rules.",[1243,1813,1815],{"id":1814},"rows-that-a-write-reaches","Rows that a write reaches",[1431,1817,1818,1841,1846,1849],{},[1434,1819,1820,1821,1823,1824,1827,1828,1831,1832,1838,1839,1775],{},"The keys of ",[317,1822,744],{},", at the root and under relations, are read through the ",[317,1825,1826],{},"perimeterQuery()"," of the resource of their row, during validation. A key outside it gives ",[317,1829,1830],{},"The selected mutate.0.key is invalid.",", as a key that does not exist, and dispatches the ",[1308,1833,1835],{"href":1834},"\u002Fdigging-deeper\u002Fevents-and-hooks#keys-out-of-reach",[317,1836,1837],{},"KeysOutOfReach"," event. See ",[1308,1840,54],{"href":55},[1434,1842,1843,1844,1775],{},"A created row is not checked against ",[317,1845,1826],{},[1434,1847,1848],{},"Each entry that names the same row writes the same model instance, in the order of the entries, so it sees what the entries before it saved.",[1434,1850,1851],{},"A row that another request deletes between the validation and the write is not written, and the mutation answers 200.",[1243,1853,1855],{"id":1854},"nested-writes","Nested writes",[313,1857,1858,1860,1861,1775],{},[317,1859,818],{}," holds the entries of each relation of the row, by relation name. An entry can hold its own ",[317,1862,818],{},[1431,1864,1865,1873,1893,1896,1911,1929],{},[1434,1866,1720,1867,1283,1870,1872],{},[317,1868,1869],{},"BelongsTo",[317,1871,1425],{}," entry is written before the row that holds it. The other relations are written after it.",[1434,1874,1875,1876,1289,1879,1289,1881,1289,1884,1887,1888,1299,1890,1892],{},"The keys that the parent relation sets win over the attributes of the same name: the key of the parent on ",[317,1877,1878],{},"HasOne",[317,1880,427],{},[317,1882,1883],{},"MorphOne",[317,1885,1886],{},"MorphMany"," and their of-many forms, and the morph type on the morph relations. On ",[317,1889,1869],{},[317,1891,1425],{},", the foreign key and the morph type that the relation sets win over the attributes of the entry.",[1434,1894,1895],{},"An entry under an entry with a list of keys is written once for each of these keys.",[1434,1897,1898,1900,1901,1904,1905,1907,1908],{},[317,1899,818],{}," nest up to ",[317,1902,1903],{},"rest.limits.depths.mutations"," levels, 3 by default. A deeper ",[317,1906,818],{}," gives ",[317,1909,1910],{},"The mutate.0.relations.products.0.relations.category.relations.products.0.relations field is prohibited.",[1434,1912,1913,1289,1916,1289,1919,1299,1922,1925,1926],{},[317,1914,1915],{},"requiredOnCreation()",[317,1917,1918],{},"prohibitedOnCreation()",[317,1920,1921],{},"requiredOnUpdate()",[317,1923,1924],{},"prohibitedOnUpdate()"," on a relation require or refuse its entries: ",[317,1927,1928],{},"The mutate.0.relations.products field is required.",[1434,1930,1931,1299,1934,1937,1938,1941],{},[317,1932,1933],{},"HasOneThrough",[317,1935,1936],{},"HasManyThrough"," take no entry: ",[317,1939,1940],{},"The mutate.0.relations.replies field is prohibited."," Write through the intermediate relation instead.",[313,1943,1944,1945,1775],{},"The operations of each relation family are listed on ",[1308,1946,400],{"href":111},[1243,1948,1950],{"id":1949},"the-response","The response",[313,1952,1953,1954,1956,1957,1959,1960,1775],{},"The response holds ",[317,1955,1051],{},": one entry for each entry of ",[317,1958,744],{},", at the same index, and one for each entry of its ",[317,1961,818],{},[1431,1963,1964,1969,1991,2002],{},[1434,1965,1966,1968],{},[317,1967,764],{}," is the operation of the entry.",[1434,1970,1971,1973,1974,1976,1977,1979,1980,1982,1983,1986,1987,1990],{},[317,1972,929],{}," is the key of the row that a ",[317,1975,774],{}," wrote. On another operation, it is the ",[317,1978,929],{}," that the entry sent, typed like the ",[317,1981,359],{}," field: ",[317,1984,1985],{},"\"2\""," answers ",[317,1988,1989],{},"2"," on an integer key.",[1434,1992,1993,1994,1986,1996,1998,1999,2001],{},"An entry that sends ",[317,1995,818],{},[317,1997,818],{},", under the names that it sent, in the same order: an object for a to-one relation, a list for a to-many relation. An entry that sends no relation answers no ",[317,2000,818],{}," key.",[1434,2003,2004,2005,2007],{},"An entry with a list of keys answers once, with the list. A ",[317,2006,774],{}," under such an entry answers the list of the keys that it created, in the order of the keys above:",[322,2009,2011],{"className":727,"code":2010,"language":730,"meta":328,"style":328},"{\"operation\": \"attach\", \"key\": [1, 2], \"relations\": {\"category\": {\"operation\": \"create\", \"key\": [7, 8]}}}\n",[317,2012,2013],{"__ignoreMap":328},[332,2014,2015,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2047,2049,2051,2054,2056,2058,2060,2062,2064,2066,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2104,2106,2109],{"class":334,"line":335},[332,2016,2017],{"class":346},"{",[332,2019,747],{"class":346},[332,2021,764],{"class":442},[332,2023,747],{"class":346},[332,2025,750],{"class":346},[332,2027,771],{"class":346},[332,2029,920],{"class":549},[332,2031,747],{"class":346},[332,2033,670],{"class":346},[332,2035,771],{"class":346},[332,2037,929],{"class":442},[332,2039,747],{"class":346},[332,2041,750],{"class":346},[332,2043,936],{"class":346},[332,2045,2046],{"class":338},"1",[332,2048,670],{"class":346},[332,2050,995],{"class":338},[332,2052,2053],{"class":346},"],",[332,2055,771],{"class":346},[332,2057,818],{"class":442},[332,2059,747],{"class":346},[332,2061,750],{"class":346},[332,2063,793],{"class":346},[332,2065,747],{"class":346},[332,2067,2068],{"class":446},"category",[332,2070,747],{"class":346},[332,2072,750],{"class":346},[332,2074,793],{"class":346},[332,2076,747],{"class":346},[332,2078,764],{"class":338},[332,2080,747],{"class":346},[332,2082,750],{"class":346},[332,2084,771],{"class":346},[332,2086,774],{"class":549},[332,2088,747],{"class":346},[332,2090,670],{"class":346},[332,2092,771],{"class":346},[332,2094,929],{"class":338},[332,2096,747],{"class":346},[332,2098,750],{"class":346},[332,2100,936],{"class":346},[332,2102,2103],{"class":338},"7",[332,2105,670],{"class":346},[332,2107,2108],{"class":338}," 8",[332,2110,2111],{"class":346},"]}}}\n",[1431,2113,2114,2126],{},[1434,2115,2116,2117,2119,2120,2122,2123,1775],{},"An entry of a ",[317,2118,1425],{}," relation also answers ",[317,2121,1419],{},", the morph type of its row: ",[317,2124,2125],{},"{\"operation\": \"attach\", \"type\": \"book\", \"key\": 2}",[1434,2127,2128,1299,2130,2132,2133,2135],{},[317,2129,1295],{},[317,2131,1298],{}," answer the keys that they sent. ",[317,2134,1302],{}," answers the keys that it deleted, as sent.",[1243,2137,2139],{"id":2138},"reading-the-written-rows","Reading the written rows",[313,2141,2142,2143,2146,2147,2149],{},"Send ",[317,2144,2145],{},"response"," next to ",[317,2148,744],{}," to get the written rows back, rendered as a search renders its rows:",[322,2151,2154],{"className":727,"code":2152,"filename":2153,"language":730,"meta":328,"style":328},"{\n  \"mutate\": [\n    {\"operation\": \"update\", \"key\": 2, \"attributes\": {\"title\": \"Dune Messiah\"}},\n    {\"operation\": \"create\", \"attributes\": {\"title\": \"Ivanhoe\"}}\n  ],\n  \"response\": {\n    \"selects\": [{\"field\": \"title\"}],\n    \"includes\": [{\"relation\": \"labels\", \"selects\": [{\"field\": \"text\"}]}],\n    \"gates\": [\"update\"]\n  }\n}\n","POST \u002Fapi\u002Fbooks\u002Fmutate",[317,2155,2156,2160,2172,2231,2278,2283,2295,2328,2387,2409,2414],{"__ignoreMap":328},[332,2157,2158],{"class":334,"line":335},[332,2159,459],{"class":346},[332,2161,2162,2164,2166,2168,2170],{"class":334,"line":365},[332,2163,741],{"class":346},[332,2165,744],{"class":442},[332,2167,747],{"class":346},[332,2169,750],{"class":346},[332,2171,529],{"class":346},[332,2173,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2227,2229],{"class":334,"line":387},[332,2175,967],{"class":346},[332,2177,747],{"class":346},[332,2179,764],{"class":446},[332,2181,747],{"class":346},[332,2183,750],{"class":346},[332,2185,771],{"class":346},[332,2187,980],{"class":549},[332,2189,747],{"class":346},[332,2191,670],{"class":346},[332,2193,771],{"class":346},[332,2195,929],{"class":446},[332,2197,747],{"class":346},[332,2199,750],{"class":346},[332,2201,995],{"class":338},[332,2203,670],{"class":346},[332,2205,771],{"class":346},[332,2207,786],{"class":446},[332,2209,747],{"class":346},[332,2211,750],{"class":346},[332,2213,793],{"class":346},[332,2215,747],{"class":346},[332,2217,1557],{"class":338},[332,2219,747],{"class":346},[332,2221,750],{"class":346},[332,2223,771],{"class":346},[332,2225,2226],{"class":549},"Dune Messiah",[332,2228,747],{"class":346},[332,2230,903],{"class":346},[332,2232,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2274,2276],{"class":334,"line":410},[332,2234,967],{"class":346},[332,2236,747],{"class":346},[332,2238,764],{"class":446},[332,2240,747],{"class":346},[332,2242,750],{"class":346},[332,2244,771],{"class":346},[332,2246,774],{"class":549},[332,2248,747],{"class":346},[332,2250,670],{"class":346},[332,2252,771],{"class":346},[332,2254,786],{"class":446},[332,2256,747],{"class":346},[332,2258,750],{"class":346},[332,2260,793],{"class":346},[332,2262,747],{"class":346},[332,2264,1557],{"class":338},[332,2266,747],{"class":346},[332,2268,750],{"class":346},[332,2270,771],{"class":346},[332,2272,2273],{"class":549},"Ivanhoe",[332,2275,747],{"class":346},[332,2277,1025],{"class":346},[332,2279,2280],{"class":334,"line":432},[332,2281,2282],{"class":346},"  ],\n",[332,2284,2285,2287,2289,2291,2293],{"class":334,"line":439},[332,2286,741],{"class":346},[332,2288,2145],{"class":442},[332,2290,747],{"class":346},[332,2292,750],{"class":346},[332,2294,825],{"class":346},[332,2296,2297,2300,2303,2305,2307,2310,2312,2315,2317,2319,2321,2323,2325],{"class":334,"line":456},[332,2298,2299],{"class":346},"    \"",[332,2301,2302],{"class":446},"selects",[332,2304,747],{"class":346},[332,2306,750],{"class":346},[332,2308,2309],{"class":346}," [{",[332,2311,747],{"class":346},[332,2313,2314],{"class":338},"field",[332,2316,747],{"class":346},[332,2318,750],{"class":346},[332,2320,771],{"class":346},[332,2322,1557],{"class":549},[332,2324,747],{"class":346},[332,2326,2327],{"class":346},"}],\n",[332,2329,2330,2332,2335,2337,2339,2341,2343,2346,2348,2350,2352,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2382,2384],{"class":334,"line":462},[332,2331,2299],{"class":346},[332,2333,2334],{"class":446},"includes",[332,2336,747],{"class":346},[332,2338,750],{"class":346},[332,2340,2309],{"class":346},[332,2342,747],{"class":346},[332,2344,2345],{"class":338},"relation",[332,2347,747],{"class":346},[332,2349,750],{"class":346},[332,2351,771],{"class":346},[332,2353,2354],{"class":549},"labels",[332,2356,747],{"class":346},[332,2358,670],{"class":346},[332,2360,771],{"class":346},[332,2362,2302],{"class":338},[332,2364,747],{"class":346},[332,2366,750],{"class":346},[332,2368,2309],{"class":346},[332,2370,747],{"class":346},[332,2372,2314],{"class":848},[332,2374,747],{"class":346},[332,2376,750],{"class":346},[332,2378,771],{"class":346},[332,2380,2381],{"class":549},"text",[332,2383,747],{"class":346},[332,2385,2386],{"class":346},"}]}],\n",[332,2388,2389,2391,2394,2396,2398,2400,2402,2404,2406],{"class":334,"line":493},[332,2390,2299],{"class":346},[332,2392,2393],{"class":446},"gates",[332,2395,747],{"class":346},[332,2397,750],{"class":346},[332,2399,936],{"class":346},[332,2401,747],{"class":346},[332,2403,980],{"class":549},[332,2405,747],{"class":346},[332,2407,2408],{"class":346},"]\n",[332,2410,2411],{"class":334,"line":498},[332,2412,2413],{"class":346},"  }\n",[332,2415,2416],{"class":334,"line":516},[332,2417,724],{"class":346},[322,2419,2421],{"className":727,"code":2420,"filename":1038,"language":730,"meta":328,"style":328},"{\n  \"operations\": [\n    {\"operation\": \"update\", \"key\": 2},\n    {\"operation\": \"create\", \"key\": 3}\n  ],\n  \"records\": [\n    {\"title\": \"Dune Messiah\", \"gates\": {\"authorized_to_update\": {\"allowed\": true, \"message\": null}}, \"labels\": [{\"text\": \"Classic\"}], \"@more\": []},\n    {\"title\": \"Ivanhoe\", \"gates\": {\"authorized_to_update\": {\"allowed\": true, \"message\": null}}, \"labels\": [], \"@more\": []}\n  ]\n}\n",[317,2422,2423,2427,2439,2471,2503,2507,2520,2625,2707,2711],{"__ignoreMap":328},[332,2424,2425],{"class":334,"line":335},[332,2426,459],{"class":346},[332,2428,2429,2431,2433,2435,2437],{"class":334,"line":365},[332,2430,741],{"class":346},[332,2432,1051],{"class":442},[332,2434,747],{"class":346},[332,2436,750],{"class":346},[332,2438,529],{"class":346},[332,2440,2441,2443,2445,2447,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467,2469],{"class":334,"line":387},[332,2442,967],{"class":346},[332,2444,747],{"class":346},[332,2446,764],{"class":446},[332,2448,747],{"class":346},[332,2450,750],{"class":346},[332,2452,771],{"class":346},[332,2454,980],{"class":549},[332,2456,747],{"class":346},[332,2458,670],{"class":346},[332,2460,771],{"class":346},[332,2462,929],{"class":446},[332,2464,747],{"class":346},[332,2466,750],{"class":346},[332,2468,995],{"class":338},[332,2470,811],{"class":346},[332,2472,2473,2475,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2501],{"class":334,"line":410},[332,2474,967],{"class":346},[332,2476,747],{"class":346},[332,2478,764],{"class":446},[332,2480,747],{"class":346},[332,2482,750],{"class":346},[332,2484,771],{"class":346},[332,2486,774],{"class":549},[332,2488,747],{"class":346},[332,2490,670],{"class":346},[332,2492,771],{"class":346},[332,2494,929],{"class":446},[332,2496,747],{"class":346},[332,2498,750],{"class":346},[332,2500,1092],{"class":338},[332,2502,724],{"class":346},[332,2504,2505],{"class":334,"line":432},[332,2506,2282],{"class":346},[332,2508,2509,2511,2514,2516,2518],{"class":334,"line":439},[332,2510,741],{"class":346},[332,2512,2513],{"class":442},"records",[332,2515,747],{"class":346},[332,2517,750],{"class":346},[332,2519,529],{"class":346},[332,2521,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2555,2557,2559,2561,2563,2566,2568,2570,2573,2575,2578,2580,2582,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2608,2610,2613,2615,2618,2620,2622],{"class":334,"line":456},[332,2523,967],{"class":346},[332,2525,747],{"class":346},[332,2527,1557],{"class":446},[332,2529,747],{"class":346},[332,2531,750],{"class":346},[332,2533,771],{"class":346},[332,2535,2226],{"class":549},[332,2537,747],{"class":346},[332,2539,670],{"class":346},[332,2541,771],{"class":346},[332,2543,2393],{"class":446},[332,2545,747],{"class":346},[332,2547,750],{"class":346},[332,2549,793],{"class":346},[332,2551,747],{"class":346},[332,2553,2554],{"class":338},"authorized_to_update",[332,2556,747],{"class":346},[332,2558,750],{"class":346},[332,2560,793],{"class":346},[332,2562,747],{"class":346},[332,2564,2565],{"class":848},"allowed",[332,2567,747],{"class":346},[332,2569,750],{"class":346},[332,2571,2572],{"class":346}," true,",[332,2574,771],{"class":346},[332,2576,2577],{"class":848},"message",[332,2579,747],{"class":346},[332,2581,750],{"class":346},[332,2583,2584],{"class":346}," null}},",[332,2586,771],{"class":346},[332,2588,2354],{"class":446},[332,2590,747],{"class":346},[332,2592,750],{"class":346},[332,2594,2309],{"class":346},[332,2596,747],{"class":346},[332,2598,2381],{"class":338},[332,2600,747],{"class":346},[332,2602,750],{"class":346},[332,2604,771],{"class":346},[332,2606,2607],{"class":549},"Classic",[332,2609,747],{"class":346},[332,2611,2612],{"class":346},"}],",[332,2614,771],{"class":346},[332,2616,2617],{"class":446},"@more",[332,2619,747],{"class":346},[332,2621,750],{"class":346},[332,2623,2624],{"class":346}," []},\n",[332,2626,2627,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2665,2667,2669,2671,2673,2675,2677,2679,2681,2683,2685,2687,2689,2691,2693,2696,2698,2700,2702,2704],{"class":334,"line":462},[332,2628,967],{"class":346},[332,2630,747],{"class":346},[332,2632,1557],{"class":446},[332,2634,747],{"class":346},[332,2636,750],{"class":346},[332,2638,771],{"class":346},[332,2640,2273],{"class":549},[332,2642,747],{"class":346},[332,2644,670],{"class":346},[332,2646,771],{"class":346},[332,2648,2393],{"class":446},[332,2650,747],{"class":346},[332,2652,750],{"class":346},[332,2654,793],{"class":346},[332,2656,747],{"class":346},[332,2658,2554],{"class":338},[332,2660,747],{"class":346},[332,2662,750],{"class":346},[332,2664,793],{"class":346},[332,2666,747],{"class":346},[332,2668,2565],{"class":848},[332,2670,747],{"class":346},[332,2672,750],{"class":346},[332,2674,2572],{"class":346},[332,2676,771],{"class":346},[332,2678,2577],{"class":848},[332,2680,747],{"class":346},[332,2682,750],{"class":346},[332,2684,2584],{"class":346},[332,2686,771],{"class":346},[332,2688,2354],{"class":446},[332,2690,747],{"class":346},[332,2692,750],{"class":346},[332,2694,2695],{"class":346}," [],",[332,2697,771],{"class":346},[332,2699,2617],{"class":446},[332,2701,747],{"class":346},[332,2703,750],{"class":346},[332,2705,2706],{"class":346}," []}\n",[332,2708,2709],{"class":334,"line":493},[332,2710,1030],{"class":346},[332,2712,2713],{"class":334,"line":498},[332,2714,724],{"class":346},[1431,2716,2717,2730,2754,2776,2784,2794],{},[1434,2718,2719,2721,2722,2724,2725,2727,2728,1775],{},[317,2720,2513],{}," holds one record for each entry of ",[317,2723,744],{},", at the same index. Two entries on the same row give the same record. The entries under ",[317,2726,818],{}," give no record: request their rows through ",[317,2729,2334],{},[1434,2731,2732,2734,2735,1289,2737,1289,2740,1299,2742,2744,2745,2748,2749,1775],{},[317,2733,2145],{}," takes ",[317,2736,2302],{},[317,2738,2739],{},"aggregates",[317,2741,2334],{},[317,2743,2393],{},", with the rules of a search at every level. An include keeps its ",[317,2746,2747],{},"limit"," for each record, and a record with a to-many include ends with ",[1308,2750,2752],{"href":2751},"\u002Fsearch\u002Fincludes-and-aggregates#more-rows",[317,2753,2617],{},[1434,2755,2756,2757,2760,2761,2763,2764,1734,2766,2769,2770,2772,2773],{},"Another key of a search gives a 422, such as ",[317,2758,2759],{},"The response.filters field is prohibited.",", and so does ",[317,2762,774],{}," in ",[317,2765,2393],{},[317,2767,2768],{},"The response.gates.0 field is prohibited."," A ",[317,2771,2145],{}," that is not an object gives ",[317,2774,2775],{},"The response field must be an array.",[1434,2777,2778,2779,2781,2782,1775],{},"The records are read after the commit, through the search of the resource: its ",[317,2780,1826],{}," applies, and a row that it leaves out, or that is gone, gives ",[317,2783,1770],{},[1434,2785,2786,2787,2790,2791,1775],{},"The gates answer for the rows as the mutation left them. The records go through the ",[317,2788,2789],{},"map()"," of the resource's ",[1308,2792,2793],{"href":181},"Response",[1434,2795,2796,2798,2799,2802,2803,2806],{},[317,2797,2145],{}," needs ",[317,2800,2801],{},"viewAny"," on the resource and on each resource that its includes and aggregates reach, checked before any write: a denial answers ",[317,2804,2805],{},"403",", and nothing is written.",[1243,2808,2810],{"id":2809},"transactions","Transactions",[313,2812,2813],{},"The mutation runs in one database transaction, on the connection of the model of the endpoint's resource:",[2815,2816,2817,2825,2828,2835,2849,2864],"ol",{},[1434,2818,2819,2820,1289,2822,2824],{},"The class checks (",[317,2821,2801],{},[317,2823,774],{},") run before validation.",[1434,2826,2827],{},"Validation reads the rows that the keys name, through the perimeter.",[1434,2829,2830,2831,2834],{},"In the transaction, the row checks of every entry run, before the first write, then the ",[1308,2832,2833],{"href":115},"version check"," of a versioned resource.",[1434,2836,2837,2838,2841,2842,2844,2845,2848],{},"The resource's ",[317,2839,2840],{},"mutateConfirmation()"," can ask for a ",[1308,2843,1464],{"href":1471},": the endpoint then answers ",[317,2846,2847],{},"428"," and writes nothing.",[1434,2850,2851,2854,2855,1299,2857,2860,2861,1775],{},[317,2852,2853],{},"mutatingAll()",", the writes with their ",[317,2856,1802],{},[317,2858,2859],{},"mutated()"," hooks, then ",[317,2862,2863],{},"mutatedAll()",[1434,2865,2866,2867,2869,2870,2873],{},"After the commit, the ",[317,2868,2513],{}," are read and the ",[317,2871,2872],{},"ResourceMutated"," event is dispatched.",[1431,2875,2876,2879,2882,2910],{},[1434,2877,2878],{},"A failure anywhere, a denied row, a hook that throws or a database error, rolls the whole mutation back, and the response is the error alone.",[1434,2880,2881],{},"Rows of models on another connection are written outside the transaction.",[1434,2883,2884,1299,2886,2888,2889,2891,2892,2894,2895,2897,2898,1289,2900,1289,2902,1283,2904,2906,2907,2909],{},[317,2885,1802],{},[317,2887,2859],{}," run for each row that an entry writes, at every level, on the resource of that row: a ",[317,2890,774],{},", an ",[317,2893,980],{},", an entry with ",[317,2896,786],{},", and an ",[317,2899,920],{},[317,2901,1292],{},[317,2903,1295],{},[317,2905,1298],{}," entry whose own ",[317,2908,818],{}," change.",[1434,2911,2912,2913,2915],{},"An entry that writes no attribute and no relation, such as the target of an ",[317,2914,920],{},", runs no hook and is not saved: only its link is written.",[322,2917,2919],{"className":727,"code":2918,"language":730,"meta":328,"style":328},"{\"operation\": \"attach\", \"key\": 7, \"relations\": {\"tags\": [{\"operation\": \"attach\", \"key\": [3]}]}}\n",[317,2920,2921],{"__ignoreMap":328},[332,2922,2923,2925,2927,2929,2931,2933,2935,2937,2939,2941,2943,2945,2947,2949,2952,2954,2956,2958,2960,2962,2964,2966,2969,2971,2973,2975,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001,3004],{"class":334,"line":335},[332,2924,2017],{"class":346},[332,2926,747],{"class":346},[332,2928,764],{"class":442},[332,2930,747],{"class":346},[332,2932,750],{"class":346},[332,2934,771],{"class":346},[332,2936,920],{"class":549},[332,2938,747],{"class":346},[332,2940,670],{"class":346},[332,2942,771],{"class":346},[332,2944,929],{"class":442},[332,2946,747],{"class":346},[332,2948,750],{"class":346},[332,2950,2951],{"class":338}," 7",[332,2953,670],{"class":346},[332,2955,771],{"class":346},[332,2957,818],{"class":442},[332,2959,747],{"class":346},[332,2961,750],{"class":346},[332,2963,793],{"class":346},[332,2965,747],{"class":346},[332,2967,2968],{"class":446},"tags",[332,2970,747],{"class":346},[332,2972,750],{"class":346},[332,2974,2309],{"class":346},[332,2976,747],{"class":346},[332,2978,764],{"class":338},[332,2980,747],{"class":346},[332,2982,750],{"class":346},[332,2984,771],{"class":346},[332,2986,920],{"class":549},[332,2988,747],{"class":346},[332,2990,670],{"class":346},[332,2992,771],{"class":346},[332,2994,929],{"class":338},[332,2996,747],{"class":346},[332,2998,750],{"class":346},[332,3000,936],{"class":346},[332,3002,3003],{"class":338},"3",[332,3005,3006],{"class":346},"]}]}}\n",[313,3008,3009],{},"The entry above links row 7 to its parent and attaches tag 3 to row 7: the hooks of its resource run for row 7, and tag 3, only linked, runs none.",[313,3011,1806,3012,1775],{},[1308,3013,3014],{"href":177},"Events and hooks",[3016,3017,3019],"h3",{"id":3018},"deadlock-retries","Deadlock retries",[322,3021,3024],{"className":324,"code":3022,"filename":3023,"language":327,"meta":328,"style":328},"'transactions' => [\n    'attempts' => env('REST_TRANSACTION_ATTEMPTS', 1),\n],\n","config\u002Frest.php",[317,3025,3026,3039,3070],{"__ignoreMap":328},[332,3027,3028,3030,3032,3034,3037],{"class":334,"line":335},[332,3029,546],{"class":346},[332,3031,2809],{"class":549},[332,3033,546],{"class":346},[332,3035,3036],{"class":346}," =>",[332,3038,529],{"class":346},[332,3040,3041,3044,3047,3049,3051,3054,3056,3058,3061,3063,3065,3068],{"class":334,"line":365},[332,3042,3043],{"class":346},"    '",[332,3045,3046],{"class":549},"attempts",[332,3048,546],{"class":346},[332,3050,3036],{"class":346},[332,3052,3053],{"class":506}," env",[332,3055,543],{"class":346},[332,3057,546],{"class":346},[332,3059,3060],{"class":549},"REST_TRANSACTION_ATTEMPTS",[332,3062,546],{"class":346},[332,3064,670],{"class":346},[332,3066,3067],{"class":338}," 1",[332,3069,555],{"class":346},[332,3071,3072],{"class":334,"line":387},[332,3073,3074],{"class":346},"],\n",[1431,3076,3077,3086,3099,3109,3119],{},[1434,3078,3079,3080,3082,3083,3085],{},"When the database reports a deadlock or a lock timeout, the package runs the transaction again, up to ",[317,3081,3046],{}," times in all. ",[317,3084,2046],{},", the default, runs it once.",[1434,3087,3088,3089,1289,3092,1299,3095,3098],{},"This applies to the transaction of a mutation, of ",[317,3090,3091],{},"destroy",[317,3093,3094],{},"restore",[317,3096,3097],{},"forceDestroy",", and of each chunk, row or whole run of an action.",[1434,3100,3101,3102,1283,3105,3108],{},"Each attempt rolls the previous one back, gives the rows read before the transaction their attributes as read, and runs everything inside the transaction again: the row checks, the hooks, the events and the ",[317,3103,3104],{},"handle()",[317,3106,3107],{},"handleRow()"," of an action.",[1434,3110,3111,3112,1289,3115,3118],{},"Send mails, HTTP calls and jobs after the commit, with ",[317,3113,3114],{},"afterCommit()",[317,3116,3117],{},"ShouldDispatchAfterCommit"," or a listener of the package events, so that they run once.",[1434,3120,3121,3122,3125],{},"Laravel runs only the outermost transaction again: inside a transaction of your application, a deadlock throws ",[317,3123,3124],{},"Illuminate\\Database\\DeadlockException"," at once.",[3016,3127,3129],{"id":3128},"recording-each-written-row","Recording each written row",[313,3131,3132],{},"To keep a history row for each written row, write it from the row hooks. They run inside the transaction of the endpoint: a throw in a hook, or later in the request, rolls back the write and the history together, and a deadlock retry runs the hooks again after it rolls back what the failed attempt wrote.",[322,3134,3136],{"className":324,"code":3135,"language":327,"meta":328,"style":328},"use Illuminate\\Database\\Eloquent\\Model;\nuse Lomkit\\Rest\\Mutations\\MutationNode;\n\npublic function mutated(MutationNode $entry, Model $model): void\n{\n    History::create([\n        'subject_type' => $model->getMorphClass(),\n        'subject_id' => $model->getKey(),\n        'note' => trim($entry->operation->value.' '.implode(',', array_keys($entry->relations ?? []))),\n    ]);\n}\n",[317,3137,3138,3162,3184,3188,3223,3227,3239,3264,3286,3351,3356],{"__ignoreMap":328},[332,3139,3140,3142,3145,3147,3150,3152,3155,3157,3160],{"class":334,"line":335},[332,3141,339],{"class":338},[332,3143,3144],{"class":342}," Illuminate",[332,3146,347],{"class":346},[332,3148,3149],{"class":342},"Database",[332,3151,347],{"class":346},[332,3153,3154],{"class":342},"Eloquent",[332,3156,347],{"class":346},[332,3158,3159],{"class":342},"Model",[332,3161,362],{"class":346},[332,3163,3164,3166,3168,3170,3172,3174,3177,3179,3182],{"class":334,"line":365},[332,3165,339],{"class":338},[332,3167,343],{"class":342},[332,3169,347],{"class":346},[332,3171,350],{"class":342},[332,3173,347],{"class":346},[332,3175,3176],{"class":342},"Mutations",[332,3178,347],{"class":346},[332,3180,3181],{"class":342},"MutationNode",[332,3183,362],{"class":346},[332,3185,3186],{"class":334,"line":387},[332,3187,436],{"emptyLinePlaceholder":435},[332,3189,3190,3193,3195,3198,3200,3202,3204,3207,3209,3212,3214,3217,3220],{"class":334,"line":410},[332,3191,3192],{"class":442},"public",[332,3194,503],{"class":442},[332,3196,3197],{"class":506}," mutated",[332,3199,543],{"class":346},[332,3201,3181],{"class":446},[332,3203,474],{"class":346},[332,3205,3206],{"class":342},"entry",[332,3208,670],{"class":346},[332,3210,3211],{"class":446}," Model",[332,3213,474],{"class":346},[332,3215,3216],{"class":342},"model",[332,3218,3219],{"class":346},"):",[332,3221,3222],{"class":338}," void\n",[332,3224,3225],{"class":334,"line":432},[332,3226,459],{"class":346},[332,3228,3229,3232,3234,3236],{"class":334,"line":439},[332,3230,3231],{"class":446},"    History",[332,3233,486],{"class":346},[332,3235,774],{"class":506},[332,3237,3238],{"class":346},"([\n",[332,3240,3241,3244,3247,3249,3251,3253,3255,3258,3261],{"class":334,"line":456},[332,3242,3243],{"class":346},"        '",[332,3245,3246],{"class":549},"subject_type",[332,3248,546],{"class":346},[332,3250,3036],{"class":346},[332,3252,474],{"class":346},[332,3254,3216],{"class":342},[332,3256,3257],{"class":346},"->",[332,3259,3260],{"class":506},"getMorphClass",[332,3262,3263],{"class":346},"(),\n",[332,3265,3266,3268,3271,3273,3275,3277,3279,3281,3284],{"class":334,"line":462},[332,3267,3243],{"class":346},[332,3269,3270],{"class":549},"subject_id",[332,3272,546],{"class":346},[332,3274,3036],{"class":346},[332,3276,474],{"class":346},[332,3278,3216],{"class":342},[332,3280,3257],{"class":346},[332,3282,3283],{"class":506},"getKey",[332,3285,3263],{"class":346},[332,3287,3288,3290,3293,3295,3297,3300,3303,3305,3307,3309,3311,3314,3317,3320,3323,3325,3327,3329,3331,3333,3336,3338,3340,3342,3345,3348],{"class":334,"line":493},[332,3289,3243],{"class":346},[332,3291,3292],{"class":549},"note",[332,3294,546],{"class":346},[332,3296,3036],{"class":346},[332,3298,3299],{"class":506}," trim",[332,3301,3302],{"class":346},"($",[332,3304,3206],{"class":342},[332,3306,3257],{"class":346},[332,3308,764],{"class":342},[332,3310,3257],{"class":346},[332,3312,3313],{"class":342},"value",[332,3315,3316],{"class":346},".'",[332,3318,3319],{"class":346}," '.",[332,3321,3322],{"class":506},"implode",[332,3324,543],{"class":346},[332,3326,546],{"class":346},[332,3328,670],{"class":549},[332,3330,546],{"class":346},[332,3332,670],{"class":346},[332,3334,3335],{"class":506}," array_keys",[332,3337,3302],{"class":346},[332,3339,3206],{"class":342},[332,3341,3257],{"class":346},[332,3343,3344],{"class":342},"relations ",[332,3346,3347],{"class":346},"??",[332,3349,3350],{"class":346}," []))),\n",[332,3352,3353],{"class":334,"line":498},[332,3354,3355],{"class":346},"    ]);\n",[332,3357,3358],{"class":334,"line":516},[332,3359,724],{"class":346},[322,3361,3364],{"className":727,"code":3362,"filename":3363,"language":730,"meta":328,"style":328},"{\n  \"mutate\": [\n    {\n      \"operation\": \"update\",\n      \"key\": 101,\n      \"attributes\": {\"borrower\": \"Alan\"},\n      \"relations\": {\n        \"book\": {\n          \"operation\": \"attach\",\n          \"key\": 102,\n          \"relations\": {\n            \"shelves\": [\n              {\"operation\": \"create\", \"attributes\": {\"name\": \"Essays\"}},\n              {\"operation\": \"attach\", \"key\": [101]}\n            ]\n          }\n        }\n      }\n    }\n  ]\n}\n","POST \u002Fapi\u002Floans\u002Fmutate",[317,3365,3366,3370,3382,3386,3404,3419,3449,3461,3474,3493,3508,3520,3534,3583,3618,3623,3628,3633,3637,3641,3645],{"__ignoreMap":328},[332,3367,3368],{"class":334,"line":335},[332,3369,459],{"class":346},[332,3371,3372,3374,3376,3378,3380],{"class":334,"line":365},[332,3373,741],{"class":346},[332,3375,744],{"class":442},[332,3377,747],{"class":346},[332,3379,750],{"class":346},[332,3381,529],{"class":346},[332,3383,3384],{"class":334,"line":387},[332,3385,519],{"class":346},[332,3387,3388,3390,3392,3394,3396,3398,3400,3402],{"class":334,"line":410},[332,3389,761],{"class":346},[332,3391,764],{"class":446},[332,3393,747],{"class":346},[332,3395,750],{"class":346},[332,3397,771],{"class":346},[332,3399,980],{"class":549},[332,3401,747],{"class":346},[332,3403,779],{"class":346},[332,3405,3406,3408,3410,3412,3414,3417],{"class":334,"line":432},[332,3407,761],{"class":346},[332,3409,929],{"class":446},[332,3411,747],{"class":346},[332,3413,750],{"class":346},[332,3415,3416],{"class":338}," 101",[332,3418,779],{"class":346},[332,3420,3421,3423,3425,3427,3429,3431,3433,3436,3438,3440,3442,3445,3447],{"class":334,"line":439},[332,3422,761],{"class":346},[332,3424,786],{"class":446},[332,3426,747],{"class":346},[332,3428,750],{"class":346},[332,3430,793],{"class":346},[332,3432,747],{"class":346},[332,3434,3435],{"class":338},"borrower",[332,3437,747],{"class":346},[332,3439,750],{"class":346},[332,3441,771],{"class":346},[332,3443,3444],{"class":549},"Alan",[332,3446,747],{"class":346},[332,3448,811],{"class":346},[332,3450,3451,3453,3455,3457,3459],{"class":334,"line":456},[332,3452,761],{"class":346},[332,3454,818],{"class":446},[332,3456,747],{"class":346},[332,3458,750],{"class":346},[332,3460,825],{"class":346},[332,3462,3463,3465,3468,3470,3472],{"class":334,"line":462},[332,3464,830],{"class":346},[332,3466,3467],{"class":338},"book",[332,3469,747],{"class":346},[332,3471,750],{"class":346},[332,3473,825],{"class":346},[332,3475,3476,3479,3481,3483,3485,3487,3489,3491],{"class":334,"line":493},[332,3477,3478],{"class":346},"          \"",[332,3480,764],{"class":848},[332,3482,747],{"class":346},[332,3484,750],{"class":346},[332,3486,771],{"class":346},[332,3488,920],{"class":549},[332,3490,747],{"class":346},[332,3492,779],{"class":346},[332,3494,3495,3497,3499,3501,3503,3506],{"class":334,"line":498},[332,3496,3478],{"class":346},[332,3498,929],{"class":848},[332,3500,747],{"class":346},[332,3502,750],{"class":346},[332,3504,3505],{"class":338}," 102",[332,3507,779],{"class":346},[332,3509,3510,3512,3514,3516,3518],{"class":334,"line":516},[332,3511,3478],{"class":346},[332,3513,818],{"class":848},[332,3515,747],{"class":346},[332,3517,750],{"class":346},[332,3519,825],{"class":346},[332,3521,3522,3525,3528,3530,3532],{"class":334,"line":522},[332,3523,3524],{"class":346},"            \"",[332,3526,3527],{"class":875},"shelves",[332,3529,747],{"class":346},[332,3531,750],{"class":346},[332,3533,529],{"class":346},[332,3535,3536,3539,3541,3543,3545,3547,3549,3551,3553,3555,3557,3559,3561,3563,3565,3567,3570,3572,3574,3576,3579,3581],{"class":334,"line":532},[332,3537,3538],{"class":346},"              {",[332,3540,747],{"class":346},[332,3542,764],{"class":506},[332,3544,747],{"class":346},[332,3546,750],{"class":346},[332,3548,771],{"class":346},[332,3550,774],{"class":549},[332,3552,747],{"class":346},[332,3554,670],{"class":346},[332,3556,771],{"class":346},[332,3558,786],{"class":506},[332,3560,747],{"class":346},[332,3562,750],{"class":346},[332,3564,793],{"class":346},[332,3566,747],{"class":346},[332,3568,572],{"class":3569},"sfNiH",[332,3571,747],{"class":346},[332,3573,750],{"class":346},[332,3575,771],{"class":346},[332,3577,3578],{"class":549},"Essays",[332,3580,747],{"class":346},[332,3582,903],{"class":346},[332,3584,3585,3587,3589,3591,3593,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3616],{"class":334,"line":558},[332,3586,3538],{"class":346},[332,3588,747],{"class":346},[332,3590,764],{"class":506},[332,3592,747],{"class":346},[332,3594,750],{"class":346},[332,3596,771],{"class":346},[332,3598,920],{"class":549},[332,3600,747],{"class":346},[332,3602,670],{"class":346},[332,3604,771],{"class":346},[332,3606,929],{"class":506},[332,3608,747],{"class":346},[332,3610,750],{"class":346},[332,3612,936],{"class":346},[332,3614,3615],{"class":338},"101",[332,3617,947],{"class":346},[332,3619,3620],{"class":334,"line":608},[332,3621,3622],{"class":346},"            ]\n",[332,3624,3625],{"class":334,"line":614},[332,3626,3627],{"class":346},"          }\n",[332,3629,3630],{"class":334,"line":620},[332,3631,3632],{"class":346},"        }\n",[332,3634,3635],{"class":334,"line":625},[332,3636,957],{"class":346},[332,3638,3639],{"class":334,"line":639},[332,3640,617],{"class":346},[332,3642,3643],{"class":334,"line":644},[332,3644,1030],{"class":346},[332,3646,3647],{"class":334,"line":651},[332,3648,724],{"class":346},[313,3650,3651,3652,3654,3655,3658,3659,3662],{},"The hooks run from the deepest row up, and the history gets three rows in the transaction of the mutation: the new shelf with ",[317,3653,774],{},", book 102 with ",[317,3656,3657],{},"attach shelves",", then loan 101 with ",[317,3660,3661],{},"update book",". Shelf 101, only linked, runs no hook.",[1431,3664,3665,3688,3696,3714,3726],{},[1434,3666,3667,3668,3670,3671,3673,3674,1299,3677,3680,3681,3684,3685,3687],{},"On ",[317,3669,744],{},", use ",[317,3672,2859],{},": the row and its relations are written by then. ",[317,3675,3676],{},"$entry->attributes",[317,3678,3679],{},"$entry->relations"," say what the request changed for ",[317,3682,3683],{},"$model",". Read a relation in ",[317,3686,2859],{}," for the rows now attached.",[1434,3689,3690,3691,3693,3694,1775],{},"A target that is only linked, a moved child and a child ",[317,3692,1302],{}," run no hook of their own: record them from the entry of the parent row, under ",[317,3695,3679],{},[1434,3697,3667,3698,1289,3700,1299,3702,3670,3704,1289,3707,1299,3710,3713],{},[317,3699,3091],{},[317,3701,3094],{},[317,3703,3097],{},[317,3705,3706],{},"destroyed()",[317,3708,3709],{},"restored()",[317,3711,3712],{},"forceDestroyed()",", once per row.",[1434,3715,3716,3717,1283,3719,3721,3722,3725],{},"In an action, write the history inside ",[317,3718,3104],{},[317,3720,3107],{},", in the transaction of the chunk, the row or the run. ",[317,3723,3724],{},"ActionTransaction::None"," opens no transaction.",[1434,3727,3728,3729,3733],{},"The ",[1308,3730,3732],{"href":3731},"\u002Fdigging-deeper\u002Fevents-and-hooks#laravel-events","Laravel events"," run after the commit: keep them for work outside the database.",[1243,3735,148],{"id":3736},"authorization",[1431,3738,3739,3744,3749,3754,3766,3781],{},[1434,3740,3741,3743],{},[317,3742,2801],{}," on the resource of the endpoint is checked before validation.",[1434,3745,3746,3748],{},[317,3747,774],{}," is checked once per created resource class, before validation, then per created row with its draft.",[1434,3750,3751,3753],{},[317,3752,980],{}," is checked per updated row, with the changes of the entry as a third argument.",[1434,3755,3756,3757,3759,3760,3763,3764,1775],{},"A row that an entry names without writing it, such as the target of an ",[317,3758,920],{}," on a many-to-many relation, is checked with ",[317,3761,3762],{},"view",". A row that an entry moves under a child relation is checked with ",[317,3765,980],{},[1434,3767,3768,3769,1289,3771,1289,3773,1299,3775,3777,3778,3780],{},"The links of ",[317,3770,920],{},[317,3772,1292],{},[317,3774,1295],{},[317,3776,1298],{}," check the abilities that the relation declares, or else ",[317,3779,980],{}," on the parent.",[1434,3782,3783,3784,3786,3787,3790,3791,1775],{},"A denial answers ",[317,3785,2805],{}," with the message of the first denial: ",[317,3788,3789],{},"{\"message\": \"This action is unauthorized.\"}",", or the message of the policy's ",[317,3792,3793],{},"Response::deny()",[313,3795,1806,3796,3798,3799,3802],{},[1308,3797,154],{"href":155}," for the checks and for the ",[317,3800,3801],{},"denials"," list.",[1243,3804,58],{"id":3805},"limits",[1248,3807,3808,3821],{},[1251,3809,3810],{},[1254,3811,3812,3815,3818],{},[1257,3813,3814],{},"Limit",[1257,3816,3817],{},"Default",[1257,3819,3820],{},"Counts",[1267,3822,3823,3838,3850,3865,3878,3891],{},[1254,3824,3825,3830,3833],{},[1272,3826,3827],{},[317,3828,3829],{},"rest.limits.sizes.mutate",[1272,3831,3832],{},"100",[1272,3834,3835,3836],{},"The entries of ",[317,3837,744],{},[1254,3839,3840,3845,3847],{},[1272,3841,3842],{},[317,3843,3844],{},"rest.limits.sizes.relation_entries",[1272,3846,3832],{},[1272,3848,3849],{},"The entries of each to-many relation, each deleted key counting as one",[1254,3851,3852,3857,3859],{},[1272,3853,3854],{},[317,3855,3856],{},"rest.limits.sizes.values",[1272,3858,3832],{},[1272,3860,3861,3862,3864],{},"The keys of one ",[317,3863,929],{}," list",[1254,3866,3867,3871,3873],{},[1272,3868,3869],{},[317,3870,1903],{},[1272,3872,3003],{},[1272,3874,3875,3876],{},"The levels of ",[317,3877,818],{},[1254,3879,3880,3885,3888],{},[1272,3881,3882],{},[317,3883,3884],{},"rest.limits.totals.entries",[1272,3886,3887],{},"1000",[1272,3889,3890],{},"Every list entry of the request",[1254,3892,3893,3898,3901],{},[1272,3894,3895],{},[317,3896,3897],{},"rest.limits.sizes.rows",[1272,3899,3900],{},"10000",[1272,3902,3903,3904,3906,3907,3909,3910,3912,3913],{},"The rows that ",[317,3905,2145],{}," can render: one record for each entry of ",[317,3908,744],{},", times the ",[317,3911,2747],{}," of each to-many include. See ",[1308,3914,58],{"href":3915},"\u002Fresources\u002Flimits#response-rows",[1243,3917,3919],{"id":3918},"errors","Errors",[322,3921,3924],{"className":727,"code":3922,"filename":3923,"language":730,"meta":328,"style":328},"{\n  \"message\": \"The created_at key of the mutate.0.attributes field is not writable on create.\",\n  \"errors\": {\n    \"mutate.0.attributes\": [\"The created_at key of the mutate.0.attributes field is not writable on create.\"]\n  }\n}\n","422 Unprocessable Content",[317,3925,3926,3930,3948,3960,3981,3985],{"__ignoreMap":328},[332,3927,3928],{"class":334,"line":335},[332,3929,459],{"class":346},[332,3931,3932,3934,3936,3938,3940,3942,3944,3946],{"class":334,"line":365},[332,3933,741],{"class":346},[332,3935,2577],{"class":442},[332,3937,747],{"class":346},[332,3939,750],{"class":346},[332,3941,771],{"class":346},[332,3943,1737],{"class":549},[332,3945,747],{"class":346},[332,3947,779],{"class":346},[332,3949,3950,3952,3954,3956,3958],{"class":334,"line":387},[332,3951,741],{"class":346},[332,3953,3918],{"class":442},[332,3955,747],{"class":346},[332,3957,750],{"class":346},[332,3959,825],{"class":346},[332,3961,3962,3964,3967,3969,3971,3973,3975,3977,3979],{"class":334,"line":410},[332,3963,2299],{"class":346},[332,3965,3966],{"class":446},"mutate.0.attributes",[332,3968,747],{"class":346},[332,3970,750],{"class":346},[332,3972,936],{"class":346},[332,3974,747],{"class":346},[332,3976,1737],{"class":549},[332,3978,747],{"class":346},[332,3980,2408],{"class":346},[332,3982,3983],{"class":334,"line":432},[332,3984,2413],{"class":346},[332,3986,3987],{"class":334,"line":439},[332,3988,724],{"class":346},[1248,3990,3991,4001],{},[1251,3992,3993],{},[1254,3994,3995,3998],{},[1257,3996,3997],{},"Status",[1257,3999,4000],{},"Example",[1267,4002,4003,4014,4026,4037,4049,4059,4070,4080],{},[1254,4004,4005,4009],{},[1272,4006,4007],{},[317,4008,2805],{},[1272,4010,4011,4012],{},"A policy refuses a row: ",[317,4013,3789],{},[1254,4015,4016,4021],{},[1272,4017,4018],{},[317,4019,4020],{},"409",[1272,4022,4023,4024],{},"A versioned row changed since the client read it, see ",[1308,4025,114],{"href":115},[1254,4027,4028,4032],{},[1272,4029,4030],{},[317,4031,2847],{},[1272,4033,4034,4035],{},"The resource asks for a confirmation, see ",[1308,4036,136],{"href":1471},[1254,4038,4039,4044],{},[1272,4040,4041],{},[317,4042,4043],{},"422",[1272,4045,4046],{},[317,4047,4048],{},"The selected mutate.0.operation is invalid.",[1254,4050,4051,4055],{},[1272,4052,4053],{},[317,4054,4043],{},[1272,4056,4057],{},[317,4058,1830],{},[1254,4060,4061,4065],{},[1272,4062,4063],{},[317,4064,4043],{},[1272,4066,4067],{},[317,4068,4069],{},"The mutate.0.attributes.name field must be a string.",[1254,4071,4072,4076],{},[1272,4073,4074],{},[317,4075,4043],{},[1272,4077,4078],{},[317,4079,1450],{},[1254,4081,4082,4086],{},[1272,4083,4084],{},[317,4085,4043],{},[1272,4087,4088],{},[317,4089,4090],{},"The mutate.0.without_detaching field is prohibited unless mutate.0.operation is in sync.",[4092,4093,4094],"style",{},"html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .su27w, html code.shiki .su27w{--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":328,"searchDepth":335,"depth":365,"links":4096},[4097,4098,4099,4100,4101,4102,4103,4107,4108,4109],{"id":1245,"depth":365,"text":1246},{"id":786,"depth":365,"text":1481},{"id":1814,"depth":365,"text":1815},{"id":1854,"depth":365,"text":1855},{"id":1949,"depth":365,"text":1950},{"id":2138,"depth":365,"text":2139},{"id":2809,"depth":365,"text":2810,"children":4104},[4105,4106],{"id":3018,"depth":387,"text":3019},{"id":3128,"depth":387,"text":3129},{"id":3736,"depth":365,"text":148},{"id":3805,"depth":365,"text":58},{"id":3918,"depth":365,"text":3919},"Create and update rows with their relations in one request and one transaction, read the written rows back, and retry on deadlocks.","md",null,{},{"title":106,"description":4110},{"loc":107},"Z4B9GBwh4D53FoPGee1xG-7zsmErY2H2CiixBQdYn4U",[4118,4120],{"title":96,"path":97,"stem":98,"description":4119,"children":-1},"Replay a client search payload from a job, a command or an export with Rest::search(), with the validation, perimeter and policies of the endpoint.",{"title":110,"path":111,"stem":112,"description":4121,"children":-1},"Create, update, attach, detach, sync, toggle and delete related rows in a mutate entry, and write pivot fields with their rules.",1794181348881]