Skip to content

Commit 52ef47b

Browse files
tech: change position db type
1 parent 01dabce commit 52ef47b

File tree

5 files changed

+16
-13
lines changed

5 files changed

+16
-13
lines changed

backend/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ tasks.withType<KotlinCompile> {
6161
}
6262

6363
val ktorVersion = "3.3.2"
64-
val testcontainersVersion = "1.21.3"
64+
val testcontainersVersion = "1.21.4"
6565
val sentryVersion = "8.26.0"
6666
val flywayVersion = "11.17.0"
6767

backend/src/main/kotlin/fr/gouv/cacem/monitorenv/infrastructure/database/model/AISPositionModel.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import org.n52.jackson.datatype.jts.GeometryDeserializer
1313
import org.n52.jackson.datatype.jts.GeometrySerializer
1414
import java.io.Serializable
1515
import java.time.ZonedDateTime
16+
import kotlin.math.roundToInt
1617

1718
@Entity
1819
@Table(name = "ais_positions")
@@ -23,19 +24,19 @@ data class AISPositionModel(
2324
@JsonDeserialize(contentUsing = GeometryDeserializer::class)
2425
val coord: Geometry?,
2526
val status: String?,
26-
val course: Double?,
27-
val heading: Double?,
28-
val speed: Double?,
27+
val course: Short?,
28+
val heading: Short?,
29+
val speed: Short?,
2930
) {
3031
companion object {
3132
fun toAISPositionModel(aisPosition: AISPayload): AISPositionModel =
3233
AISPositionModel(
3334
id = AISPositionPK(mmsi = aisPosition.mmsi, ts = aisPosition.ts),
3435
coord = aisPosition.coord.let { WKTReader().read(it) },
3536
status = aisPosition.status,
36-
course = aisPosition.course,
37-
speed = aisPosition.speed,
38-
heading = aisPosition.heading,
37+
course = aisPosition.course?.let { (it * 100).roundToInt().toShort() },
38+
speed = aisPosition.speed?.let { (it * 100).roundToInt().toShort() },
39+
heading = aisPosition.heading?.let { (it * 100).roundToInt().toShort() },
3940
)
4041
}
4142
}

backend/src/main/resources/db/migration/internal/V0.199__create_table_ais_positions.sql renamed to backend/src/main/resources/db/migration/internal/V0.202__create_table_ais_positions.sql

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ CREATE EXTENSION IF NOT EXISTS timescaledb;
22

33
CREATE TABLE public.ais_positions
44
(
5+
id SERIAL,
56
mmsi INT,
67
coord GEOMETRY,
78
status TEXT,
8-
course DOUBLE PRECISION,
9-
heading DOUBLE PRECISION,
10-
speed DOUBLE PRECISION,
9+
course SMALLINT,
10+
heading SMALLINT,
11+
speed SMALLINT,
1112
ts TIMESTAMPTZ,
1213
PRIMARY KEY (mmsi, ts)
1314
);

backend/src/test/kotlin/fr/gouv/cacem/monitorenv/infrastructure/kafka/AISListenerITests.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ class AISListenerITests : AbstractKafkaTests() {
5858
assertThat(saved?.id?.ts).isEqualTo(aisPosition.ts)
5959
assertThat(saved?.coord).isEqualTo(WKTReader().read(coord) as Point)
6060
assertThat(saved?.status).isEqualTo(aisPosition.status)
61-
assertThat(saved?.course).isEqualTo(aisPosition.course)
62-
assertThat(saved?.heading).isEqualTo(aisPosition.heading)
63-
assertThat(saved?.speed).isEqualTo(aisPosition.speed)
61+
assertThat(saved?.course).isEqualTo(1212)
62+
assertThat(saved?.heading).isEqualTo(1012)
63+
assertThat(saved?.speed).isEqualTo(1012)
6464
}
6565
}
6666
}

backend/src/test/resources/application.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ monitorenv:
88
kafka:
99
ais:
1010
batch-size: 1
11+
timeout: 5000
1112

1213
logging:
1314
level:

0 commit comments

Comments
 (0)