Bumped project version to `2.2.0-alpha-2` in `build.gradle.kts`. Introduced `SampleEntity`, `SamplePartEntity`, and `SampleEntityQueryProvider` for database handling. Added `SampleDao` with a sample query function. Updated SVG utilities with a `viewbox` extension and enhanced `RequestHandler` to set content type for HTML responses.
51 lines
1.1 KiB
Kotlin
51 lines
1.1 KiB
Kotlin
package nl.astraeus.vst.chip.db
|
|
|
|
import kotlinx.datetime.Clock
|
|
import kotlinx.datetime.Instant
|
|
import nl.astraeus.vst.base.db.Entity
|
|
|
|
data class SampleEntity(
|
|
var sha1Hash: String,
|
|
var filename: String,
|
|
var length: Int,
|
|
var created: Instant = Clock.System.now(),
|
|
var updated: Instant = Clock.System.now(),
|
|
) : Entity {
|
|
override fun getPK(): Array<Any> = arrayOf(sha1Hash)
|
|
|
|
override fun setPK(pks: Array<Any>) {
|
|
sha1Hash = pks[0] as String
|
|
}
|
|
}
|
|
|
|
data class SamplePartEntity(
|
|
var sha1Hash: String,
|
|
var part: Int,
|
|
var from: Int,
|
|
var to: Int,
|
|
var data: ByteArray,
|
|
) : Entity {
|
|
override fun getPK(): Array<Any> = arrayOf(sha1Hash, part)
|
|
|
|
override fun setPK(pks: Array<Any>) {
|
|
sha1Hash = pks[0] as String
|
|
part = pks[1] as Int
|
|
}
|
|
|
|
override fun equals(other: Any?): Boolean {
|
|
if (this === other) return true
|
|
if (other !is SamplePartEntity) return false
|
|
|
|
if (sha1Hash != other.sha1Hash) return false
|
|
if (part != other.part) return false
|
|
|
|
return true
|
|
}
|
|
|
|
override fun hashCode(): Int {
|
|
var result = sha1Hash.hashCode()
|
|
result = 31 * result + part
|
|
return result
|
|
}
|
|
}
|