Skip to main content

toasty_driver_integration_suite/scenarios/
has_many_same_target.rs

1use crate::prelude::*;
2
3scenario! {
4    #![id(ID)]
5
6    #[derive(Debug, toasty::Model)]
7    struct User {
8        #[key]
9        #[auto]
10        id: ID,
11
12        name: String,
13
14        #[has_many(pair = author)]
15        authored_articles: toasty::HasMany<Article>,
16
17        #[has_many(pair = reviewer)]
18        reviewed_articles: toasty::HasMany<Article>,
19    }
20
21    #[derive(Debug, toasty::Model)]
22    struct Article {
23        #[key]
24        #[auto]
25        id: ID,
26
27        title: String,
28
29        #[index]
30        author_id: ID,
31
32        #[index]
33        reviewer_id: ID,
34
35        #[belongs_to(key = author_id, references = id)]
36        author: toasty::BelongsTo<User>,
37
38        #[belongs_to(key = reviewer_id, references = id)]
39        reviewer: toasty::BelongsTo<User>,
40    }
41
42    async fn setup(test: &mut Test) -> toasty::Db {
43        test.setup_db(models!(User, Article)).await
44    }
45}