Set initial database schema

This commit is contained in:
2026-04-18 18:25:51 -04:00
parent 134a68f5ac
commit 13b920d911
12 changed files with 150 additions and 2 deletions

View File

@@ -0,0 +1,26 @@
package net.kpuig.concord.backend.datamodels;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import lombok.Data;
import net.kpuig.concord.backend.datamodels.enums.ChannelType;
@Data
@Entity(name = "channel")
public class Channel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Long position;
private ChannelType type;
private String name;
@ManyToOne
private Server server;
}

View File

@@ -0,0 +1,26 @@
package net.kpuig.concord.backend.datamodels;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import lombok.Data;
@Data
@Entity(name = "message")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String content;
private Long timestamp;
@ManyToOne
private UserProfile userProfile;
@ManyToOne
private Channel channel;
}

View File

@@ -0,0 +1,21 @@
package net.kpuig.concord.backend.datamodels;
import java.net.URL;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Data;
@Data
@Entity(name = "server")
public class Server {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private URL image;
}

View File

@@ -0,0 +1,17 @@
package net.kpuig.concord.backend.datamodels;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Data;
@Data
@Entity(name = "user_profile")
public class UserProfile {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String username;
}

View File

@@ -0,0 +1,6 @@
package net.kpuig.concord.backend.datamodels.enums;
public enum ChannelType {
TEXT_CHANNEL,
VOICE_CHANNEL
}

View File

@@ -0,0 +1,9 @@
package net.kpuig.concord.backend.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import net.kpuig.concord.backend.datamodels.Channel;
public interface ChannelRepository extends JpaRepository<Channel, Long> {
}

View File

@@ -0,0 +1,9 @@
package net.kpuig.concord.backend.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import net.kpuig.concord.backend.datamodels.Message;
public interface MessageRepository extends JpaRepository<Message, Long> {
}

View File

@@ -0,0 +1,9 @@
package net.kpuig.concord.backend.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import net.kpuig.concord.backend.datamodels.Server;
public interface ServerRepository extends JpaRepository<Server, Long> {
}

View File

@@ -0,0 +1,9 @@
package net.kpuig.concord.backend.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import net.kpuig.concord.backend.datamodels.UserProfile;
public interface UserProfileRepository extends JpaRepository<UserProfile, Long> {
}

View File

@@ -1 +1,11 @@
spring.application.name=backend
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
server.port=8080