package models import ( "time" ) type CA struct { ID string `json:"id" bson:"_id"` Name string `json:"name" bson:"name"` CommonName string `json:"common_name" bson:"common_name"` Organization string `json:"organization" bson:"organization"` Country string `json:"country" bson:"country"` Province string `json:"province" bson:"province"` Locality string `json:"locality" bson:"locality"` Email string `json:"email" bson:"email"` PrivateKey string `json:"private_key,omitempty" bson:"private_key"` Certificate string `json:"certificate" bson:"certificate"` SerialNumber string `json:"serial_number" bson:"serial_number"` ValidFrom time.Time `json:"valid_from" bson:"valid_from"` ValidTo time.Time `json:"valid_to" bson:"valid_to"` IsRoot bool `json:"is_root" bson:"is_root"` CreatedAt time.Time `json:"created_at" bson:"created_at"` UpdatedAt time.Time `json:"updated_at" bson:"updated_at"` } type CreateCARequest struct { Name string `json:"name" binding:"required"` CommonName string `json:"common_name" binding:"required"` Organization string `json:"organization" binding:"required"` Country string `json:"country" binding:"required"` Province string `json:"province"` Locality string `json:"locality"` Email string `json:"email" binding:"omitempty,email"` // omitempty permet les chaƮnes vides KeySize int `json:"key_size" binding:"required,min=2048"` ValidYears int `json:"valid_years" binding:"required,min=1,max=20"` IsRoot bool `json:"is_root"` } type UpdateCARequest struct { Name string `json:"name"` Organization string `json:"organization"` Email string `json:"email"` }