23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ |
24 */ |
25 |
25 |
26 package de.uapcore.lightpit.viewmodel |
26 package de.uapcore.lightpit.viewmodel |
27 |
27 |
28 import de.uapcore.lightpit.entities.Issue |
|
29 import de.uapcore.lightpit.entities.Project |
28 import de.uapcore.lightpit.entities.Project |
|
29 import de.uapcore.lightpit.types.IssueHistoryType |
30 import java.sql.Timestamp |
30 import java.sql.Timestamp |
31 import java.time.Instant |
31 import java.time.Instant |
32 |
32 |
|
33 class IssueDiff( |
|
34 val id: Int, |
|
35 val currentSubject: String, |
|
36 var component: String, |
|
37 var status: String, |
|
38 var category: String, |
|
39 var subject: String, |
|
40 var description: String, |
|
41 var assignee: String, |
|
42 var eta: String, |
|
43 var affected: String, |
|
44 var resolved: String, |
|
45 ) |
|
46 |
|
47 class IssueFeedEntry( |
|
48 val time: Timestamp, |
|
49 val type: IssueHistoryType, |
|
50 val issue: IssueDiff |
|
51 ) |
|
52 |
33 class IssueFeed( |
53 class IssueFeed( |
34 val project: Project, |
54 val project: Project, |
35 val issues: List<Issue> |
55 val entries: List<IssueFeedEntry> |
36 ) : View() { |
56 ) : View() { |
37 val lastModified = issues.map(Issue::updated).maxOrNull() ?: Timestamp.from(Instant.now()) |
57 val lastModified: Timestamp = |
|
58 entries.map(IssueFeedEntry::time).maxOrNull() ?: Timestamp.from(Instant.now()) |
38 } |
59 } |