Compare commits
6 Commits
ab9aed00ab
...
b98fd1352a
Author | SHA1 | Date |
---|---|---|
cascode | b98fd1352a | |
cascode | a27214c8da | |
cascode | b53c875eac | |
cascode | 0e92eda123 | |
Sundog | abe545397b | |
Sundog | cb3f76aa17 |
|
@ -0,0 +1,16 @@
|
||||||
|
name: checks
|
||||||
|
on:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs_on: "alpine_amd64"
|
||||||
|
container:
|
||||||
|
image: "rust:1.73-alpine3.18"
|
||||||
|
name: format
|
||||||
|
steps:
|
||||||
|
- name: TODO put in image base
|
||||||
|
run: rustup component add rustfmt
|
||||||
|
- name: rustfmt
|
||||||
|
run: cargo fmt --check
|
84
MODELS.md
84
MODELS.md
|
@ -185,7 +185,6 @@ 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,
|
||||||
|
@ -218,7 +217,6 @@ 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,
|
||||||
|
@ -289,23 +287,14 @@ 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 CommentTargetType {
|
enum CommentTarget {
|
||||||
Label,
|
Label(LabelId),
|
||||||
Artist,
|
Artist(ArtistId),
|
||||||
Album,
|
Album(AlbumId),
|
||||||
Track,
|
Track(TrackId),
|
||||||
Playlist,
|
Playlist(PlaylistId),
|
||||||
Article,
|
Article(ArticleId),
|
||||||
Comment,
|
Comment(CommentId),
|
||||||
}
|
|
||||||
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,
|
||||||
|
@ -313,8 +302,7 @@ struct CommentId {
|
||||||
struct Comment {
|
struct Comment {
|
||||||
id: CommentId,
|
id: CommentId,
|
||||||
body: String,
|
body: String,
|
||||||
target_type: CommentTargetType,
|
target: CommentTarget,
|
||||||
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>,
|
||||||
|
@ -405,7 +393,6 @@ 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>,
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -429,7 +416,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>,
|
||||||
price: Option<rusty_money::Money>
|
requires_shipping: bool,
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -439,10 +426,10 @@ A Purchase represents one or more Tracks or Albums that a Person purchases from
|
||||||
|
|
||||||
``` rust
|
``` rust
|
||||||
enum PurchaseItemType {
|
enum PurchaseItemType {
|
||||||
Album,
|
Album(AlbumId),
|
||||||
Track,
|
Track(TrackId),
|
||||||
Collection,
|
Collection(CollectionId),
|
||||||
OtherProduct,
|
OtherProduct(OtherProductId),
|
||||||
}
|
}
|
||||||
struct PurchaseItemId {
|
struct PurchaseItemId {
|
||||||
id: String,
|
id: String,
|
||||||
|
@ -452,18 +439,15 @@ struct SkuId {
|
||||||
}
|
}
|
||||||
struct Sku {
|
struct Sku {
|
||||||
id: SkuId,
|
id: SkuId,
|
||||||
album_id: Option<AlbumId>,
|
item: PurchaseItemType,
|
||||||
track_id: Option<TrackId>,
|
|
||||||
collection_id: Option<CollectionId>,
|
|
||||||
other_product_id: Option<OtherProductId>,
|
|
||||||
variant: Option<String>,
|
variant: Option<String>,
|
||||||
discount_percentage: Option<f64>,
|
description: Option<String>,
|
||||||
discount_flatrate: Option<rusty_money::Money>,
|
price: Option<rusty_money::Money>,
|
||||||
|
requires_shipping: bool,
|
||||||
}
|
}
|
||||||
struct PurchaseItem {
|
struct PurchaseItem {
|
||||||
id: PurchaseItemId,
|
id: PurchaseItemId,
|
||||||
type: PurchaseItemType,
|
sku: SkuId,
|
||||||
sku: Option<SkuId>,
|
|
||||||
quantity: usize,
|
quantity: usize,
|
||||||
}
|
}
|
||||||
enum PurchaseState {
|
enum PurchaseState {
|
||||||
|
@ -481,5 +465,35 @@ 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>,
|
||||||
}
|
}
|
||||||
```
|
```
|
Loading…
Reference in New Issue