Add ChannelAdmin and MessageReceipt classes and Update init.sql

This commit is contained in:
Asal Lotfi
2025-06-09 00:17:03 +03:30
parent c4307c86fb
commit a7fc80c945
3 changed files with 197 additions and 3 deletions
@@ -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 -3
View File
@@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS users(
internal_uuid UUID PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password TEXT NOT NULL,
profile_name VARCHAR(100),
profile_name VARCHAR(100) NOT NULL,
bio TEXT, --(Bonus)
image_url TEXT,
status VARCHAR(20) DEFAULT 'offline',
@@ -87,8 +87,8 @@ CREATE TABLE IF NOT EXISTS channel_admins (
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
added_by UUID REFERENCES users(internal_uuid),
role VARCHAR(20) DEFAULT 'admin', --owner, admin
can_post BOOLEAN DEFAULT TRUE,
can_edit BOOLEAN DEFAULT FALSE,
can_post_messages BOOLEAN DEFAULT TRUE,
can_edit_setting BOOLEAN DEFAULT FALSE, -- profile, bio, name, etc.
can_delete_messages BOOLEAN DEFAULT FALSE,
can_delete_members BOOLEAN DEFAULT FALSE,
can_add_members BOOLEAN DEFAULT TRUE,