blob: 2dab10f10daac48d61f5c281326e73cf3fcbf074 [file] [log] [blame]
package pl.hackerspace.domain;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Set;
@Entity
@Table(name = "client")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Client {
@Id
private String nip;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String email;
private String addressLine1;
private String addressLine2;
@Column(nullable = false)
private String serviceName;
@Column(nullable = false)
private BigDecimal price;
@Builder.Default
@Column(nullable = false)
private BigDecimal amount = BigDecimal.valueOf(1);
@Builder.Default
@Column(nullable = false)
private BigDecimal vat = BigDecimal.valueOf(23);
@Builder.Default
@Column(nullable = false)
private int paymentOffsetDays = 14;
@Builder.Default
private boolean subscriber = true;
private boolean prepaid;
@OneToMany(mappedBy="client")
Set<Invoice> invoices;
public byte[] getInvoiceForSubscriptionMonth(String monthOfInvoice) {
return invoices.stream()
.filter(i -> monthOfInvoice.equals(i.getMonthOfSubscription()))
.map(Invoice::getPdfContent)
.findFirst()
.orElse(null);
}
}