Skip to content

Commit

Permalink
add persistance entities for findings, seller, highlights
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmitriusan committed Nov 13, 2023
1 parent db9e2dd commit 49e530f
Show file tree
Hide file tree
Showing 44 changed files with 670 additions and 140 deletions.
10 changes: 10 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/jpa-buddy.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/modules/Hawk.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions .idea/modules/Hawk.main.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 21 additions & 15 deletions hawk/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import java.net.URL

plugins {
java
id("org.springframework.boot") version "3.1.4"
id("org.springframework.boot") version "3.1.5"
id("io.spring.dependency-management") version "1.1.3"
// Depedencies for Ebay hawk
id ("org.openapi.generator") version "7.0.1"
Expand Down Expand Up @@ -30,42 +30,48 @@ repositories {
mavenCentral()
}

extra["springBootAdminVersion"] = "3.1.5"
extra["jacksonVersion"] = "2.15.3"
extra["swaggerVersion"] = "2.2.16"
extra["springBootAdminVersion"] = "3.1.7"

dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-logging")
annotationProcessor("org.projectlombok:lombok")
testImplementation("org.assertj:assertj-core:3.24.2")




implementation("de.codecentric:spring-boot-admin-starter-server")
implementation("io.micrometer:micrometer-tracing-bridge-brave")
implementation("io.zipkin.reporter2:zipkin-reporter-brave")
implementation("org.liquibase:liquibase-core")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("org.postgresql:postgresql")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")

// DB dependencies
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("io.hypersistence:hypersistence-utils-hibernate-62:3.6.1")

developmentOnly("org.springframework.boot:spring-boot-devtools")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
testImplementation("org.assertj:assertj-core:3.24.2")

implementation("org.liquibase:liquibase-core")
runtimeOnly("org.postgresql:postgresql")
implementation("org.projectlombok:lombok:1.18.30")
annotationProcessor("org.projectlombok:lombok")

implementation("org.mapstruct:mapstruct:1.5.5.Final")
// Mapstruct Processor (Annotation Processor)
annotationProcessor("org.mapstruct:mapstruct-processor:1.5.5.Final")
annotationProcessor("org.projectlombok:lombok-mapstruct-binding:0.2.0")

// Ebay hawk dependencies
// OpenAPI client dependencies
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.3")
implementation("com.fasterxml.jackson.core:jackson-databind:${property("jacksonVersion")}")
implementation("com.fasterxml.jackson.module:jackson-modules-java8:${property("jacksonVersion")}")

implementation("io.swagger.core.v3:swagger-annotations:${property("swaggerVersion")}")
implementation("io.swagger.core.v3:swagger-models:${property("swaggerVersion")}")
implementation("org.openapitools:jackson-databind-nullable:0.2.6")
implementation("io.swagger.core.v3:swagger-annotations:2.2.16")
implementation("io.swagger.core.v3:swagger-models:2.2.16")
implementation("com.ebay.auth:ebay-oauth-java-client:1.1.8")
implementation("org.jgrapht:jgrapht-core:1.5.2")
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.irw.hawk;

import io.irw.hawk.scraper.service.HawkFlightService;
import io.irw.hawk.scraper.service.ScraperService;
import io.irw.hawk.scraper.service.domain.HawkFlightService;
import io.irw.hawk.scraper.service.scrape.ScraperService;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
Expand Down
31 changes: 31 additions & 0 deletions hawk/src/main/java/io/irw/hawk/dto/ebay/EbayFindingDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package io.irw.hawk.dto.ebay;

import java.math.BigDecimal;
import java.time.Instant;
import lombok.Builder;
import lombok.Value;

/**
* DTO for {@link io.irw.hawk.entity.EbayFinding}
*/
@Value
@Builder
public class EbayFindingDto {

Long id;
String ebayIdStr;
String legacyEbayIdStr;
String itemTitle;
String itemDescription;
BigDecimal currentAuctionPriceUsd;
BigDecimal finalPriceUsd;
BigDecimal minShippingUsd;
BigDecimal buyItNowPriceUsd;
int bidCount;
Instant capturedAt;
Instant endsOn;
EbayListingTypeEnum listingType;
EbayListingStatusEnum listingStatusEnum;
EbaySellerDto seller;

}
11 changes: 11 additions & 0 deletions hawk/src/main/java/io/irw/hawk/dto/ebay/EbayListingStatusEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.irw.hawk.dto.ebay;

public enum EbayListingStatusEnum {

ACTIVE,
BOUGHT_THROUGH_AUCTION,
BOUGHT_THROUGH_BUY_IT_NOW,
CANCELLED,


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package io.irw.hawk.dto.ebay;

public enum EbayListingTypeEnum {

AUCTION,
BUY_IT_NOW

}
22 changes: 22 additions & 0 deletions hawk/src/main/java/io/irw/hawk/dto/ebay/EbaySellerDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package io.irw.hawk.dto.ebay;

import java.io.Serializable;
import java.time.Instant;
import java.util.Date;
import lombok.Builder;
import lombok.Value;

/**
* DTO for {@link io.irw.hawk.entity.EbayFinding}
*/
@Value
@Builder
public class EbaySellerDto implements Serializable {

Long id;
String ebayIdStr;
Instant registeredOn;
float reputationPercentage;
int feedbackScore;

}
15 changes: 0 additions & 15 deletions hawk/src/main/java/io/irw/hawk/dto/ebay/SeenItemDto.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,14 @@
public class HawkFlightDto implements Serializable {

Long id;
HawkFlightStateEnum state;
HawkFlightStatusEnum status;
Instant startedAt;
Instant endedAt;

@Getter
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public enum HawkFlightStateEnum {
IN_PROGRESS(0), FAILED(1), ENDED(2);

int id;
public enum HawkFlightStatusEnum {
IN_PROGRESS, FAILED, ENDED;
}
}
25 changes: 0 additions & 25 deletions hawk/src/main/java/io/irw/hawk/dto/merchandise/ItemDto.java

This file was deleted.

50 changes: 50 additions & 0 deletions hawk/src/main/java/io/irw/hawk/entity/EbayFinding.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
package io.irw.hawk.entity;

import io.irw.hawk.dto.ebay.EbayListingStatusEnum;
import io.irw.hawk.dto.ebay.EbayListingTypeEnum;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import java.math.BigDecimal;
import java.time.Instant;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
Expand All @@ -33,7 +39,51 @@ public class EbayFinding {
generator = "ebay_finding_seq")
Long id;

@Column(name = "ebay_id_str", nullable = false, unique = true)
@EqualsAndHashCode.Include
private String ebayIdStr;

@Column(name = "legacy_ebay_id_str")
@EqualsAndHashCode.Include
private String legacyEbayIdStr;

@Column(name = "item_title", nullable = false)
private String itemTitle;

@Column(name = "item_description")
private String itemDescription;

@Column(name = "current_auction_price_usd")
private BigDecimal currentAuctionPriceUsd;

@Column(name = "final_price_usd")
private BigDecimal finalPriceUsd;

@Column(name = "min_shipping_usd")
private BigDecimal minShippingUsd;

@Column(name = "buy_it_now_price_usd")
private BigDecimal buyItNowPriceUsd;

@Column(name = "bid_count")
private int bidCount;

@Column(name = "captured_at", nullable = false)
private Instant capturedAt;

@Column(name = "ends_on", nullable = false)
private Instant endsOn;

@Enumerated(EnumType.STRING)
@Column(name = "listing_type", nullable = false, columnDefinition = "ebay_listing_type")
private EbayListingTypeEnum listingType;

@Enumerated(EnumType.STRING)
@Column(name = "listing_status", nullable = false, columnDefinition = "ebay_listing_status")
private EbayListingStatusEnum listingStatusEnum;

@ManyToOne
@JoinColumn(name = "seller_id")
private EbaySeller seller;

}

0 comments on commit 49e530f

Please sign in to comment.