Auctions schema and creation

This commit is contained in:
2026-08-25 23:38:29 +03:00
parent 8582a92d85
commit 81e126013b
6 changed files with 126 additions and 5 deletions
+33
View File
@@ -0,0 +1,33 @@
package dao
import models.Auction
import schemas.Auctions
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
import slick.jdbc.PostgresProfile
import slick.jdbc.PostgresProfile.api.*
import utils.Random
import java.time.Instant
import javax.inject.Inject
import scala.concurrent.{ExecutionContext, Future}
class AuctionsDAO @Inject()(protected val dbConfigProvider: DatabaseConfigProvider)(implicit val ec: ExecutionContext)
extends HasDatabaseConfigProvider[PostgresProfile] {
def create(name: String, startingPrice: BigDecimal, author: models.User): Future[Auction] = {
val auction = Auction(
id = None, name = name,
gid = Random.randomBase64(24),
authorId = author.id.get,
startingPrice = startingPrice,
currentBid = None, currentBidderId = None, currentBidAt = None,
createdAt = Instant.now()
)
create(auction)
}
def create(auction: Auction) : Future[Auction] = {
db.run((Auctions returning Auctions) += auction)
}
}