Skip to content

Commit fd33951

Browse files
authored
Merge pull request #1 from Task-Tracker-Systems/entities
Entities
2 parents f902d5c + 09e09df commit fd33951

File tree

13 files changed

+173
-0
lines changed

13 files changed

+173
-0
lines changed

.github/build.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# This workflow uses actions that are not certified by GitHub.
2+
# They are provided by a third-party and are governed by
3+
# separate terms of service, privacy policy, and support
4+
# documentation.
5+
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
6+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
7+
8+
name: Java CI with Gradle
9+
10+
on:
11+
push:
12+
branches: [ "main" ]
13+
pull_request:
14+
branches: [ "main" ]
15+
16+
permissions:
17+
contents: read
18+
19+
jobs:
20+
test:
21+
22+
runs-on: ubuntu-latest
23+
24+
steps:
25+
- uses: actions/checkout@v3
26+
- name: Set up JDK 17
27+
uses: actions/setup-java@v3
28+
with:
29+
java-version: '17'
30+
distribution: 'temurin'
31+
- name: Build with Gradle
32+
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
33+
working-directory: ./Task-Tracker-Entities
34+
with:
35+
arguments: test

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
**/build/**
2+
**/gradle/**
3+
**/.gradle/**
4+
**/local.properties/**
5+
**/.idea/**
6+
**/kotlin-js-store/**
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
plugins {
2+
kotlin("multiplatform") version "1.8.21"
3+
id("maven-publish")
4+
}
5+
6+
group = "com.garbereder.tasktracker.entities"
7+
version = "1.0-SNAPSHOT"
8+
9+
repositories {
10+
mavenCentral()
11+
}
12+
13+
kotlin {
14+
sourceSets {
15+
val commonMain by getting {
16+
dependencies {
17+
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
18+
}
19+
}
20+
}
21+
jvm {
22+
jvmToolchain(17)
23+
withJava()
24+
testRuns["test"].executionTask.configure {
25+
useJUnitPlatform()
26+
}
27+
}
28+
js(IR) {
29+
nodejs()
30+
compilations.all {
31+
compileTaskProvider.configure {
32+
compilerOptions.freeCompilerArgs.add("-Xir-minimized-member-names=false")
33+
}
34+
}
35+
}
36+
val hostOs = System.getProperty("os.name")
37+
val isMingwX64 = hostOs.startsWith("Windows")
38+
val nativeTarget = when {
39+
hostOs == "Mac OS X" -> macosX64("native")
40+
hostOs == "Linux" -> linuxX64("native")
41+
isMingwX64 -> mingwX64("native")
42+
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
43+
}
44+
45+
46+
sourceSets {
47+
val commonMain by getting
48+
val commonTest by getting {
49+
dependencies {
50+
implementation(kotlin("test"))
51+
}
52+
}
53+
val jvmMain by getting
54+
val jvmTest by getting
55+
val jsMain by getting
56+
val jsTest by getting
57+
val nativeMain by getting
58+
val nativeTest by getting
59+
}
60+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
kotlin.code.style=official
2+
kotlin.js.compiler=ir
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
rootProject.name = "Task-Tracker-Entities"
3+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.garbereder.tasktracker.entities
2+
3+
import kotlinx.datetime.LocalDateTime
4+
5+
data class Activity(
6+
val id: String,
7+
val startUTC: LocalDateTime,
8+
val endUTC: LocalDateTime,
9+
val task: Task
10+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.garbereder.tasktracker.entities
2+
3+
interface ActivityCollection: Iterable<Activity> {
4+
fun add(activity: Activity)
5+
fun remove(activity: Activity)
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.garbereder.tasktracker.entities
2+
3+
class DuplicateTaskException(task: Task): Exception("Could not add duplicate task: $task") {
4+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.garbereder.tasktracker.entities
2+
3+
data class Task(
4+
val id: String,
5+
val name: String
6+
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.garbereder.tasktracker.entities
2+
3+
interface TaskCollection: Iterable<Task> {
4+
fun add(task: Task)
5+
fun remove(task: Task)
6+
fun size(): Int
7+
}

0 commit comments

Comments
 (0)