add person business object at db level
This commit is contained in:
@ -1,7 +1,9 @@
|
||||
package net.hostsharing.hsadminng.hs.admin.person;
|
||||
|
||||
import com.vladmihalcea.hibernate.type.array.ListArrayType;
|
||||
import com.vladmihalcea.hibernate.type.basic.PostgreSQLEnumType;
|
||||
import lombok.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.hibernate.annotations.Type;
|
||||
import org.hibernate.annotations.TypeDef;
|
||||
|
||||
import javax.persistence.*;
|
||||
@ -10,8 +12,8 @@ import java.util.UUID;
|
||||
@Entity
|
||||
@Table(name = "hs_admin_person_rv")
|
||||
@TypeDef(
|
||||
name = "list-array",
|
||||
typeClass = ListArrayType.class
|
||||
name = "pgsql_enum",
|
||||
typeClass = PostgreSQLEnumType.class
|
||||
)
|
||||
@Getter
|
||||
@Setter
|
||||
@ -22,9 +24,12 @@ public class HsAdminPersonEntity {
|
||||
|
||||
private @Id UUID uuid;
|
||||
|
||||
@Column(name = "persontype")
|
||||
@Enumerated(EnumType.STRING)
|
||||
private PersonType type;
|
||||
@Type( type = "pgsql_enum" )
|
||||
private HsAdminPersonType personType;
|
||||
|
||||
@Column(name = "tradename")
|
||||
private String tradeName;
|
||||
|
||||
@Column(name = "givenname")
|
||||
@ -33,10 +38,7 @@ public class HsAdminPersonEntity {
|
||||
@Column(name = "familyname")
|
||||
private String familyName;
|
||||
|
||||
public enum PersonType {
|
||||
NATURAL,
|
||||
LEGAL,
|
||||
SOLE_REPRESENTATION,
|
||||
JOINT_REPRESENTATION
|
||||
public String getDisplayName() {
|
||||
return !StringUtils.isEmpty(tradeName) ? tradeName : (familyName + ", " + givenName);
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import java.util.UUID;
|
||||
|
||||
public interface HsAdminPersonRepository extends Repository<HsAdminPersonEntity, UUID> {
|
||||
|
||||
Optional<HsAdminPersonEntity> findByUuid(UUID id);
|
||||
Optional<HsAdminPersonEntity> findByUuid(UUID personUuid);
|
||||
|
||||
@Query("""
|
||||
SELECT p FROM HsAdminPersonEntity p
|
||||
@ -22,5 +22,7 @@ public interface HsAdminPersonRepository extends Repository<HsAdminPersonEntity,
|
||||
|
||||
HsAdminPersonEntity save(final HsAdminPersonEntity entity);
|
||||
|
||||
void deleteByUuid(final UUID personUuid);
|
||||
|
||||
long count();
|
||||
}
|
||||
|
@ -0,0 +1,8 @@
|
||||
package net.hostsharing.hsadminng.hs.admin.person;
|
||||
|
||||
public enum HsAdminPersonType {
|
||||
NATURAL,
|
||||
LEGAL,
|
||||
SOLE_REPRESENTATION,
|
||||
JOINT_REPRESENTATION
|
||||
}
|
Reference in New Issue
Block a user