summaryrefslogtreecommitdiff
path: root/dichroism/src/repo/entities/product.rs
blob: e6ba2233ef0abc79dbebd3d36bf2bc77051817df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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),
            },
        }
    }
}