Add ChannelAdmin and MessageReceipt classes and Update init.sql
This commit is contained in:
@@ -0,0 +1,136 @@
|
|||||||
|
package org.to.telegramfinalproject.Models;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ChannelAdmin {
|
||||||
|
private String channelId;
|
||||||
|
private UUID userId;
|
||||||
|
private LocalDateTime addedAt;
|
||||||
|
private UUID addedBy;
|
||||||
|
private String role; // e.g., "owner", "admin"
|
||||||
|
private boolean canPostMessage;
|
||||||
|
private boolean canEditSetting;
|
||||||
|
private boolean canDeleteMessages;
|
||||||
|
private boolean canDeleteMembers;
|
||||||
|
private boolean canAddMembers;
|
||||||
|
|
||||||
|
public ChannelAdmin(String channelId, UUID userId, LocalDateTime addedAt, UUID addedBy,
|
||||||
|
String role, boolean canPostMessage, boolean canEditSetting, boolean canDeleteMessages,
|
||||||
|
boolean canDeleteMembers, boolean canAddMembers) {
|
||||||
|
this.channelId = channelId;
|
||||||
|
this.userId = userId;
|
||||||
|
this.addedAt = addedAt;
|
||||||
|
this.addedBy = addedBy;
|
||||||
|
this.role = role;
|
||||||
|
this.canPostMessage = canPostMessage;
|
||||||
|
this.canEditSetting = canEditSetting;
|
||||||
|
this.canDeleteMessages = canDeleteMessages;
|
||||||
|
this.canDeleteMembers = canDeleteMembers;
|
||||||
|
this.canAddMembers = canAddMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overloaded constructor with default values from SQL
|
||||||
|
public ChannelAdmin(String channelId, UUID userId, UUID addedBy) {
|
||||||
|
this.channelId = channelId;
|
||||||
|
this.userId = userId;
|
||||||
|
this.addedBy = addedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getters and setters
|
||||||
|
public String getChannelId() {
|
||||||
|
return channelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannelId(String channelId) {
|
||||||
|
this.channelId = channelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(UUID userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getAddedAt() {
|
||||||
|
return addedAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddedAt(LocalDateTime addedAt) {
|
||||||
|
this.addedAt = addedAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getAddedBy() {
|
||||||
|
return addedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddedBy(UUID addedBy) {
|
||||||
|
this.addedBy = addedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRole() {
|
||||||
|
return role;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRole(String role) {
|
||||||
|
this.role = role;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getCanPostMessage() {
|
||||||
|
return canPostMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCanPostMessage(boolean canPostMessage) {
|
||||||
|
this.canPostMessage = canPostMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getCanEditSetting() {
|
||||||
|
return canEditSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCanEditSetting(boolean canEditSetting) {
|
||||||
|
this.canEditSetting = canEditSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getCanDeleteMessages() {
|
||||||
|
return canDeleteMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCanDeleteMessages(boolean canDeleteMessages) {
|
||||||
|
this.canDeleteMessages = canDeleteMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getCanDeleteMembers() {
|
||||||
|
return canDeleteMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCanDeleteMembers(boolean canDeleteMembers) {
|
||||||
|
this.canDeleteMembers = canDeleteMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getCanAddMembers() {
|
||||||
|
return canAddMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCanAddMembers(boolean canAddMembers) {
|
||||||
|
this.canAddMembers = canAddMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ChannelAdmin{" +
|
||||||
|
"channelId='" + channelId + '\'' +
|
||||||
|
", userId=" + userId +
|
||||||
|
", addedAt=" + addedAt +
|
||||||
|
", addedBy=" + addedBy +
|
||||||
|
", role='" + role + '\'' +
|
||||||
|
", canPost=" + canPostMessage +
|
||||||
|
", canEdit=" + canEditSetting +
|
||||||
|
", canDeleteMessages=" + canDeleteMessages +
|
||||||
|
", canDeleteMembers=" + canDeleteMembers +
|
||||||
|
", canAddMembers=" + canAddMembers +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package org.to.telegramfinalproject.Models;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class MessageReceipt {
|
||||||
|
private UUID messageId;
|
||||||
|
private UUID userId;
|
||||||
|
private LocalDateTime readAt;
|
||||||
|
|
||||||
|
public MessageReceipt(UUID messageId, UUID userId, LocalDateTime readAt) {
|
||||||
|
this.messageId = messageId;
|
||||||
|
this.userId = userId;
|
||||||
|
this.readAt = readAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overloaded constructor if readAt is not provided (use current timestamp)
|
||||||
|
public MessageReceipt(UUID messageId, UUID userId) {
|
||||||
|
this.messageId = messageId;
|
||||||
|
this.userId = userId;
|
||||||
|
this.readAt = LocalDateTime.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getters
|
||||||
|
public UUID getMessageId() {
|
||||||
|
return messageId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getReadAt() {
|
||||||
|
return readAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setters
|
||||||
|
public void setMessageId(UUID messageId) {
|
||||||
|
this.messageId = messageId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(UUID userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReadAt(LocalDateTime readAt) {
|
||||||
|
this.readAt = readAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "MessageReceipt{" +
|
||||||
|
"messageId=" + messageId +
|
||||||
|
", userId=" + userId +
|
||||||
|
", readAt=" + readAt +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS users(
|
|||||||
internal_uuid UUID PRIMARY KEY,
|
internal_uuid UUID PRIMARY KEY,
|
||||||
username VARCHAR(50) UNIQUE NOT NULL,
|
username VARCHAR(50) UNIQUE NOT NULL,
|
||||||
password TEXT NOT NULL,
|
password TEXT NOT NULL,
|
||||||
profile_name VARCHAR(100),
|
profile_name VARCHAR(100) NOT NULL,
|
||||||
bio TEXT, --(Bonus)
|
bio TEXT, --(Bonus)
|
||||||
image_url TEXT,
|
image_url TEXT,
|
||||||
status VARCHAR(20) DEFAULT 'offline',
|
status VARCHAR(20) DEFAULT 'offline',
|
||||||
@@ -87,8 +87,8 @@ CREATE TABLE IF NOT EXISTS channel_admins (
|
|||||||
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
added_by UUID REFERENCES users(internal_uuid),
|
added_by UUID REFERENCES users(internal_uuid),
|
||||||
role VARCHAR(20) DEFAULT 'admin', --owner, admin
|
role VARCHAR(20) DEFAULT 'admin', --owner, admin
|
||||||
can_post BOOLEAN DEFAULT TRUE,
|
can_post_messages BOOLEAN DEFAULT TRUE,
|
||||||
can_edit BOOLEAN DEFAULT FALSE,
|
can_edit_setting BOOLEAN DEFAULT FALSE, -- profile, bio, name, etc.
|
||||||
can_delete_messages BOOLEAN DEFAULT FALSE,
|
can_delete_messages BOOLEAN DEFAULT FALSE,
|
||||||
can_delete_members BOOLEAN DEFAULT FALSE,
|
can_delete_members BOOLEAN DEFAULT FALSE,
|
||||||
can_add_members BOOLEAN DEFAULT TRUE,
|
can_add_members BOOLEAN DEFAULT TRUE,
|
||||||
|
|||||||
Reference in New Issue
Block a user