aboutsummaryrefslogtreecommitdiffstats
path: root/public/projects/js-small-apps/budget-app/lib/class-user.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/projects/js-small-apps/budget-app/lib/class-user.js')
-rw-r--r--public/projects/js-small-apps/budget-app/lib/class-user.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/public/projects/js-small-apps/budget-app/lib/class-user.js b/public/projects/js-small-apps/budget-app/lib/class-user.js
new file mode 100644
index 0000000..e0e137b
--- /dev/null
+++ b/public/projects/js-small-apps/budget-app/lib/class-user.js
@@ -0,0 +1,79 @@
+import Budget from "./class-budget.js";
+
+class User {
+ #id = 0;
+ #username = "Anonymous";
+ #firstName = "John";
+ #lastName = "Doe";
+ #role = "admin";
+ #locale = "en-US";
+ #accountCreation = new Date();
+ #budget = 0;
+
+ constructor(id, username) {
+ this.#id = id;
+ this.#username = username;
+ }
+
+ get id() {
+ return this.#id;
+ }
+
+ set username(name) {
+ this.#username = name;
+ }
+
+ get username() {
+ return this.#username;
+ }
+
+ set firstName(name) {
+ this.#firstName = name;
+ }
+
+ get firstName() {
+ return this.#firstName;
+ }
+
+ set lastName(name) {
+ this.#lastName = name;
+ }
+
+ get lastName() {
+ return this.#lastName;
+ }
+
+ set role(string) {
+ this.#role = string;
+ }
+
+ get role() {
+ return this.#role;
+ }
+
+ set locale(code) {
+ this.#locale = code;
+ }
+
+ get locale() {
+ return this.#locale;
+ }
+
+ get accountCreation() {
+ return this.#accountCreation;
+ }
+
+ set budget(number) {
+ this.#budget = new Budget(number);
+ }
+
+ get budget() {
+ return this.#budget;
+ }
+
+ name() {
+ return `${this.#firstName} ${this.#lastName}`;
+ }
+}
+
+export default User;