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:
115
src/main/java/dev/lions/quote/QuoteModule.java
Normal file
115
src/main/java/dev/lions/quote/QuoteModule.java
Normal 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; }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user