toasty_driver_integration_suite/scenarios/
has_many_same_target.rs1use 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}