Remove SourceProvider to remove redundant complexity
This commit is contained in:
@ -1,47 +0,0 @@
|
||||
package com.bivashy.backend.composer.model;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
|
||||
@Entity
|
||||
@Table(name = "source_provider")
|
||||
public class SourceProvider {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(nullable = false, length = 500)
|
||||
private String name;
|
||||
|
||||
@OneToMany(mappedBy = "provider", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private Set<SourceType> sourceTypes = new HashSet<>();
|
||||
|
||||
SourceProvider() {
|
||||
}
|
||||
|
||||
public SourceProvider(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Set<SourceType> getSourceTypes() {
|
||||
return sourceTypes;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
package com.bivashy.backend.composer.model;
|
||||
|
||||
public class SourceProviders {
|
||||
public static final String YOUTUBE = "YOUTUBE";
|
||||
public static final String LOCAL = "SOUNDCLOUD";
|
||||
public static final String EXTERNAL = "EXTERNAL";
|
||||
|
||||
}
|
||||
@ -6,12 +6,9 @@ import java.util.Set;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
|
||||
@ -22,10 +19,6 @@ public class SourceType {
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "provider_id", nullable = false)
|
||||
private SourceProvider provider;
|
||||
|
||||
@Column(nullable = false, length = 500)
|
||||
private String name;
|
||||
|
||||
@ -43,10 +36,6 @@ public class SourceType {
|
||||
return id;
|
||||
}
|
||||
|
||||
public SourceProvider getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -55,6 +55,8 @@ public class TrackService {
|
||||
String artist = metadata.map(Metadata::artist).orElse(null);
|
||||
int durationSeconds = metadata.map(Metadata::durationSeconds).map(Float::intValue).orElse(0);
|
||||
// TODO: thumbnail
|
||||
// TODO: Recognize music if the duration is less than five minutes
|
||||
// (configurable), and if not, it is a playlist and should be marked as is
|
||||
trackMetadataService.createTrackMetadata(
|
||||
track, title, fileName, trackSource.getSourceUrl(), artist, null, durationSeconds);
|
||||
|
||||
|
||||
@ -5,17 +5,9 @@ CREATE TABLE IF NOT EXISTS "users" (
|
||||
"updated_at" timestamp NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "source_provider" (
|
||||
"id" bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||
"name" varchar(500) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "source_type" (
|
||||
"id" bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||||
"provider_id" bigint NOT NULL,
|
||||
"name" varchar(500) NOT NULL,
|
||||
CONSTRAINT "fk_source_type_provider_id"
|
||||
FOREIGN KEY ("provider_id") REFERENCES "source_provider" ("id")
|
||||
"name" varchar(500) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "track_source" (
|
||||
|
||||
@ -1,17 +1,9 @@
|
||||
INSERT INTO "source_provider" ("id", "name")
|
||||
INSERT INTO "source_type" ("id", "name")
|
||||
OVERRIDING SYSTEM VALUE
|
||||
VALUES
|
||||
(1, 'YOUTUBE'),
|
||||
(2, 'LOCAL'),
|
||||
(3, 'EXTERNAL')
|
||||
ON CONFLICT ("id") DO NOTHING;
|
||||
|
||||
INSERT INTO "source_type" ("id", "provider_id", "name")
|
||||
OVERRIDING SYSTEM VALUE
|
||||
VALUES
|
||||
(1, 1, 'VIDEO'),
|
||||
(2, 1, 'PLAYLIST'),
|
||||
(3, 2, 'FILE'),
|
||||
(4, 3, 'URL')
|
||||
(1, 'VIDEO'),
|
||||
(2, 'PLAYLIST'),
|
||||
(3, 'FILE'),
|
||||
(4, 'URL')
|
||||
ON CONFLICT ("id") DO NOTHING;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user