import define from "../../../define.js";
import { ApiError } from "../../../error.js";
import { MessagingMessages } from "../../../../../models/index.js";
import { deleteMessage } from "../../../../../services/messages/delete.js";
import { SECOND, HOUR } from "../../../../../const.js";
export const meta = {
    tags: [
        "messaging"
    ],
    requireCredential: true,
    kind: "write:messaging",
    limit: {
        duration: HOUR,
        max: 300,
        minInterval: SECOND
    },
    errors: {
        noSuchMessage: {
            message: "No such message.",
            code: "NO_SUCH_MESSAGE",
            id: "54b5b326-7925-42cf-8019-130fda8b56af"
        }
    }
};
export const paramDef = {
    type: "object",
    properties: {
        messageId: {
            type: "string",
            format: "misskey:id"
        }
    },
    required: [
        "messageId"
    ]
};
export default define(meta, paramDef, async (ps, user)=>{
    const message = await MessagingMessages.findOneBy({
        id: ps.messageId,
        userId: user.id
    });
    if (message == null) {
        throw new ApiError(meta.errors.noSuchMessage);
    }
    await deleteMessage(message);
});
