forked from JohnnyCrazy/SpotifyAPI-NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGeneralModels.cs
More file actions
160 lines (125 loc) · 3.35 KB
/
GeneralModels.cs
File metadata and controls
160 lines (125 loc) · 3.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
// TODO: go through spotify docs and add nullable types
namespace SpotifyAPI.Web.Models
{
public class Image
{
[JsonPropertyName("url")]
public string Url { get; set; }
[JsonPropertyName("width")]
public int? Width { get; set; }
[JsonPropertyName("height")]
public int? Height { get; set; }
}
public class ErrorResponse : BasicModel
{ }
public class Error
{
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("message")]
public string Message { get; set; }
}
public class PlaylistTrackCollection
{
[JsonPropertyName("href")]
public string Href { get; set; }
[JsonPropertyName("total")]
public int Total { get; set; }
}
public class Followers
{
[JsonPropertyName("href")]
public string Href { get; set; }
[JsonPropertyName("total")]
public int Total { get; set; }
}
public class PlaylistTrack
{
[JsonPropertyName("added_at")]
public DateTime AddedAt { get; set; }
[JsonPropertyName("added_by")]
public PublicProfile AddedBy { get; set; }
[JsonPropertyName("track")]
public FullTrack Track { get; set; }
[JsonPropertyName("is_local")]
public bool IsLocal { get; set; }
}
public class DeleteTrackUri
{
/// <summary>
/// Delete-Track Wrapper
/// </summary>
/// <param name="uri">An Spotify-URI</param>
/// <param name="positions">Optional positions</param>
public DeleteTrackUri(string uri, params int[] positions)
{
Positions = positions.ToList();
Uri = uri;
}
[JsonPropertyName("uri")]
public string Uri { get; set; }
[JsonPropertyName("positions")]
public List<int> Positions { get; set; }
public bool ShouldSerializePositions()
{
return Positions.Count > 0;
}
}
public class Copyright
{
[JsonPropertyName("text")]
public string Text { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
}
public class LinkedFrom
{
[JsonPropertyName("external_urls")]
public Dictionary<string, string> ExternalUrls { get; set; }
[JsonPropertyName("href")]
public string Href { get; set; }
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("uri")]
public string Uri { get; set; }
}
public class SavedTrack
{
[JsonPropertyName("added_at")]
public DateTime AddedAt { get; set; }
[JsonPropertyName("track")]
public FullTrack Track { get; set; }
}
public class SavedAlbum
{
[JsonPropertyName("added_at")]
public DateTime AddedAt { get; set; }
[JsonPropertyName("album")]
public FullAlbum Album { get; set; }
}
public class Cursor
{
[JsonPropertyName("after")]
public string After { get; set; }
[JsonPropertyName("before")]
public string Before { get; set; }
}
public class Context
{
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("href")]
public string Href { get; set; }
[JsonPropertyName("external_urls")]
public Dictionary<string, string> ExternalUrls { get; set; }
[JsonPropertyName("uri")]
public string Uri { get; set; }
}
}