use sqlx::{postgres::PgPoolOptions, Pool, Postgres};

mod artworks;

#[derive(Clone)]
pub struct Database(Pool<Postgres>);

impl Database {
    pub async fn new(connection_string: &str) -> Self {
        let pool = PgPoolOptions::new()
            .max_connections(5)
            .connect(connection_string)
            .await
            .unwrap();

        sqlx::migrate!("./migrations").run(&pool).await.unwrap();

        Self(pool)
    }
}