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

View File

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

View File

@ -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" (

View File

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