diff options
author | Adam T. Carpenter <atc@53hor.net> | 2020-10-31 10:14:31 -0400 |
---|---|---|
committer | Adam T. Carpenter <atc@53hor.net> | 2020-10-31 10:14:31 -0400 |
commit | 3e1eadbbfdca1b2c0cb32ba4c8e1160a60e0ccb8 (patch) | |
tree | 3b712bc31a6db0a16ddfd4a02529d8b2497a5c54 /dichroism/src/repo/entities/product.rs | |
parent | 00c71f6baff136a88805ca2e3f9ef72453ac9f35 (diff) | |
download | theglassyladies-3e1eadbbfdca1b2c0cb32ba4c8e1160a60e0ccb8.tar.xz theglassyladies-3e1eadbbfdca1b2c0cb32ba4c8e1160a60e0ccb8.zip |
All basic functionality implemented.
Diffstat (limited to 'dichroism/src/repo/entities/product.rs')
-rw-r--r-- | dichroism/src/repo/entities/product.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dichroism/src/repo/entities/product.rs b/dichroism/src/repo/entities/product.rs new file mode 100644 index 0000000..e6ba223 --- /dev/null +++ b/dichroism/src/repo/entities/product.rs @@ -0,0 +1,38 @@ +use crate::models; +use crate::schema::products; + +#[derive(Debug, Clone, Identifiable, Queryable)] +pub struct Product { + pub id: i32, + pub name: String, + pub description: String, + pub quantity: i32, + pub cents: i32, + pub featured: i32, + pub photo_set_id: i32, + pub original: String, + pub fullsize: String, + pub base: String, + pub thumbnail: String, +} + +impl Into<models::Product> for Product { + fn into(self) -> models::Product { + models::Product { + id: Some(self.id), + name: self.name, + description: self.description, + quantity: self.quantity, + cents: self.cents, + featured: self.featured != 0, // TODO: is this safe? + category: String::new(), // TODO: real category + photo_set: models::PhotoSet { + id: Some(self.photo_set_id), + original: models::Photo::new(self.original), + fullsize: models::Photo::new(self.fullsize), + base: models::Photo::new(self.base), + thumbnail: models::Photo::new(self.thumbnail), + }, + } + } +} |