<?php

namespace Entity\Model;

use Helpers\QueryBuilder\QueryBuilder;

class TpEnt extends QueryBuilder
{
    protected string $table = 'TP_ENT with (nolock)';
    protected string $primaryKey = 'NUM_TP';
    protected string $libelle = 'LIBELLE';

    public function getArchitecture(\Helpers\Trad\ITrad $trad): array
    {
        return [
            'TYPEOBJ' => [
                'nomChamp' => $trad->t("Type d'objet"),
                'type' => 'TEXT',
                'description' => $trad->t("Type d'objet")
            ],
            'NUM_IDE' => [
                'nomChamp' => $trad->t("ID de l'objet"),
                'type' => 'NUMBER',
                'description' => $trad->t("ID unique de l'objet lié (DA, Commande, Modèle)")
            ],
            'NUM_CDE' => [
                'nomChamp' => $trad->t("N° Commande (historique)"),
                'type' => 'TEXT',
                'description' => $trad->t("Le nom historique du champ est conservé (NO_CDE).")
            ],
            'NUM_TP' => [
                'nomChamp' => $trad->t("N° Terme de paiement"),
                'type' => 'NUMBER',
                'description' => $trad->t("Numéro séquentiel du terme de paiement.")
            ],
            'LIBELLE' => [
                'nomChamp' => $trad->t("Libellé"),
                'type' => 'TEXT',
                'description' => $trad->t("Libellé du terme de paiement (max 120 caractères).")
            ],
            'MNT_BASE' => [
                'nomChamp' => $trad->t("Montant de base"),
                'type' => 'NUMBER',
                'description' => $trad->t("Montant à payer calculé en fonction des lignes de commande.")
            ],
            'POURC_TP' => [
                'nomChamp' => $trad->t("Pourcentage TP"),
                'type' => 'NUMBER',
                'description' => $trad->t("Pourcentage du montant à payer.")
            ],
            'BASE_LIVR' => [
                'nomChamp' => $trad->t("Proportionnel Livraisons ?"),
                'type' => 'RADIO',
                'description' => $trad->t("Indique si le terme de paiement est proportionnel aux livraisons.")
            ],
            'TP_FACT' => [
                'nomChamp' => $trad->t("TP facturable ?"),
                'type' => 'RADIO',
                'description' => $trad->t("Indique si le terme de paiement est facturable.")
            ],
            'DESCRIPT' => [
                'nomChamp' => $trad->t("Descriptif"),
                'type' => 'MEMO',
                'description' => $trad->t("Descriptif détaillé du terme de paiement.")
            ],
            'FACTATERME' => [
                'nomChamp' => $trad->t("Facturation à terme ?"),
                'type' => 'RADIO',
                'description' => $trad->t("Indique si le terme de paiement n'est pas disponible en facture dès qu'il devient 'Facturable'.")
            ],
            'DELAIFACT' => [
                'nomChamp' => $trad->t("Délai de facturation à terme"),
                'type' => 'NUMBER',
                'description' => $trad->t("Délai avant disponibilité en facture.")
            ],
            'TYPEDELAIF' => [
                'nomChamp' => $trad->t("Type de délai facturation"),
                'type' => 'TEXT',
                'description' => $trad->t("Type de délai: 'J'=Jours, 'M'=Mois, 'A'=Années.")
            ],
            'DATELIBF' => [
                'nomChamp' => $trad->t("Date libération facture"),
                'type' => 'DATE',
                'description' => $trad->t("Date à laquelle le terme de paiement facturable devient visible.")
            ],
        ];
    }
}
