55 lines
1.6 KiB
Go
55 lines
1.6 KiB
Go
package models
|
|
|
|
import "github.com/golang-jwt/jwt/v5"
|
|
|
|
type ClientClaims struct {
|
|
ClientID int `json:"client_id"`
|
|
Username string `json:"username"`
|
|
Role string `json:"role"`
|
|
SessionID string `json:"session_id"`
|
|
jwt.RegisteredClaims
|
|
}
|
|
|
|
type AdminClaims struct {
|
|
UserID int `json:"user_id"`
|
|
Username string `json:"username"`
|
|
Role string `json:"role"`
|
|
SessionID string `json:"session_id"`
|
|
jwt.RegisteredClaims
|
|
}
|
|
|
|
// ============================================
|
|
// STRUCTURES REQUÊTE / RÉPONSE
|
|
// ============================================
|
|
|
|
type LoginRequest struct {
|
|
Username string `json:"username" binding:"required"`
|
|
Password string `json:"password" binding:"required"`
|
|
}
|
|
|
|
type RegisterClientRequest struct {
|
|
Username string `json:"username" binding:"required,min=3,max=50"`
|
|
Password string `json:"password" binding:"required,min=8"`
|
|
Nom string `json:"nom" binding:"required,min=2,max=100"`
|
|
Prenom string `json:"prenom" binding:"required,min=2,max=100"`
|
|
Telephone string `json:"telephone" binding:"required"`
|
|
}
|
|
|
|
type RegisterAdminRequest struct {
|
|
Username string `json:"username" binding:"required,min=3,max=50"`
|
|
Password string `json:"password" binding:"required,min=8"`
|
|
Role string `json:"role" binding:"required,oneof=admin cabine livreur"`
|
|
}
|
|
|
|
type LoginResponse struct {
|
|
AccessToken string `json:"access_token"`
|
|
TokenType string `json:"token_type"`
|
|
ExpiresIn int `json:"expires_in"`
|
|
User any `json:"user"`
|
|
}
|
|
|
|
type ProfileResponse struct {
|
|
Username string `json:"username"`
|
|
Role string `json:"role"`
|
|
}
|