Replaced Ints with Longs as database Ids.

This commit is contained in:
2026-09-16 16:22:00 +03:00
parent 98fa797a05
commit c45889838b
5 changed files with 16 additions and 11 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ object AuctionPublisher extends ActorModule with Logging {
sealed trait Command sealed trait Command
private case object Ready extends Command private case object Ready extends Command
case class Publish(auction: Auction, author: User) extends Command case class Publish(auction: Auction, author: User) extends Command
private case class AuctionConfirmed(id: Int, responseTopic: String) extends Command private case class AuctionConfirmed(id: Long, responseTopic: String) extends Command
private final val topic = "auctions/created" private final val topic = "auctions/created"
+1 -1
View File
@@ -43,7 +43,7 @@ class AuctionsDAO @Inject()(protected val dbConfigProvider: DatabaseConfigProvid
db.run((Auctions returning Auctions) += auction) db.run((Auctions returning Auctions) += auction)
} }
def changeStatus(auctionId: Int, status: AuctionStatus): Future[Boolean] = { def changeStatus(auctionId: Long, status: AuctionStatus): Future[Boolean] = {
db.run(Auctions.filter(_.id === auctionId).map(_.status).update(status)) db.run(Auctions.filter(_.id === auctionId).map(_.status).update(status))
.map(_ == 1) .map(_ == 1)
} }
+3 -3
View File
@@ -4,7 +4,7 @@ import play.api.libs.json.{JsString, JsValue, Json, OWrites, Writes}
import java.time.Instant import java.time.Instant
case class User(id: Option[Int], username: String, gid: String, passwordDigest: Option[String]) case class User(id: Option[Long], username: String, gid: String, passwordDigest: Option[String])
object User { object User {
given writes: Writes[User] = new Writes[User] { given writes: Writes[User] = new Writes[User] {
override def writes(o: User): JsValue = Json.obj( override def writes(o: User): JsValue = Json.obj(
@@ -14,7 +14,7 @@ object User {
} }
} }
case class AuthToken(id: Option[Int], userId: Int, token: String, createdAt: Instant, expiresAt: Instant) case class AuthToken(id: Option[Long], userId: Long, token: String, createdAt: Instant, expiresAt: Instant)
object AuthToken { object AuthToken {
given writes: OWrites[AuthToken] = (a: AuthToken) => Json.obj( given writes: OWrites[AuthToken] = (a: AuthToken) => Json.obj(
"token" -> a.token, "token" -> a.token,
@@ -36,7 +36,7 @@ object AuctionStatus {
implicit val writes: Writes[AuctionStatus] = (o: AuctionStatus) => JsString(o.toString) implicit val writes: Writes[AuctionStatus] = (o: AuctionStatus) => JsString(o.toString)
} }
case class Auction(id: Option[Int], name: String, status: AuctionStatus, gid: String, authorId: Int, case class Auction(id: Option[Long], name: String, status: AuctionStatus, gid: String, authorId: Long,
startingPrice: BigDecimal, currentBid: Option[BigDecimal], startingPrice: BigDecimal, currentBid: Option[BigDecimal],
currentBidderId: Option[Int], currentBidAt: Option[Instant], currentBidderId: Option[Int], currentBidAt: Option[Instant],
createdAt: Instant) createdAt: Instant)
+5 -5
View File
@@ -8,7 +8,7 @@ import slick.model.ForeignKeyAction.{Cascade, Restrict}
import java.time.Instant import java.time.Instant
class UsersTable(tag: Tag) extends Table[User](tag, "users") { class UsersTable(tag: Tag) extends Table[User](tag, "users") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc) def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def gid = column[String]("gid", O.Unique) def gid = column[String]("gid", O.Unique)
def username = column[String]("username", O.Unique) def username = column[String]("username", O.Unique)
def passwordDigest = column[Option[String]]("password_digest") def passwordDigest = column[Option[String]]("password_digest")
@@ -20,8 +20,8 @@ lazy val Users = TableQuery[UsersTable]
class AuthTokensTable(tag: Tag) extends Table[AuthToken](tag, "auth_tokens") { class AuthTokensTable(tag: Tag) extends Table[AuthToken](tag, "auth_tokens") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc) def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def userId = column[Int]("user_id") def userId = column[Long]("user_id")
def token = column[String]("token") def token = column[String]("token")
def createdAt = column[Instant]("created_at") def createdAt = column[Instant]("created_at")
def expiresAt = column[Instant]("expires_at") def expiresAt = column[Instant]("expires_at")
@@ -40,11 +40,11 @@ implicit val auctionStatusColumnType: BaseColumnType[AuctionStatus] =
) )
class AuctionsTable(tag: Tag) extends Table[Auction](tag, "auctions") { class AuctionsTable(tag: Tag) extends Table[Auction](tag, "auctions") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc) def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name") def name = column[String]("name")
def status = column[AuctionStatus]("status") def status = column[AuctionStatus]("status")
def gid = column[String]("gid", O.Unique) def gid = column[String]("gid", O.Unique)
def authorId = column[Int]("author_id") def authorId = column[Long]("author_id")
def startingPrice = column[BigDecimal]("starting_price", O.SqlType("DECIMAL(20, 3)")) def startingPrice = column[BigDecimal]("starting_price", O.SqlType("DECIMAL(20, 3)"))
def currentBid = column[Option[BigDecimal]]("current_bid", O.SqlType("DECIMAL(20, 3)")) def currentBid = column[Option[BigDecimal]]("current_bid", O.SqlType("DECIMAL(20, 3)"))
def currentBidderId = column[Option[Int]]("current_bidder_id") def currentBidderId = column[Option[Int]]("current_bidder_id")
+5
View File
@@ -8,3 +8,8 @@ services:
- db.env - db.env
ports: ports:
- "5432:5432" - "5432:5432"
volumes:
- "db:/var/lib/postgresql"
volumes:
db: