Skip to content

Commit 6428b74

Browse files
committed
Merge remote-tracking branch 'origin/product' into product
2 parents 57070c0 + 4407b4f commit 6428b74

6 files changed

Lines changed: 68 additions & 5 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package cat.udl.eps.softarch.demo.domain;
2+
3+
import com.fasterxml.jackson.annotation.JsonIdentityReference;
4+
import jakarta.persistence.*;
5+
import jakarta.validation.constraints.NotNull;
6+
import lombok.Data;
7+
import lombok.EqualsAndHashCode;
8+
9+
import java.time.ZonedDateTime;
10+
11+
@Entity
12+
@Data
13+
@EqualsAndHashCode(callSuper = true)
14+
public class Basket extends UriEntity<Long> {
15+
16+
@Id
17+
@GeneratedValue(strategy = GenerationType.IDENTITY)
18+
private Long id;
19+
20+
@NotNull
21+
@OneToOne
22+
@JsonIdentityReference(alwaysAsId = true)
23+
private Customer customer;
24+
25+
@Column(nullable = false, updatable = false)
26+
private ZonedDateTime createdAt;
27+
28+
@Column(nullable = false)
29+
private ZonedDateTime updatedAt;
30+
31+
@PrePersist
32+
protected void onCreate() {
33+
ZonedDateTime now = ZonedDateTime.now();
34+
this.createdAt = now;
35+
this.updatedAt = now;
36+
}
37+
38+
@PreUpdate
39+
protected void onUpdate() {
40+
this.updatedAt = ZonedDateTime.now();
41+
}
42+
}

src/main/java/cat/udl/eps/softarch/demo/domain/Business.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
44
import com.fasterxml.jackson.annotation.JsonValue;
5+
import jakarta.persistence.CascadeType;
56
import jakarta.persistence.Entity;
7+
import jakarta.persistence.OneToMany;
68
import jakarta.validation.constraints.NotEmpty;
79
import lombok.Data;
810
import lombok.EqualsAndHashCode;
911
import org.springframework.security.core.GrantedAuthority;
1012
import org.springframework.security.core.authority.AuthorityUtils;
13+
import java.util.ArrayList;
1114

1215
import java.util.Collection;
16+
import java.util.List;
1317

1418
@Entity
1519
@Data
@@ -30,4 +34,7 @@ public class Business extends User {
3034
public Collection<? extends GrantedAuthority> getAuthorities() {
3135
return AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_BUSINESS");
3236
}
37+
38+
39+
3340
}

src/main/java/cat/udl/eps/softarch/demo/domain/Customer.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package cat.udl.eps.softarch.demo.domain;
22

3+
import com.fasterxml.jackson.annotation.JsonIdentityReference;
34
import com.fasterxml.jackson.annotation.JsonProperty;
45
import com.fasterxml.jackson.annotation.JsonValue;
6+
import jakarta.persistence.CascadeType;
57
import jakarta.persistence.Entity;
8+
import jakarta.persistence.OneToOne;
69
import jakarta.validation.constraints.NotEmpty;
710
import lombok.Data;
811
import lombok.EqualsAndHashCode;
@@ -22,17 +25,13 @@ public class Customer extends User {
2225
@NotEmpty
2326
private String phoneNumber;
2427

25-
2628
@Override
2729
@JsonValue(value = false)
2830
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
2931
public Collection<? extends GrantedAuthority> getAuthorities() {
3032
return AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_CUSTOMER");
3133
}
3234

33-
//TODO
34-
// @OneToOne
35-
// private Basket basket;
3635

3736
//TODO
3837
// @OneToMany(mappedBy = "products")

src/main/java/cat/udl/eps/softarch/demo/domain/Inventory.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,8 @@ public class Inventory extends UriEntity {
2626

2727
private int totalStock;
2828

29+
@ManyToOne
30+
private Business business;
31+
2932

3033
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package cat.udl.eps.softarch.demo.repository;
2+
3+
import java.util.Optional;
4+
import cat.udl.eps.softarch.demo.domain.Basket;
5+
import cat.udl.eps.softarch.demo.domain.Customer;
6+
import org.springframework.data.repository.CrudRepository;
7+
import org.springframework.data.repository.PagingAndSortingRepository;
8+
9+
public interface BasketRepository extends CrudRepository<Basket, Long>, PagingAndSortingRepository<Basket, Long> {
10+
11+
Optional<Basket> findByCustomer(Customer customer);
12+
}

src/main/java/cat/udl/eps/softarch/demo/repository/CustomerRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import java.util.List;
88

9-
public interface CustomerRepository extends CrudRepository<Customer, Long>, PagingAndSortingRepository<Customer, Long> {
9+
public interface CustomerRepository extends CrudRepository<Customer, String>, PagingAndSortingRepository<Customer, String> {
1010

1111
List<Customer> findByPhoneNumber(String phone);
1212
List<Customer> findByName(String name);

0 commit comments

Comments
 (0)