"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.metadata=void 0;const Websocket_1=require("@b/handler/Websocket"),query_1=require("@b/utils/query");exports.metadata={summary:"Updates the status of an announcement",operationId:"updateAnnouncementStatus",tags:["Admin","Announcements"],parameters:[{index:0,name:"id",in:"path",required:!0,description:"ID of the announcement to update",schema:{type:"string"}}],requestBody:{required:!0,content:{"application/json":{schema:{type:"object",properties:{status:{type:"boolean",description:"New status to apply (true for active, false for inactive)"}},required:["status"]}}}},responses:(0,query_1.updateRecordResponses)("Announcement"),requiresAuth:!0,permission:"edit.announcement",logModule:"ADMIN_SYS",logTitle:"Update announcement status"};exports.default=async e=>{const{body:t,params:n,ctx:s}=e,{id:a}=n,{status:u}=t;null==s||s.step(`Updating announcement ${a} status to ${u?"active":"inactive"}`);const o=(0,query_1.updateStatus)("announcement",a,u);null==s||s.step("Broadcasting status update");(0,Websocket_1.handleBroadcastMessage)({type:"announcements",model:"announcement",method:"update",status:u,id:a});null==s||s.success("Announcement status updated successfully");return o};