package fr.univ.lyon1.common;

import java.io.Serializable;
import java.util.UUID;

public class Message implements Serializable {
    private Channel channel;
    private User sender;
    private final String content;
    private final UUID uuid;


    public Message(Channel channel, User sender, String content) {
        this.uuid = UUID.randomUUID();
        this.channel = channel;
        this.sender = sender;
        this.content = content;
    }

    public Message(UUID uuid, Channel channel, User sender, String content) {
        this.uuid = uuid;
        this.channel = channel;
        this.sender = sender;
        this.content = content;
    }

    public Message(String content, Channel channel) {
        this.uuid = UUID.randomUUID();
        this.content = content;
        this.channel = channel;
    }

    public Message repley(User user, String content) {
        return  new Message(this.channel, user, content);
    }

    public void setSender(User sender) {
        this.sender = sender;
    }

    public Channel getChannel() {
        return channel;
    }

    public User getSender() {
        return sender;
    }

    public String getContent() {
        return content;
    }

    @Override
    public String toString() {
        if (channel != null)
            return "#"+channel+" "+sender+": "+content;
        else
            return sender + ": " + content;
    }
}