olli 42e7bc7e10 feat(billing-module): Implementieren der Modulstruktur und Lizenzverwaltung
- Hinzufügen der DependencyInjection-Konfiguration für das Billing-Modul.
- Erstellen der Invoice-Entity mit API-Ressourcen und Berechtigungen.
- Konfigurieren der Services in services.yaml für das Billing-Modul.
- Implementieren von CLI-Commands zur Verwaltung von Modul-Lizenzen und zur Auflistung installierter Module.
- Erstellen eines API-Controllers zur Verwaltung von Modulen und Lizenzen.
- Hinzufügen eines EventListeners für das Booten von Modulen.
- Definieren von Interfaces für Lizenzvalidierung und Modul-Plugins.
- Implementieren der ModuleRegistry zur Verwaltung und Booten von Modulen.
- Erstellen eines LicenseValidator-Services zur Validierung und Registrierung von Lizenzen.
2025-12-03 15:14:07 +01:00

69 lines
2.5 KiB
PHP

<?php
namespace MyCRM\BillingModule\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* Bundle-Konfiguration für Billing-Modul
*
* Definiert konfigurierbare Optionen für das Modul
*/
class Configuration implements ConfigurationInterface
{
public function getConfigTreeBuilder(): TreeBuilder
{
$treeBuilder = new TreeBuilder('billing');
$treeBuilder->getRootNode()
->children()
->scalarNode('pdf_template')
->defaultValue('default')
->info('Template für PDF-Rechnungsgenerierung')
->end()
->scalarNode('invoice_prefix')
->defaultValue('RE-')
->info('Präfix für Rechnungsnummern')
->end()
->arrayNode('payment_gateway')
->addDefaultsIfNotSet()
->children()
->scalarNode('provider')
->defaultValue('stripe')
->info('Zahlungsanbieter (stripe, paypal, etc.)')
->end()
->scalarNode('api_key')
->defaultValue('%env(PAYMENT_API_KEY)%')
->info('API-Key für Zahlungsanbieter')
->end()
->booleanNode('test_mode')
->defaultFalse()
->info('Test-Modus aktivieren')
->end()
->end()
->end()
->arrayNode('features')
->addDefaultsIfNotSet()
->children()
->booleanNode('recurring_billing')
->defaultTrue()
->info('Wiederkehrende Rechnungen aktivieren')
->end()
->booleanNode('automatic_reminders')
->defaultTrue()
->info('Automatische Zahlungserinnerungen')
->end()
->booleanNode('multi_currency')
->defaultFalse()
->info('Multi-Währungsunterstützung')
->end()
->end()
->end()
->end()
;
return $treeBuilder;
}
}