#pragma once
#include "configobject.hpp"
#include <qqmlintegration.h>

namespace ZShell::config {

class LockSizes : public ConfigObject {
	Q_OBJECT
	QML_ANONYMOUS

	CFG_PROPERTY(int, centerWidth, 600)
	CFG_PROPERTY(qreal, heightMult, 0.7)
	CFG_PROPERTY(qreal, ratio, 1.78)

	public:
	explicit LockSizes(QObject* parent = nullptr) : ConfigObject(parent) {}
};

class Lock : public ConfigObject {
	Q_OBJECT
	QML_ANONYMOUS

	CFG_PROPERTY(int, blurAmount, 10)
	CFG_PROPERTY(bool, enableFprint, true)
	CFG_PROPERTY(int, maxFprintTries, 3)
	CFG_PROPERTY(bool, recolorLogo, false)
	CFG_PROPERTY(bool, showNotifContent, true)
	CFG_PROPERTY(bool, showNotifIcon, true)
	CONFIG_SUBOBJECT(LockSizes, sizes)

	public:
	explicit Lock(QObject* parent = nullptr)
		: ConfigObject(parent), m_sizes(new LockSizes(this)) {}
};

} // namespace ZShell::config
