34 lines
1015 B
Scala
34 lines
1015 B
Scala
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)
|
|
}
|
|
}
|