chore(quarkus-327): bump to Quarkus 3.27.3 LTS, rename quarkus-resteasy-reactive → quarkus-rest, fix testGetAuditQuestions map vs list, rename deprecated config keys

This commit is contained in:
2026-04-23 14:47:47 +00:00
committed by dahoud
parent 106e8f7c88
commit 9a41b4ca17
127 changed files with 17488 additions and 9557 deletions

View File

@@ -0,0 +1,115 @@
package dev.lions.quote;
import jakarta.persistence.*;
/**
* Module/ligne d'un devis
*/
@Entity
@Table(name = "quote_modules")
public class QuoteModule {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "quote_id", nullable = false)
private Quote quote;
@Column(nullable = false)
private String moduleCode; // CRM, STOCK, COMPTA, RH, INFRA
@Column(nullable = false)
private String moduleName;
@Column(length = 1000)
private String description;
@Column(nullable = false)
private Double unitPrice; // Prix unitaire HT
@Column(nullable = false)
private Integer quantity = 1;
private String unit = "licence"; // licence, heure, mois, etc.
// Détails techniques
@Column(length = 2000)
private String technicalSpecs;
@Column(length = 1000)
private String deliverables;
private Integer implementationDays; // Jours d'implémentation
// Niveau de complexité basé sur l'audit
@Enumerated(EnumType.STRING)
private ComplexityLevel complexity = ComplexityLevel.STANDARD;
// Constructeurs
public QuoteModule() {}
public QuoteModule(String moduleCode, String moduleName, Double unitPrice) {
this.moduleCode = moduleCode;
this.moduleName = moduleName;
this.unitPrice = unitPrice;
}
// Méthodes métier
public Double getTotalPrice() {
return unitPrice * quantity;
}
public Double getComplexityMultiplier() {
return switch (complexity) {
case BASIC -> 0.8;
case STANDARD -> 1.0;
case ADVANCED -> 1.3;
case ENTERPRISE -> 1.6;
};
}
public Double getAdjustedPrice() {
return unitPrice * getComplexityMultiplier();
}
// Getters et Setters
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public Quote getQuote() { return quote; }
public void setQuote(Quote quote) { this.quote = quote; }
public String getModuleCode() { return moduleCode; }
public void setModuleCode(String moduleCode) { this.moduleCode = moduleCode; }
public String getModuleName() { return moduleName; }
public void setModuleName(String moduleName) { this.moduleName = moduleName; }
public String getDescription() { return description; }
public void setDescription(String description) { this.description = description; }
public Double getUnitPrice() { return unitPrice; }
public void setUnitPrice(Double unitPrice) { this.unitPrice = unitPrice; }
public Integer getQuantity() { return quantity; }
public void setQuantity(Integer quantity) { this.quantity = quantity; }
public String getUnit() { return unit; }
public void setUnit(String unit) { this.unit = unit; }
public String getTechnicalSpecs() { return technicalSpecs; }
public void setTechnicalSpecs(String technicalSpecs) { this.technicalSpecs = technicalSpecs; }
public String getDeliverables() { return deliverables; }
public void setDeliverables(String deliverables) { this.deliverables = deliverables; }
public Integer getImplementationDays() { return implementationDays; }
public void setImplementationDays(Integer implementationDays) { this.implementationDays = implementationDays; }
public ComplexityLevel getComplexity() { return complexity; }
public void setComplexity(ComplexityLevel complexity) { this.complexity = complexity; }
}