// Anope IRC Services
//
// Copyright (C) 2003-2026 Anope Contributors
//
// Anope is free software. You can use, modify, and/or distribute it under the
// terms of version 2 of the GNU General Public License. See docs/LICENSE.txt
// for the complete terms of this license and docs/AUTHORS.txt for a list of
// contributors.
//
// Based on the original code of Epona by Lara
// Based on the original code of Services by Andy Church
//
// SPDX-License-Identifier: GPL-2.0-only
#pragma once
#define CHANSERV_LOG_SETTING_EXT "logsettings"
#define CHANSERV_LOG_SETTING_TYPE "LogSetting"
namespace ChanServ
{
class LogSetting;
class LogSettings;
}
class ChanServ::LogSetting
{
protected:
LogSetting() = default;
public:
Anope::string chan;
/* Our service name of the command */
Anope::string service_name;
/* The name of the client the command is on */
Anope::string command_service;
/* Name of the command to the user, can have spaces */
Anope::string command_name;
Anope::string method, extra;
Anope::string creator;
time_t created;
virtual ~LogSetting() = default;
};
class ChanServ::LogSettings
: public Serialize::Checker>
{
protected:
LogSettings()
: Serialize::Checker>(CHANSERV_LOG_SETTING_TYPE)
{
}
public:
virtual ~LogSettings() = default;
virtual ChanServ::LogSetting *Create() = 0;
};