<?php
/**
 * Firmendaten (Adresse + Bankverbindung) als Einstellungen.
 *
 * Die Standardwerte stammen aus der Original-Word-Vorlage und können im
 * Backend unter "Angebote → Firmendaten" angepasst werden. Sie erscheinen
 * im PDF-Kopf (Adresse) und Fuß (Bankdaten).
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

class AG_Settings {

    const OPTION = 'ag_company_data';

    /**
     * Standardwerte (aus der Vorlage übernommen).
     */
    public static function defaults() {
        return array(
            'company'  => 'Die Schule SL',
            'address'  => 'Vía Augusta 135 · 08021 Barcelona',
            'phone'    => '+34 935 41 37 37',
            'email'    => 'info@dieschule.es',
            'web'      => 'www.dieschule.es',
            'nif'      => 'B66761495',
            'bank1'    => 'CAIXA: IBAN ES64 2100 0541 8102 0042 2204 · BIC CAIXESBBXXX',
            'bank2'    => 'SABADELL: IBAN ES98 0081 0167 4200 0210 7515 · BIC BSABESBBXXX',
        );
    }

    /**
     * Liefert die gespeicherten Firmendaten (mit Fallback auf Standardwerte).
     */
    public static function get() {
        $saved = get_option( self::OPTION, array() );
        if ( ! is_array( $saved ) ) {
            $saved = array();
        }
        return wp_parse_args( $saved, self::defaults() );
    }

    public static function init() {
        add_action( 'admin_init', array( __CLASS__, 'maybe_save' ) );
    }

    /**
     * Speichert die Firmendaten, wenn das Einstellungsformular abgesendet wurde.
     */
    public static function maybe_save() {
        if ( empty( $_POST['ag_settings_nonce'] ) || ! wp_verify_nonce( $_POST['ag_settings_nonce'], 'ag_save_settings' ) ) {
            return;
        }
        if ( ! current_user_can( 'manage_options' ) ) {
            return;
        }

        $fields = array_keys( self::defaults() );
        $data   = array();
        foreach ( $fields as $f ) {
            $data[ $f ] = isset( $_POST['ag_company'][ $f ] ) ? sanitize_text_field( wp_unslash( $_POST['ag_company'][ $f ] ) ) : '';
        }

        update_option( self::OPTION, $data );
        add_action( 'admin_notices', function () {
            echo '<div class="notice notice-success is-dismissible"><p>Firmendaten gespeichert.</p></div>';
        } );
    }

    /**
     * Rendert die Einstellungsseite.
     */
    public static function render_page() {
        if ( ! current_user_can( 'manage_options' ) ) {
            wp_die( 'Keine Berechtigung.' );
        }

        $data   = self::get();
        $labels = array(
            'company' => 'Firma',
            'address' => 'Adresse',
            'phone'   => 'Telefon',
            'email'   => 'E-Mail',
            'web'     => 'Webseite',
            'nif'     => 'N.I.F. / CIF',
            'bank1'   => 'Bankverbindung 1',
            'bank2'   => 'Bankverbindung 2',
        );
        ?>
        <div class="wrap">
            <h1>Firmendaten</h1>
            <p>Diese Angaben erscheinen im Kopf (Adresse) und Fuß (Bankdaten) jedes Angebots-PDFs.</p>
            <form method="post">
                <?php wp_nonce_field( 'ag_save_settings', 'ag_settings_nonce' ); ?>
                <table class="form-table">
                    <?php foreach ( $labels as $key => $label ) : ?>
                        <tr>
                            <th><label for="ag_<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></label></th>
                            <td>
                                <input type="text" id="ag_<?php echo esc_attr( $key ); ?>"
                                    name="ag_company[<?php echo esc_attr( $key ); ?>]"
                                    value="<?php echo esc_attr( $data[ $key ] ); ?>"
                                    class="regular-text" style="width:520px;max-width:100%;">
                            </td>
                        </tr>
                    <?php endforeach; ?>
                </table>
                <p class="submit"><button type="submit" class="button button-primary">Speichern</button></p>
            </form>
        </div>
        <?php
    }
}
