Compare commits
	
		
			2 Commits
		
	
	
		
			docs-forma
			...
			docs-forma
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 57610d69dc | |||
| 39868563af | 
| @ -12,7 +12,7 @@ To check if your code is formatted without making changes, run `cargo fmt --chec | ||||
|  | ||||
| ### VScode | ||||
|  | ||||
| We recommend the meta extension [Rust Bundle](https://marketplace.visualstudio.com/items?itemName=1YiB.rust-bundle) , which includes rust-analyzer. ([More info](https://code.visualstudio.com/docs/languages/rust) on Rust with VScode) Then to set your editor to format on save: | ||||
| We recommend the meta extension Rust, which includes rust-analyzer. Then to set your editor to format on save: | ||||
|  | ||||
| * In Visual Studio Code, press Control + Shift + P or Command + Shift + P (Mac) to open the command palette and type setting and then select Preferences: Open User Settings option. | ||||
| * Search for format on save setting and check the checkbox. | ||||
| @ -27,4 +27,4 @@ You will first need to [install rust-analyzer](https://rust-analyzer.github.io/m | ||||
|  | ||||
| If you want to think about formatting your code less and just have git yell at you whe you try to commit code that is not properly formatted, you can use a simple pre-commit hook. | ||||
|  | ||||
| After cloning the repo, move the file `pre-commit` to `.git/hooks/pre-commit`. That's it. | ||||
| After cloning the repo, the file `pre-commit` to `.git/hooks/pre-commit`. That's it. | ||||
							
								
								
									
										84
									
								
								MODELS.md
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								MODELS.md
									
									
									
									
									
								
							| @ -185,6 +185,7 @@ struct Track { | ||||
|     is_available: bool, | ||||
|     preview_source: Option<String>, | ||||
|     source: String, | ||||
|     price: Option<rusty_money::Money>, | ||||
|     created_by: PersonId, | ||||
|     created_at: chrono::DateTime, | ||||
|     modified_by: PersonId, | ||||
| @ -217,6 +218,7 @@ struct Album { | ||||
|     is_available: bool, | ||||
|     preview_source: Option<String>, | ||||
|     source: String, | ||||
|     price: Option<rusty_money::Money>, | ||||
|     created_by: PersonId, | ||||
|     created_at: chrono::DateTime, | ||||
|     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. | ||||
|  | ||||
| ``` rust | ||||
| enum CommentTarget { | ||||
|     Label(LabelId), | ||||
|     Artist(ArtistId), | ||||
|     Album(AlbumId), | ||||
|     Track(TrackId), | ||||
|     Playlist(PlaylistId), | ||||
|     Article(ArticleId), | ||||
|     Comment(CommentId), | ||||
| enum CommentTargetType { | ||||
|     Label, | ||||
|     Artist, | ||||
|     Album, | ||||
|     Track, | ||||
|     Playlist, | ||||
|     Article, | ||||
|     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 { | ||||
|     id: String, | ||||
| @ -302,7 +313,8 @@ struct CommentId { | ||||
| struct Comment { | ||||
|     id: CommentId, | ||||
|     body: String, | ||||
|     target: CommentTarget, | ||||
|     target_type: CommentTargetType, | ||||
|     target_id: CommentTargetId, | ||||
|     created_by: PersonId, | ||||
|     created_at: chrono::DateTime, | ||||
|     modified_by: Option<PersonId>, | ||||
| @ -393,6 +405,7 @@ struct Collection { | ||||
|     albums: Option<Vec<Album>>, | ||||
|     tracks: Option<Vec<Track>>, | ||||
|     other_products: Option<Vec<OtherProduct>>, | ||||
|     price: Option<rusty_money::Money>, | ||||
| } | ||||
| ``` | ||||
|  | ||||
| @ -416,7 +429,7 @@ struct OtherProduct { | ||||
|     is_available: bool, | ||||
|     deleted_by: Option<PersonId>, | ||||
|     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 | ||||
| enum PurchaseItemType { | ||||
|     Album(AlbumId), | ||||
|     Track(TrackId), | ||||
|     Collection(CollectionId), | ||||
|     OtherProduct(OtherProductId), | ||||
|     Album, | ||||
|     Track, | ||||
|     Collection, | ||||
|     OtherProduct, | ||||
| } | ||||
| struct PurchaseItemId { | ||||
|     id: String, | ||||
| @ -439,15 +452,18 @@ struct SkuId { | ||||
| } | ||||
| struct Sku { | ||||
|     id: SkuId, | ||||
|     item: PurchaseItemType, | ||||
|     album_id: Option<AlbumId>, | ||||
|     track_id: Option<TrackId>, | ||||
|     collection_id: Option<CollectionId>, | ||||
|     other_product_id: Option<OtherProductId>, | ||||
|     variant: Option<String>, | ||||
|     description: Option<String>, | ||||
|     price: Option<rusty_money::Money>, | ||||
|     requires_shipping: bool, | ||||
|     discount_percentage: Option<f64>, | ||||
|     discount_flatrate: Option<rusty_money::Money>, | ||||
| } | ||||
| struct PurchaseItem { | ||||
|     id: PurchaseItemId, | ||||
|     sku: SkuId, | ||||
|     type: PurchaseItemType, | ||||
|     sku: Option<SkuId>, | ||||
|     quantity: usize, | ||||
| } | ||||
| enum PurchaseState { | ||||
| @ -465,35 +481,5 @@ struct Purchase { | ||||
|     state: PurchaseState, | ||||
|     purchased_by: Person, | ||||
|     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>, | ||||
| } | ||||
| ``` | ||||
		Reference in New Issue
	
	Block a user
	