Introduce is_paid attribute to SalesUser
This commit is contained in:
parent
17e16d35a7
commit
d48c97edac
8 changed files with 304 additions and 36 deletions
|
|
@ -23,6 +23,7 @@ struct SalesPersonDb {
|
|||
id: Vec<u8>,
|
||||
name: String,
|
||||
background_color: String,
|
||||
is_paid: bool,
|
||||
inactive: bool,
|
||||
deleted: Option<String>,
|
||||
update_version: Vec<u8>,
|
||||
|
|
@ -34,6 +35,7 @@ impl TryFrom<&SalesPersonDb> for SalesPersonEntity {
|
|||
id: Uuid::from_slice(sales_person.id.as_ref()).unwrap(),
|
||||
name: sales_person.name.as_str().into(),
|
||||
background_color: sales_person.background_color.as_str().into(),
|
||||
is_paid: sales_person.is_paid,
|
||||
inactive: sales_person.inactive,
|
||||
deleted: sales_person
|
||||
.deleted
|
||||
|
|
@ -50,7 +52,7 @@ impl SalesPersonDao for SalesPersonDaoImpl {
|
|||
async fn all(&self) -> Result<Arc<[SalesPersonEntity]>, DaoError> {
|
||||
Ok(query_as!(
|
||||
SalesPersonDb,
|
||||
"SELECT id, name, background_color, inactive, deleted, update_version FROM sales_person WHERE deleted IS NULL"
|
||||
"SELECT id, name, background_color, is_paid, inactive, deleted, update_version FROM sales_person WHERE deleted IS NULL"
|
||||
)
|
||||
.fetch_all(self.pool.as_ref())
|
||||
.await
|
||||
|
|
@ -60,11 +62,26 @@ impl SalesPersonDao for SalesPersonDaoImpl {
|
|||
.collect::<Result<Arc<[SalesPersonEntity]>, DaoError>>()?
|
||||
)
|
||||
}
|
||||
|
||||
async fn all_paid(&self) -> Result<Arc<[SalesPersonEntity]>, DaoError> {
|
||||
Ok(query_as!(
|
||||
SalesPersonDb,
|
||||
"SELECT id, name, background_color, is_paid, inactive, deleted, update_version FROM sales_person WHERE deleted IS NULL AND is_paid = 1"
|
||||
)
|
||||
.fetch_all(self.pool.as_ref())
|
||||
.await
|
||||
.map_db_error()?
|
||||
.iter()
|
||||
.map(SalesPersonEntity::try_from)
|
||||
.collect::<Result<Arc<[SalesPersonEntity]>, DaoError>>()?
|
||||
)
|
||||
}
|
||||
|
||||
async fn find_by_id(&self, id: Uuid) -> Result<Option<SalesPersonEntity>, DaoError> {
|
||||
let id_vec = id.as_bytes().to_vec();
|
||||
Ok(query_as!(
|
||||
SalesPersonDb,
|
||||
"SELECT id, name, background_color, inactive, deleted, update_version FROM sales_person WHERE id = ?",
|
||||
"SELECT id, name, background_color, is_paid, inactive, deleted, update_version FROM sales_person WHERE id = ?",
|
||||
id_vec
|
||||
)
|
||||
.fetch_optional(self.pool.as_ref())
|
||||
|
|
@ -78,7 +95,7 @@ impl SalesPersonDao for SalesPersonDaoImpl {
|
|||
async fn find_by_user(&self, user_id: &str) -> Result<Option<SalesPersonEntity>, DaoError> {
|
||||
Ok(query_as!(
|
||||
SalesPersonDb,
|
||||
"SELECT sp.id, sp.name, sp.background_color, sp.inactive, sp.deleted, sp.update_version FROM sales_person sp JOIN sales_person_user spu ON sp.id = spu.sales_person_id WHERE spu.user_id = ?",
|
||||
"SELECT sp.id, sp.name, sp.background_color, sp.is_paid, sp.inactive, sp.deleted, sp.update_version FROM sales_person sp JOIN sales_person_user spu ON sp.id = spu.sales_person_id WHERE spu.user_id = ?",
|
||||
user_id
|
||||
)
|
||||
.fetch_optional(self.pool.as_ref())
|
||||
|
|
@ -94,9 +111,10 @@ impl SalesPersonDao for SalesPersonDaoImpl {
|
|||
let version = entity.version.as_bytes().to_vec();
|
||||
let name = entity.name.as_ref();
|
||||
let background_color = entity.background_color.as_ref();
|
||||
let is_paid = entity.is_paid;
|
||||
let inactive = entity.inactive;
|
||||
let deleted = entity.deleted.as_ref().map(|deleted| deleted.to_string());
|
||||
query!("INSERT INTO sales_person (id, name, background_color, inactive, deleted, update_version, update_process) VALUES (?, ?, ?, ?, ?, ?, ?)", id, name, background_color, inactive, deleted, version, process)
|
||||
query!("INSERT INTO sales_person (id, name, background_color, is_paid, inactive, deleted, update_version, update_process) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", id, name, background_color, is_paid, inactive, deleted, version, process)
|
||||
.execute(self.pool.as_ref())
|
||||
.await
|
||||
.map_db_error()?;
|
||||
|
|
@ -107,9 +125,10 @@ impl SalesPersonDao for SalesPersonDaoImpl {
|
|||
let version = entity.version.as_bytes().to_vec();
|
||||
let name = entity.name.as_ref();
|
||||
let background_color = entity.background_color.as_ref();
|
||||
let is_paid = entity.is_paid;
|
||||
let inactive = entity.inactive;
|
||||
let deleted = entity.deleted.as_ref().map(|deleted| deleted.to_string());
|
||||
query!("UPDATE sales_person SET name = ?, background_color = ?, inactive = ?, deleted = ?, update_version = ?, update_process = ? WHERE id = ?", name, background_color, inactive, deleted, version, process, id)
|
||||
query!("UPDATE sales_person SET name = ?, background_color = ?, is_paid = ?, inactive = ?, deleted = ?, update_version = ?, update_process = ? WHERE id = ?", name, background_color, is_paid, inactive, deleted, version, process, id)
|
||||
.execute(self.pool.as_ref())
|
||||
.await
|
||||
.map_db_error()?;
|
||||
|
|
@ -160,7 +179,7 @@ impl SalesPersonDao for SalesPersonDaoImpl {
|
|||
) -> Result<Option<SalesPersonEntity>, DaoError> {
|
||||
Ok(query_as!(
|
||||
SalesPersonDb,
|
||||
"SELECT sp.id, sp.name, sp.background_color, sp.inactive, sp.deleted, sp.update_version FROM sales_person sp JOIN sales_person_user spu ON sp.id = spu.sales_person_id WHERE spu.user_id = ?",
|
||||
"SELECT sp.id, sp.name, sp.background_color, sp.is_paid, sp.inactive, sp.deleted, sp.update_version FROM sales_person sp JOIN sales_person_user spu ON sp.id = spu.sales_person_id WHERE spu.user_id = ?",
|
||||
user_id
|
||||
)
|
||||
.fetch_optional(self.pool.as_ref())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue