Skip to content
Extraits de code Groupes Projets
Valider 2d830ada rédigé par Mohamed Lemine BAILLAHI's avatar Mohamed Lemine BAILLAHI
Parcourir les fichiers

Merge branch 'feature/EDL-259' into 'develop'

Resolve EDL-259 "Feature/"

Closes EDL-259

See merge request !5
parents 12d607b4 bfad7e3e
Branches
Étiquettes
1 requête de fusion!5Resolve EDL-259 "Feature/"
Pipeline #18042 réussi avec les étapes
in 2 minutes et 48 secondes
Affichage de
avec 294 ajouts et 1 suppression
## [0.0.5-RELEASE]
### Added
-Adding models & enums for Forms.
### Changed
- Using English names for enums.
### Added
- New features that have been added.
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.marketingconfort</groupId>
......
package com.marketingconfort.checkandgo_common.Form.enums;
public enum CompanyEnum {
ADANEV
}
\ No newline at end of file
package com.marketingconfort.checkandgo_common.Form.enums;
public enum FieldType {
TEXT,
NUMBER,
NUMBERINCREMENT,
DATE,
DROPDOWN,
CHECKBOX,
FILE,
EMAIL,
NUMBER_INCREMENT,
TEXTAREA,
DOCUSIGN_SIGNATURE
}
package com.marketingconfort.checkandgo_common.Form.enums;
public enum FormCategory {
Vehicle,
UtilityWithPhone,
Utility,
UtilityWithoutPhone,
}
package com.marketingconfort.checkandgo_common.Form.enums;
public enum FormType {
SimpleInspection,
ReturnComparison,
}
package com.marketingconfort.checkandgo_common.Form.enums;
public enum SignatureStatusEnum {
SIGNED,
NOT_SIGNED,
PENDING,
}
\ No newline at end of file
package com.marketingconfort.checkandgo_common.Form.models;
import com.marketingconfort.checkandgo_common.Form.enums.CompanyEnum;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
@Entity
@Getter
@Setter
public class DefaultCompanySection extends Section {
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private CompanyEnum companyId = CompanyEnum.ADANEV; // Default to Adanev
}
\ No newline at end of file
package com.marketingconfort.checkandgo_common.Form.models;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import lombok.Getter;
import lombok.Setter;
@Entity
@Getter
@Setter
public class DefaultDriverSection extends Section {
@Column(nullable = false)
private String driverId; // Reference to the Driver entity by ID
}
\ No newline at end of file
package com.marketingconfort.checkandgo_common.Form.models;
import jakarta.validation.constraints.NotBlank;
import jakarta.persistence.*;
import com.marketingconfort.checkandgo_common.Form.enums.FieldType;
import com.marketingconfort.checkandgo_common.User.models.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Entity
@Table(name = "fields")
@Getter
@Setter
public class Field extends BaseEntity {
@NotBlank
@Column(nullable = false, length = 100)
private String label;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private FieldType type = FieldType.TEXT;
@Column(nullable = false)
private boolean isMandatory = false;
private String defaultValue;
@ElementCollection
@CollectionTable(name = "field_options", joinColumns = @JoinColumn(name = "field_id"))
@Column(name = "option_value")
private List<String> options;
private String signerRole;
@OneToOne(mappedBy = "field", cascade = CascadeType.ALL, orphanRemoval = true)
private ValidationRules validationRules;
@ElementCollection
@CollectionTable(name = "linked_image_fields", joinColumns = @JoinColumn(name = "field_id"))
@Column(name = "linked_image_field_id")
private List<String> linkedImageFields;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "section_id")
private Section section;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "subsection_id")
private Subsection subsection;
}
\ No newline at end of file
package com.marketingconfort.checkandgo_common.Form.models;
import jakarta.persistence.*;
import com.marketingconfort.checkandgo_common.User.models.BaseEntity;
import com.marketingconfort.checkandgo_common.Form.enums.FormCategory;
import com.marketingconfort.checkandgo_common.Form.enums.FormType;
import java.util.Date;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
@Entity
@Table(name = "forms")
@Getter
@Setter
public class Form extends BaseEntity {
@Column(nullable = false, length = 100)
private String name;
@Column(length = 500)
private String description;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private FormCategory category; // Enum
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private FormType type; // Enum
@OneToMany(mappedBy = "form", cascade = CascadeType.ALL, orphanRemoval = true)
@OrderBy("order ASC") // Pour ordonner les sections
private List<Section> sections;
}
package com.marketingconfort.checkandgo_common.Form.models;
import com.marketingconfort.checkandgo_common.User.models.BaseEntity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "section_type")
@Table(name = "sections")
@Getter
@Setter
public class Section extends BaseEntity {
@Column(nullable = false, length = 100)
private String name;
@Column(nullable = false)
private Integer order;
@OneToMany(mappedBy = "section", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Field> fields = new ArrayList<>();
@OneToMany(mappedBy = "parentSection", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Subsection> subsections = new ArrayList<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "form_id")
private Form form;
}
package com.marketingconfort.checkandgo_common.Form.models;
import com.marketingconfort.checkandgo_common.Form.enums.SignatureStatusEnum;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
@Entity
@Getter
@Setter
public class SignatureSection extends Section {
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private SignatureStatusEnum status; // Default to UNASSIGNED
@Column(nullable = false)
private String timestamp;
}
\ No newline at end of file
package com.marketingconfort.checkandgo_common.Form.models;
import com.marketingconfort.checkandgo_common.User.models.BaseEntity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "subsections")
@Setter
@Getter
public class Subsection extends BaseEntity{
@Column(nullable = false, length = 100)
private String name;
@Column(nullable = false)
private Integer order;
@OneToMany(mappedBy = "subsection", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Field> fields = new ArrayList<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "section_id")
private Section parentSection;
}
package com.marketingconfort.checkandgo_common.Form.models;
import jakarta.persistence.*;
import com.marketingconfort.checkandgo_common.Form.enums.FieldType;
import com.marketingconfort.checkandgo_common.User.models.BaseEntity;
import lombok.Getter;
import lombok.Setter;
@Entity
@Table(name = "validation_rules")
@Getter
@Setter
public class ValidationRules extends BaseEntity {
@Column(nullable = false)
private boolean required;
private Integer minLength; // Optional for text fields
private Integer maxLength; // Optional for text fields
private Integer min; // Optional for number fields
private Integer max; // Optional for number fields
private String pattern; // Optional for text fields
private Integer maxFiles; // Optional for file fields
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private FieldType applicableFieldType; // Specifies the field type these rules apply to
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "field_id", nullable = false)
private Field field;
}
\ No newline at end of file
0% ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter