ddex_core/models/graph/
party.rs1use crate::models::common::{Identifier, LocalizedString};
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct Party {
9 pub party_id: Vec<Identifier>,
10 pub isni: Option<String>,
11 pub ipi: Option<String>,
12 pub party_name: Vec<LocalizedString>,
13 pub party_role: Vec<PartyRole>,
14 pub contact_details: Option<ContactDetails>,
15}
16
17#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18pub enum PartyRole {
19 Artist,
20 Producer,
21 Composer,
22 Lyricist,
23 Publisher,
24 Performer,
25 Engineer,
26 Label,
27 Distributor,
28 Other(String),
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct ContactDetails {
33 pub email: Option<String>,
34 pub phone: Option<String>,
35 pub address: Option<String>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct Artist {
40 pub party_reference: Option<String>,
41 pub artist_role: Vec<String>,
42 pub display_artist_name: Vec<LocalizedString>,
43 pub sequence_number: Option<i32>,
44}