commit d66db8feec1f86d3c3a14760e93b28848b4f2006
Author: Milan Hotovec <silent@students.zcu.cz>
Date:   Sun Apr 25 15:51:08 2021 +0200

    data entities prepared
    refs #8555 @2h
    @testFull

diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Class1.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Class1.cs
deleted file mode 100644
index 38d3ebc..0000000
--- a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Class1.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-﻿using System;
-
-namespace Leuze.Modules.Goal.Domain
-{
-    public class Class1
-    {
-    }
-}
diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Comment.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Comment.cs
new file mode 100644
index 0000000..53a4d10
--- /dev/null
+++ b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Comment.cs
@@ -0,0 +1,37 @@
+﻿using Leuze.Core.Domain.Domains;
+using Leuze.Core.Domain.Domains.Users;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Leuze.Modules.Goal.Domain.Domains
+{
+    public class Comment : BaseEntity
+    {
+        private Comment()
+        {
+
+        }
+
+        public Comment(DomainUser creator, Goal goal, string text, bool isPrivate)
+        {
+            this.Creator = creator;
+            this.CreatorId = creator.UserId;
+            this.Goal = goal;
+            this.GoalId = goal.Id;
+            this.Text = text;
+            this.IsPrivate = isPrivate;
+        }
+
+        public Guid Id { get; private set; }
+        public DomainUser Creator { get; private set; }
+        public Guid CreatorId { get; private set; }
+        public Goal Goal { get; private set; }
+        public Guid GoalId { get; private set; }
+        public string Text { get; private set; }
+        public bool IsPrivate { get; private set; }
+        public bool IsChanged { get; private set; }
+    }
+}
diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Goal.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Goal.cs
new file mode 100644
index 0000000..41743e9
--- /dev/null
+++ b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Goal.cs
@@ -0,0 +1,38 @@
+﻿using Leuze.Core.Domain.Domains;
+using Leuze.Core.Domain.Domains.Users;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Leuze.Modules.Goal.Domain.Domains
+{
+    public class Goal : BaseEntity
+    {
+        private Goal()
+        {
+
+        }
+
+        public Goal(GoalDefinition goalDefinition, DomainUser creator, string name, string description)
+        {
+            this.GoalDefinition = goalDefinition;
+            this.GoalDefinitionId = goalDefinition.Id;
+            this.Creator = creator;
+            this.CreatorId = creator.UserId;
+            this.Name = name;
+            this.Description = description;
+        }
+
+        public Guid Id { get; private set; }
+        public GoalDefinition GoalDefinition { get; private set; }
+        public Guid GoalDefinitionId { get; private set; }
+        public DomainUser Creator { get; private set; }
+        public Guid CreatorId { get; private set; }
+        public string Name { get; private set; }
+        public string Description { get; private set; }
+        public int PercentileUser { get; private set; }
+        public int PercentileFinal { get; private set; }
+    }
+}
diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/GoalDefinition.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/GoalDefinition.cs
new file mode 100644
index 0000000..da78de2
--- /dev/null
+++ b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/GoalDefinition.cs
@@ -0,0 +1,40 @@
+﻿using Leuze.Core.Domain.Domains;
+using Leuze.Core.Domain.Domains.Users;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Leuze.Modules.Goal.Domain.Domains
+{
+    public class GoalDefinition : BaseEntity
+    {
+
+        private GoalDefinition()
+        {
+
+        }
+
+        public GoalDefinition(DomainUser owner, DomainUser creator, string name, DateTime from, DateTime to)
+        {
+            this.Owner = owner;
+            this.OwnerId = owner.UserId;
+            this.Creator = creator;
+            this.CreatorId = creator.UserId;
+            this.Name = name;
+            this.From = from;
+            this.To = to;
+        }
+
+        public Guid Id { get; private set; }
+        public DomainUser Owner { get; private set; }
+        public Guid OwnerId { get; private set; }
+        public DomainUser Creator { get; private set; }
+        public Guid CreatorId { get; private set; }
+        public string Name { get; private set; }
+        public DateTime From { get; private set; }
+        public DateTime To { get; private set; }
+        public decimal Vari { get; private set; }
+    }
+}
diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/GoalUpdate.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/GoalUpdate.cs
new file mode 100644
index 0000000..c779e8c
--- /dev/null
+++ b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/GoalUpdate.cs
@@ -0,0 +1,38 @@
+﻿using Leuze.Core.Domain.Domains;
+using Leuze.Core.Domain.Domains.Users;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Leuze.Modules.Goal.Domain.Domains
+{
+    public class GoalUpdate : BaseEntity
+    {
+        private GoalUpdate()
+        {
+
+        }
+
+        public GoalUpdate(DomainUser creator, Goal goal, UpdateType updatedType, string oldValue, string newValue)
+        {
+            this.Creator = creator;
+            this.CreatorId = creator.UserId;
+            this.Goal = goal;
+            this.GoalId = goal.Id;
+            this.UpdatedType = updatedType;
+            this.OldValue = oldValue;
+            this.NewValue = newValue;
+        }
+
+        public Guid Id { get; private set; }
+        public DomainUser Creator { get; private set; }
+        public Guid CreatorId { get; private set; }
+        public Goal Goal { get; private set; }
+        public Guid GoalId { get; private set; }
+        public UpdateType UpdatedType { get; private set; }
+        public string OldValue { get; private set; }
+        public string NewValue { get; private set; }
+    }
+}
diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Review.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Review.cs
new file mode 100644
index 0000000..13b586e
--- /dev/null
+++ b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/Review.cs
@@ -0,0 +1,38 @@
+﻿using Leuze.Core.Domain.Domains;
+using Leuze.Core.Domain.Domains.Users;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Leuze.Modules.Goal.Domain.Domains
+{
+    public class Review : BaseEntity
+    {
+        private Review()
+        {
+
+        }
+
+        public Review(DomainUser creator, Goal goal, string commentCreator, string commentOwner, bool isFinal)
+        {
+            this.Creator = creator;
+            this.CreatorId = creator.UserId;
+            this.Goal = goal;
+            this.GoalId = goal.Id;
+            this.CommentCreator = commentCreator;
+            this.CommentOwner = commentOwner;
+            this.IsFinal = isFinal;
+        }
+
+        public Guid Id { get; private set; }
+        public DomainUser Creator { get; private set; }
+        public Guid CreatorId { get; private set; }
+        public Goal Goal { get; private set; }
+        public Guid GoalId { get; private set; }
+        public string CommentOwner { get; private set; }
+        public string CommentCreator { get; private set; }
+        public bool IsFinal { get; private set; }
+    }
+}
diff --git a/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/UpdateType.cs b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/UpdateType.cs
new file mode 100644
index 0000000..0c50e76
--- /dev/null
+++ b/src/Modules/Goal/Domain/Leuze.Modules.Goal.Domain/Domains/UpdateType.cs
@@ -0,0 +1,13 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Leuze.Modules.Goal.Domain.Domains
+{
+    public enum UpdateType
+    {
+        Name, Description, PercentileUser, PercentileFinal
+    }
+}
