Import initail de calcul-astreintes v0.9.4 pour passage en paycheck 1.0
This commit is contained in:
57
internal/models/models.go
Normal file
57
internal/models/models.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package models
|
||||
|
||||
// GlobalRules = constantes communes à tous les utilisateurs.
|
||||
type GlobalRules struct {
|
||||
// ForfaitDimFerie = forfait par dimanche / jour férié (€/jour)
|
||||
ForfaitDimFerie float64 `json:"forfait_dim_ferie"`
|
||||
}
|
||||
|
||||
// Profile = taux dépendants de la personne (grade, etc.)
|
||||
type Profile struct {
|
||||
ID string `json:"id"`
|
||||
Label string `json:"label"`
|
||||
Matricule string `json:"matricule,omitempty"` // ✅ pour auto-match avec l'agent importé
|
||||
|
||||
// Taux horaires (€/h)
|
||||
T456 float64 `json:"t456"` // Interventions jour hors dimanche/férié
|
||||
T458 float64 `json:"t458"` // Interventions dimanche/jour férié
|
||||
T459 float64 `json:"t459"` // Interventions nuit hors dimanche/férié
|
||||
T471 float64 `json:"t471"` // Astreinte: heures totales du mois
|
||||
}
|
||||
|
||||
// ProfileListItem = ce qu'on expose à l'UI (id + label + matricule pour auto-match)
|
||||
type ProfileListItem struct {
|
||||
ID string `json:"id"`
|
||||
Label string `json:"label"`
|
||||
Matricule string `json:"matricule,omitempty"`
|
||||
}
|
||||
|
||||
// CalculateRequest = saisies mensuelles par l'utilisateur.
|
||||
type CalculateRequest struct {
|
||||
ProfileID string `json:"profileId"`
|
||||
|
||||
// Quantités en heures
|
||||
Q456 float64 `json:"q456"` // heures interventions jour hors dim/férié
|
||||
Q458 float64 `json:"q458"` // heures interventions dimanche/férié
|
||||
Q459 float64 `json:"q459"` // heures interventions nuit hors dim/férié
|
||||
Q471 float64 `json:"q471"` // heures totales astreinte du mois
|
||||
|
||||
// ✅ Nombre de dimanches / jours fériés "au forfait" (auto-rempli à l'import, modifiable)
|
||||
NbDimFerie int `json:"nbDimFerie"`
|
||||
}
|
||||
|
||||
// Line = une ligne de la grille (456/458/459/471/480).
|
||||
type Line struct {
|
||||
Code string `json:"code"`
|
||||
Label string `json:"label"`
|
||||
Rate float64 `json:"rate"`
|
||||
Quantity float64 `json:"quantity"`
|
||||
Amount float64 `json:"amount"`
|
||||
Unit string `json:"unit"` // "h" ou "j"
|
||||
}
|
||||
|
||||
// CalculateResponse = résultat du calcul (lignes + total)
|
||||
type CalculateResponse struct {
|
||||
Lines []Line `json:"lines"`
|
||||
Total float64 `json:"total"`
|
||||
}
|
||||
Reference in New Issue
Block a user