Remove SourceProvider to remove redundant complexity

This commit is contained in:
2026-01-02 21:45:27 +05:00
parent b6d88b1666
commit b6cd60a041
6 changed files with 8 additions and 88 deletions

View File

@ -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;
}
}

View File

@ -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";
}

View File

@ -6,12 +6,9 @@ import java.util.Set;
import jakarta.persistence.CascadeType; import jakarta.persistence.CascadeType;
import jakarta.persistence.Column; import jakarta.persistence.Column;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue; import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType; import jakarta.persistence.GenerationType;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany; import jakarta.persistence.OneToMany;
import jakarta.persistence.Table; import jakarta.persistence.Table;
@ -22,10 +19,6 @@ public class SourceType {
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "provider_id", nullable = false)
private SourceProvider provider;
@Column(nullable = false, length = 500) @Column(nullable = false, length = 500)
private String name; private String name;
@ -43,10 +36,6 @@ public class SourceType {
return id; return id;
} }
public SourceProvider getProvider() {
return provider;
}
public String getName() { public String getName() {
return name; return name;
} }

View File

@ -55,6 +55,8 @@ public class TrackService {
String artist = metadata.map(Metadata::artist).orElse(null); String artist = metadata.map(Metadata::artist).orElse(null);
int durationSeconds = metadata.map(Metadata::durationSeconds).map(Float::intValue).orElse(0); int durationSeconds = metadata.map(Metadata::durationSeconds).map(Float::intValue).orElse(0);
// TODO: thumbnail // 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( trackMetadataService.createTrackMetadata(
track, title, fileName, trackSource.getSourceUrl(), artist, null, durationSeconds); track, title, fileName, trackSource.getSourceUrl(), artist, null, durationSeconds);

View File

@ -5,17 +5,9 @@ CREATE TABLE IF NOT EXISTS "users" (
"updated_at" timestamp NOT NULL DEFAULT NOW() "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" ( CREATE TABLE IF NOT EXISTS "source_type" (
"id" bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, "id" bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
"provider_id" bigint NOT NULL, "name" varchar(500) NOT NULL
"name" varchar(500) NOT NULL,
CONSTRAINT "fk_source_type_provider_id"
FOREIGN KEY ("provider_id") REFERENCES "source_provider" ("id")
); );
CREATE TABLE IF NOT EXISTS "track_source" ( CREATE TABLE IF NOT EXISTS "track_source" (

View File

@ -1,17 +1,9 @@
INSERT INTO "source_provider" ("id", "name") INSERT INTO "source_type" ("id", "name")
OVERRIDING SYSTEM VALUE OVERRIDING SYSTEM VALUE
VALUES VALUES
(1, 'YOUTUBE'), (1, 'VIDEO'),
(2, 'LOCAL'), (2, 'PLAYLIST'),
(3, 'EXTERNAL') (3, 'FILE'),
ON CONFLICT ("id") DO NOTHING; (4, 'URL')
INSERT INTO "source_type" ("id", "provider_id", "name")
OVERRIDING SYSTEM VALUE
VALUES
(1, 1, 'VIDEO'),
(2, 1, 'PLAYLIST'),
(3, 2, 'FILE'),
(4, 3, 'URL')
ON CONFLICT ("id") DO NOTHING; ON CONFLICT ("id") DO NOTHING;