package com.hitcommunications.servermanager.model; import java.sql.Timestamp; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import com.hitcommunications.servermanager.model.enums.Applications; import com.hitcommunications.servermanager.model.enums.DatabaseType; import com.hitcommunications.servermanager.model.enums.ServersType; import com.hitcommunications.servermanager.utils.ServerIdGenerator; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import jakarta.persistence.Id; import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Entity @Table(name = "tab_servers") @AllArgsConstructor @NoArgsConstructor @Getter @Setter @Builder public class Servers { @Id @ServerIdGenerator @Column(nullable = false, unique = true) private String id; @Column(nullable = false) private String name; @Column(nullable = false, columnDefinition = "VARCHAR(45)") private String ip; @Column(nullable = false) private Integer port; @Column(nullable = false, name = "username") private String user; @Column(nullable = false) private String password; @Column(nullable = false) @Enumerated(EnumType.STRING) private ServersType type; @Column(nullable = false) @Enumerated(EnumType.STRING) private Applications application; @Column(nullable = false) @Enumerated(EnumType.STRING) private DatabaseType dbType; @CreationTimestamp private Timestamp createdAt; @UpdateTimestamp private Timestamp updatedAt; }