Compare commits

..

3 Commits

Author SHA1 Message Date
Rob Loranger 316b67c596
Fix typo and add rust market links
Adds links to the rust meta extension and the VScode rust page
2023-10-21 16:25:16 -07:00
Rob Loranger 57610d69dc
fix pre-commit filename typo 2023-10-19 17:44:01 -07:00
Rob Loranger 39868563af
add formatting doc and pre-commit 2023-10-19 17:39:57 -07:00
1 changed files with 35 additions and 49 deletions

View File

@ -185,6 +185,7 @@ struct Track {
is_available: bool, is_available: bool,
preview_source: Option<String>, preview_source: Option<String>,
source: String, source: String,
price: Option<rusty_money::Money>,
created_by: PersonId, created_by: PersonId,
created_at: chrono::DateTime, created_at: chrono::DateTime,
modified_by: PersonId, modified_by: PersonId,
@ -217,6 +218,7 @@ struct Album {
is_available: bool, is_available: bool,
preview_source: Option<String>, preview_source: Option<String>,
source: String, source: String,
price: Option<rusty_money::Money>,
created_by: PersonId, created_by: PersonId,
created_at: chrono::DateTime, created_at: chrono::DateTime,
modified_by: PersonId, modified_by: PersonId,
@ -287,14 +289,23 @@ struct Article {
A Comment represents a textual comment that a Person wants to attach contextually to an Artist, an Album, a Track, or a Playlist. A Comment represents a textual comment that a Person wants to attach contextually to an Artist, an Album, a Track, or a Playlist.
``` rust ``` rust
enum CommentTarget { enum CommentTargetType {
Label(LabelId), Label,
Artist(ArtistId), Artist,
Album(AlbumId), Album,
Track(TrackId), Track,
Playlist(PlaylistId), Playlist,
Article(ArticleId), Article,
Comment(CommentId), Comment,
}
struct CommentTargetId {
label_id: Option<LabelId>,
artist_id: Option<ArtistId>,
album_id: Option<AlbumId>,
track_id: Option<TrackId>,
playlist_id: Option<PlaylistId>,
article_id: Option<ArticleId>,
comment_id: Option<CommentId>,
} }
struct CommentId { struct CommentId {
id: String, id: String,
@ -302,7 +313,8 @@ struct CommentId {
struct Comment { struct Comment {
id: CommentId, id: CommentId,
body: String, body: String,
target: CommentTarget, target_type: CommentTargetType,
target_id: CommentTargetId,
created_by: PersonId, created_by: PersonId,
created_at: chrono::DateTime, created_at: chrono::DateTime,
modified_by: Option<PersonId>, modified_by: Option<PersonId>,
@ -393,6 +405,7 @@ struct Collection {
albums: Option<Vec<Album>>, albums: Option<Vec<Album>>,
tracks: Option<Vec<Track>>, tracks: Option<Vec<Track>>,
other_products: Option<Vec<OtherProduct>>, other_products: Option<Vec<OtherProduct>>,
price: Option<rusty_money::Money>,
} }
``` ```
@ -416,7 +429,7 @@ struct OtherProduct {
is_available: bool, is_available: bool,
deleted_by: Option<PersonId>, deleted_by: Option<PersonId>,
deleted_at: Option<chrono::DateTime>, deleted_at: Option<chrono::DateTime>,
requires_shipping: bool, price: Option<rusty_money::Money>
} }
``` ```
@ -426,10 +439,10 @@ A Purchase represents one or more Tracks or Albums that a Person purchases from
``` rust ``` rust
enum PurchaseItemType { enum PurchaseItemType {
Album(AlbumId), Album,
Track(TrackId), Track,
Collection(CollectionId), Collection,
OtherProduct(OtherProductId), OtherProduct,
} }
struct PurchaseItemId { struct PurchaseItemId {
id: String, id: String,
@ -439,15 +452,18 @@ struct SkuId {
} }
struct Sku { struct Sku {
id: SkuId, id: SkuId,
item: PurchaseItemType, album_id: Option<AlbumId>,
track_id: Option<TrackId>,
collection_id: Option<CollectionId>,
other_product_id: Option<OtherProductId>,
variant: Option<String>, variant: Option<String>,
description: Option<String>, discount_percentage: Option<f64>,
price: Option<rusty_money::Money>, discount_flatrate: Option<rusty_money::Money>,
requires_shipping: bool,
} }
struct PurchaseItem { struct PurchaseItem {
id: PurchaseItemId, id: PurchaseItemId,
sku: SkuId, type: PurchaseItemType,
sku: Option<SkuId>,
quantity: usize, quantity: usize,
} }
enum PurchaseState { enum PurchaseState {
@ -465,35 +481,5 @@ struct Purchase {
state: PurchaseState, state: PurchaseState,
purchased_by: Person, purchased_by: Person,
purchased_at: Option<chrono::DateTime>, purchased_at: Option<chrono::DateTime>,
fulfilled_by: Option<Person>,
fulfilled_at: Option<chrono::DateTime>,
} }
``` ```
# CouponCode
A CouponCode represents a code a Person can enter to receive a discount on a PurchateItem or on a Purchase.
``` rust
struct CouponCodeId {
id: String,
}
struct CouponCode {
id: CouponCodeId,
name: String,
code: String,
uses: usize,
max_uses: usize,
expiration: Option<chrono::DateTime>,
discount_flat: Option<rusty_money::Money>,
discount_percentage: Option<f32>,
skus: Option<Vec<SkuId>>,
is_active: bool,
created_by: PersonId,
created_at: chrono::DateTime,
modified_by: PersonId,
modified_at: chrono::DateTime,
deleted_by: Option<PersonId>,
deleted_at: Option<chrono::DateTime>,
}
```