import define from "../../../define.js";
import { Announcements } from "../../../../../models/index.js";
import { ApiError } from "../../../error.js";
import { publishBroadcastStream } from "../../../../../services/stream.js";
export const meta = {
    tags: [
        "admin"
    ],
    requireCredential: true,
    requireModerator: true,
    errors: {
        noSuchAnnouncement: {
            message: "No such announcement.",
            code: "NO_SUCH_ANNOUNCEMENT",
            id: "ecad8040-a276-4e85-bda9-015a708d291e"
        }
    }
};
export const paramDef = {
    type: "object",
    properties: {
        id: {
            type: "string",
            format: "misskey:id"
        }
    },
    required: [
        "id"
    ]
};
export default define(meta, paramDef, async (ps, me)=>{
    const announcement = await Announcements.findOneBy({
        id: ps.id
    });
    if (announcement == null) throw new ApiError(meta.errors.noSuchAnnouncement);
    publishBroadcastStream("announcementDeleted", announcement.id);
    await Announcements.delete(announcement.id);
});
