source: src/main/java/edu/gjoko/schedlr/entity/Service.java

Last change on this file was f29cd58, checked in by gjoko kostadinov <gjokokostadinov@…>, 6 months ago

Add services search functionality.

  • Property mode set to 100755
File size: 1.9 KB
RevLine 
[cf9cdbf]1package edu.gjoko.schedlr.entity;
2
[a436340]3import com.fasterxml.jackson.annotation.JsonBackReference;
[8bcd64c]4import com.fasterxml.jackson.annotation.JsonIgnore;
[77205be]5import com.fasterxml.jackson.annotation.JsonManagedReference;
[cf9cdbf]6import lombok.AllArgsConstructor;
7import lombok.Getter;
8import lombok.NoArgsConstructor;
9import lombok.Setter;
[204464d]10import org.springframework.data.annotation.CreatedDate;
11import org.springframework.data.annotation.LastModifiedDate;
12import org.springframework.data.jpa.domain.support.AuditingEntityListener;
[cf9cdbf]13
14import javax.persistence.*;
[204464d]15import java.time.LocalDateTime;
[77205be]16import java.util.List;
[cf9cdbf]17
18@Entity
[204464d]19@EntityListeners(AuditingEntityListener.class)
[cf9cdbf]20@Table(name = "service")
21@Getter
22@Setter
23@NoArgsConstructor
24@AllArgsConstructor
25public class Service {
26
27 @Id
28 @GeneratedValue(strategy = GenerationType.SEQUENCE)
29 private Long id;
30
31 @Column(name = "duration")
32 private Integer duration;
33
[8bcd64c]34 @Column(name = "price")
35 private Integer price;
36
[77205be]37 @Column(name = "cumulated_rating")
38 private Float rating = 0.0f;
39
40 @Column(name = "reviews_count")
41 private Integer reviewsCount = 0;
42
43 @OneToOne(cascade = CascadeType.MERGE)
[a436340]44 @JoinColumn(name = "service_type_id", referencedColumnName = "id")
45 private ServiceType serviceType;
46
[cf9cdbf]47 @ManyToOne
[950fa0d]48 @JoinColumn(name = "business_id")
[77205be]49 @JsonBackReference(value = "services")
[cf9cdbf]50 private Business business;
[204464d]51
[f29cd58]52 @Column(name = "description")
53 private String description;
54
[77205be]55 @OneToMany(mappedBy="service")
56 @JsonManagedReference(value = "serviceAppointments")
57 private List<Appointment> appointments;
58
[1413ee2]59 @Column(name = "service_status")
60 @Enumerated(EnumType.STRING)
[53765dd]61 private ServiceStatus serviceStatus = ServiceStatus.ACTIVE;
[1413ee2]62
[204464d]63 @Column(name = "created")
64 @CreatedDate
[8bcd64c]65 @JsonIgnore
[204464d]66 private LocalDateTime created;
67
68 @Column(name = "modified")
69 @LastModifiedDate
[8bcd64c]70 @JsonIgnore
[204464d]71 private LocalDateTime modified;
[cf9cdbf]72}
Note: See TracBrowser for help on using the repository browser.