75 lines
1.7 KiB
Java
75 lines
1.7 KiB
Java
package dev.lions.models;
|
|
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.Entity;
|
|
import jakarta.persistence.EnumType;
|
|
import jakarta.persistence.Enumerated;
|
|
import jakarta.persistence.GeneratedValue;
|
|
import jakarta.persistence.GenerationType;
|
|
import jakarta.persistence.Id;
|
|
import jakarta.persistence.Table;
|
|
import jakarta.validation.constraints.NotNull;
|
|
import jakarta.validation.constraints.Size;
|
|
import java.time.LocalDateTime;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Builder;
|
|
import lombok.Getter;
|
|
import lombok.NoArgsConstructor;
|
|
import lombok.Setter;
|
|
|
|
@Entity
|
|
@Getter
|
|
@Setter
|
|
@Builder
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
@Table (name = "contacts")
|
|
public class Contact {
|
|
@Id
|
|
@GeneratedValue (strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
@NotNull
|
|
@Size (min = 2, max = 100)
|
|
private String name;
|
|
|
|
@NotNull
|
|
@jakarta.validation.constraints.Email
|
|
private String email;
|
|
|
|
@Size (max = 100)
|
|
private String company;
|
|
|
|
@Size (max = 20)
|
|
private String phone;
|
|
|
|
@NotNull
|
|
@Size (min = 3, max = 200)
|
|
private String subject;
|
|
|
|
@NotNull
|
|
@Column (columnDefinition = "TEXT")
|
|
private String message;
|
|
|
|
@NotNull
|
|
@Enumerated (EnumType.STRING)
|
|
private ContactStatus status;
|
|
|
|
@NotNull
|
|
private LocalDateTime submitDate;
|
|
|
|
private LocalDateTime processDate;
|
|
|
|
@Size (max = 500)
|
|
private String internalNotes;
|
|
|
|
public Contact(String name, String email, String subject, String message) {
|
|
this.name = name;
|
|
this.email = email;
|
|
this.subject = subject;
|
|
this.message = message;
|
|
this.status = ContactStatus.NEW;
|
|
this.submitDate = LocalDateTime.now();
|
|
}
|
|
}
|