summaryrefslogtreecommitdiff
path: root/src/main/java/com/mavlushechka/notaryqueue/model/Client.java
blob: 25033d26df4fec133d12bd739870b409088e5020 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.mavlushechka.notaryqueue.model;

import java.io.Serializable;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Objects;

public class Client implements Serializable {

    public String numberInQueue;
    public String name;
    public LocalTime localTime;
    public String clientDocumentType;
    private Status status;
    private boolean isClientDocumentTypeVisible;
    private boolean isLocalTimeVisible;


    public Client() {
    }

    public Client(Client client) {
        this.numberInQueue = client.numberInQueue;
        this.name = client.name;
        this.status = client.status;
        this.clientDocumentType = client.clientDocumentType;
        this.isClientDocumentTypeVisible = client.isClientDocumentTypeVisible;
        this.localTime = client.localTime;
        this.isLocalTimeVisible = client.isLocalTimeVisible;
    }

    public Client(String numberInQueue, String name, Status status, String clientDocumentType, boolean isClientDocumentTypeVisible, LocalTime localTime, boolean isLocalTimeVisible) {
        this.numberInQueue = numberInQueue;
        this.name = name;
        this.status = status;
        this.clientDocumentType = clientDocumentType;
        this.isClientDocumentTypeVisible = isClientDocumentTypeVisible;
        this.localTime = localTime;
        this.isLocalTimeVisible = isLocalTimeVisible;
    }

    public String getNumberInQueue() {
        return numberInQueue;
    }

    public void setNumberInQueue(String numberInQueue) {
        this.numberInQueue = numberInQueue;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public LocalTime getLocalTime() {
        return localTime;
    }

    public void setLocalTime(LocalTime localTime) {
        this.localTime = localTime;
    }

    public String getClientDocumentType() {
        return clientDocumentType;
    }

    public void setClientDocumentType(String clientDocumentType) {
        this.clientDocumentType = clientDocumentType;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    public boolean isClientDocumentTypeVisible() {
        return isClientDocumentTypeVisible;
    }

    public void setClientDocumentTypeVisible(boolean clientDocumentTypeVisible) {
        isClientDocumentTypeVisible = clientDocumentTypeVisible;
    }

    public boolean isLocalTimeVisible() {
        return isLocalTimeVisible;
    }

    public void setLocalTimeVisible(boolean localTimeVisible) {
        isLocalTimeVisible = localTimeVisible;
    }

    @Override
    public boolean equals(Object object) {
        if (this == object) return true;
        if (object == null || getClass() != object.getClass()) return false;
        Client client = (Client) object;
        return isClientDocumentTypeVisible == client.isClientDocumentTypeVisible && isLocalTimeVisible == client.isLocalTimeVisible && Objects.equals(numberInQueue, client.numberInQueue) && Objects.equals(name, client.name) && Objects.equals(localTime, client.localTime) && Objects.equals(clientDocumentType, client.clientDocumentType) && status == client.status;
    }

    @Override
    public int hashCode() {
        return Objects.hash(numberInQueue, name, localTime, clientDocumentType, status, isClientDocumentTypeVisible, isLocalTimeVisible);
    }

    @Override
    public String toString() {
        String string = numberInQueue + ". " + name;

        if (isClientDocumentTypeVisible || isLocalTimeVisible) {
            string += " (";
            if (isClientDocumentTypeVisible) {
                string += clientDocumentType;
            }
            if (isLocalTimeVisible) {
                string += (isClientDocumentTypeVisible ? ", " : "") + localTime.format(DateTimeFormatter.ofPattern("hh:mm"));
            }
            string += ")";
        }
        return string;
    }

}