use sqlx::Row;
use uuid::Uuid;
use crate::infrastructure::persistence::PosTableRepository;
pub struct TableRow {
pub id: Uuid,
pub pos_floor_plan_id: Uuid,
pub name: Option<String>,
}
impl PosTableRepository {
pub async fn fetch_table(
&self,
conn: &mut sqlx::PgConnection,
pos_table_id: Uuid,
) -> Result<Option<TableRow>, sqlx::Error> {
let row = sqlx::query(
r#"SELECT id, pos_floor_plan_id, name
FROM pos.pos_tables
WHERE id=$1 AND (metadata->>'deleted_at') IS NULL"#,
)
.bind(pos_table_id)
.fetch_optional(conn)
.await?;
Ok(row.map(|r| TableRow {
id: r.get("id"),
pos_floor_plan_id: r.get("pos_floor_plan_id"),
name: r.get("name"),
}))
}
}