From e1d812ab0f6ae85df7c55c3570d0dcd039e63ceb Mon Sep 17 00:00:00 2001 From: Kamran Ayub Date: Sun, 19 May 2019 10:06:49 -0500 Subject: [PATCH] Building out models --- .vscode/settings.json | 4 +++ IGDB/Models/Collection.cs | 20 ++++++++++++++ IGDB/Models/Company.cs | 45 +++++++++++++++++++++++++++++++ IGDB/Models/CompanyLogo.cs | 6 +++++ IGDB/Models/CompanyWebsite.cs | 6 +++++ IGDB/Models/ExternalGame.cs | 34 +++++++++++++++++++++++ IGDB/Models/Franchise.cs | 14 ++++++++++ IGDB/Models/Game.cs | 46 ++++++++++++++++---------------- IGDB/Models/GameEngine.cs | 23 ++++++++++++++++ IGDB/Models/GameEngineLogo.cs | 6 +++++ IGDB/Models/GameMode.cs | 14 ++++++++++ IGDB/Models/GameVideo.cs | 6 +++++ IGDB/Models/Genre.cs | 2 +- IGDB/Models/ITimestamps.cs | 10 +++++++ IGDB/Models/InvolvedCompany.cs | 6 +++++ IGDB/Models/Keyword.cs | 6 +++++ IGDB/Models/MultiplayerMode.cs | 6 +++++ IGDB/Models/Platform.cs | 6 +++++ IGDB/Models/PlayerPerspective.cs | 6 +++++ IGDB/Models/ReleaseDate.cs | 6 +++++ IGDB/Models/Screenshot.cs | 6 +++++ IGDB/Models/Series.cs | 16 ----------- IGDB/Models/Tag.cs | 6 +++++ IGDB/Models/Theme.cs | 6 +++++ IGDB/Models/TimeToBeat.cs | 6 +++++ IGDB/Models/Website.cs | 6 +++++ 26 files changed, 278 insertions(+), 40 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 IGDB/Models/Collection.cs create mode 100644 IGDB/Models/Company.cs create mode 100644 IGDB/Models/CompanyLogo.cs create mode 100644 IGDB/Models/CompanyWebsite.cs create mode 100644 IGDB/Models/ExternalGame.cs create mode 100644 IGDB/Models/Franchise.cs create mode 100644 IGDB/Models/GameEngine.cs create mode 100644 IGDB/Models/GameEngineLogo.cs create mode 100644 IGDB/Models/GameMode.cs create mode 100644 IGDB/Models/GameVideo.cs create mode 100644 IGDB/Models/ITimestamps.cs create mode 100644 IGDB/Models/InvolvedCompany.cs create mode 100644 IGDB/Models/Keyword.cs create mode 100644 IGDB/Models/MultiplayerMode.cs create mode 100644 IGDB/Models/Platform.cs create mode 100644 IGDB/Models/PlayerPerspective.cs create mode 100644 IGDB/Models/ReleaseDate.cs create mode 100644 IGDB/Models/Screenshot.cs delete mode 100644 IGDB/Models/Series.cs create mode 100644 IGDB/Models/Tag.cs create mode 100644 IGDB/Models/Theme.cs create mode 100644 IGDB/Models/TimeToBeat.cs create mode 100644 IGDB/Models/Website.cs diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4f46c77 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.detectIndentation": false, + "editor.tabSize": 2 +} \ No newline at end of file diff --git a/IGDB/Models/Collection.cs b/IGDB/Models/Collection.cs new file mode 100644 index 0000000..5a93955 --- /dev/null +++ b/IGDB/Models/Collection.cs @@ -0,0 +1,20 @@ +using System; +using Newtonsoft.Json; + +namespace IGDB +{ + public class Collection : ITimestamps + { + public DateTimeOffset? CreatedAt { get; set; } + + public IdentitiesOrValues Games { get; set; } + + public string Name { get; set; } + + public string Slug { get; set; } + + public DateTimeOffset? UpdatedAt { get; set; } + + public string Url { get; set; } + } +} \ No newline at end of file diff --git a/IGDB/Models/Company.cs b/IGDB/Models/Company.cs new file mode 100644 index 0000000..ee01b0a --- /dev/null +++ b/IGDB/Models/Company.cs @@ -0,0 +1,45 @@ +using System; + +namespace IGDB +{ + public class Company : ITimestamps + { + public DateTimeOffset? ChangeDate { get; set; } + public ChangeDateCategory ChangeDateCategory { get; set; } + public IdentityOrValue ChangedCompanyId { get; set; } + + /// + /// ISO 3166-1 country code + /// + public int? Country { get; set; } + + public DateTimeOffset? CreatedAt { get; set; } + + public string Description { get; set; } + + public IdentitiesOrValues Developed { get; set; } + + public IdentityOrValue Logo { get; set; } + + public string Name { get; set; } + public IdentityOrValue Parent { get; set; } + public IdentitiesOrValues Published { get; set; } + public string Slug { get; set; } + public DateTimeOffset? StartDate { get; set; } + public StartDateCategory StartDateCategory { get; set; } + public DateTimeOffset? UpdatedAt { get; set; } + public string Url { get; set; } + public IdentitiesOrValues Websites { get; set; } + + } + + public enum ChangeDateCategory + { + + } + + public enum StartDateCategory + { + + } +} \ No newline at end of file diff --git a/IGDB/Models/CompanyLogo.cs b/IGDB/Models/CompanyLogo.cs new file mode 100644 index 0000000..670af4b --- /dev/null +++ b/IGDB/Models/CompanyLogo.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class CompanyLogo + { + } +} \ No newline at end of file diff --git a/IGDB/Models/CompanyWebsite.cs b/IGDB/Models/CompanyWebsite.cs new file mode 100644 index 0000000..7b380a3 --- /dev/null +++ b/IGDB/Models/CompanyWebsite.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class CompanyWebsite + { + } +} \ No newline at end of file diff --git a/IGDB/Models/ExternalGame.cs b/IGDB/Models/ExternalGame.cs new file mode 100644 index 0000000..0245a05 --- /dev/null +++ b/IGDB/Models/ExternalGame.cs @@ -0,0 +1,34 @@ +using System; + +namespace IGDB +{ + public class ExternalGame : ITimestamps + { + public ExternalCategory? Category { get; set; } + + public DateTimeOffset? CreatedAt { get; set; } + + public IdentityOrValue Game { get; set; } + + public string Name { get; set; } + + public string Uid { get; set; } + + public DateTimeOffset? UpdatedAt { get; set; } + + public string Url { get; set; } + + public int? Year { get; set; } + } + + public enum ExternalCategory + { + Steam = 1, + GOG = 5, + YouTube = 10, + Microsoft = 11, + Apple = 13, + Twitch = 14, + Android = 15 + } +} \ No newline at end of file diff --git a/IGDB/Models/Franchise.cs b/IGDB/Models/Franchise.cs new file mode 100644 index 0000000..2d3e3c5 --- /dev/null +++ b/IGDB/Models/Franchise.cs @@ -0,0 +1,14 @@ +using System; + +namespace IGDB +{ + public class Franchise : ITimestamps + { + public DateTimeOffset? CreatedAt { get; set; } + public DateTimeOffset? UpdatedAt { get; set; } + public IdentitiesOrValues Games { get; set; } + public string Name { get; set; } + public string Slug { get; set; } + public string Url { get; set; } + } +} \ No newline at end of file diff --git a/IGDB/Models/Game.cs b/IGDB/Models/Game.cs index 53b86b2..5376ac5 100644 --- a/IGDB/Models/Game.cs +++ b/IGDB/Models/Game.cs @@ -3,7 +3,7 @@ namespace IGDB { - public class Game + public class Game : ITimestamps { public int? AgeRatings { get; set; } @@ -19,29 +19,29 @@ public class Game public Category? Category { get; set; } - public IdentityOrValue Collection { get; set; } + public IdentityOrValue Collection { get; set; } public IdentityOrValue Cover { get; set; } public DateTimeOffset? CreatedAt { get; set; } public IdentitiesOrValues Dlcs { get; set; } - + public IdentitiesOrValues Expansions { get; set; } - public int[] ExternalGames { get; set; } + public IdentitiesOrValues ExternalGames { get; set; } public DateTimeOffset? FirstReleaseDate { get; set; } public int? Follows { get; set; } - public int? Franchise { get; set; } + public IdentityOrValue Franchise { get; set; } - public int[] Franchises { get; set; } + public IdentitiesOrValues Franchises { get; set; } - public int[] GameEngines { get; set; } + public IdentitiesOrValues GameEngines { get; set; } - public int[] GameModes { get; set; } + public IdentitiesOrValues GameModes { get; set; } public IdentitiesOrValues Genres { get; set; } @@ -49,19 +49,19 @@ public class Game public int? Id { get; set; } - public int[] InvolvedCompanies { get; set; } + public IdentitiesOrValues InvolvedCompanies { get; set; } - public int[] Keywords { get; set; } + public IdentitiesOrValues Keywords { get; set; } - public int[] MultiplayerModes { get; set; } + public IdentitiesOrValues MultiplayerModes { get; set; } public string Name { get; set; } - public int? ParentGame { get; set; } + public IdentityOrValue ParentGame { get; set; } - public int[] Platforms { get; set; } + public IdentitiesOrValues Platforms { get; set; } - public int[] PlayerPerspectives { get; set; } + public IdentitiesOrValues PlayerPerspectives { get; set; } public double? Popularity { get; set; } @@ -71,15 +71,15 @@ public class Game public int? RatingCount { get; set; } - public int[] ReleaseDates { get; set; } + public IdentitiesOrValues ReleaseDates { get; set; } - public int[] Screenshots { get; set; } + public IdentitiesOrValues Screenshots { get; set; } public IdentitiesOrValues SimilarGames { get; set; } public string Slug { get; set; } - public int[] StandaloneExpansions { get; set; } + public IdentitiesOrValues StandaloneExpansions { get; set; } public GameStatus Status { get; set; } @@ -87,11 +87,11 @@ public class Game public string Summary { get; set; } - public int[] Tags { get; set; } + public IdentitiesOrValues Tags { get; set; } - public int[] Themes { get; set; } + public IdentitiesOrValues Themes { get; set; } - public int? TimeToBeat { get; set; } + public IdentityOrValue TimeToBeat { get; set; } public double? TotalRating { get; set; } @@ -101,13 +101,13 @@ public class Game public string Url { get; set; } - public int? VersionParent { get; set; } + public IdentityOrValue VersionParent { get; set; } public string VersionTitle { get; set; } - public int[] Videos { get; set; } + public IdentitiesOrValues Videos { get; set; } - public int[] Websites { get; set; } + public IdentitiesOrValues Websites { get; set; } } public enum Category diff --git a/IGDB/Models/GameEngine.cs b/IGDB/Models/GameEngine.cs new file mode 100644 index 0000000..8792f65 --- /dev/null +++ b/IGDB/Models/GameEngine.cs @@ -0,0 +1,23 @@ +using System; + +namespace IGDB +{ + public class GameEngine : ITimestamps + { + public IdentitiesOrValues Companies { get; set; } + + public DateTimeOffset? CreatedAt { get; set; } + + public string Description { get; set; } + public IdentityOrValue Logo { get; set; } + + public string Name { get; set; } + + public IdentitiesOrValues Platforms { get; set; } + + public string Slug { get; set; } + + public DateTimeOffset? UpdatedAt { get; set; } + public string Url { get; set; } + } +} \ No newline at end of file diff --git a/IGDB/Models/GameEngineLogo.cs b/IGDB/Models/GameEngineLogo.cs new file mode 100644 index 0000000..4de88cb --- /dev/null +++ b/IGDB/Models/GameEngineLogo.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class GameEngineLogo + { + } +} \ No newline at end of file diff --git a/IGDB/Models/GameMode.cs b/IGDB/Models/GameMode.cs new file mode 100644 index 0000000..440aa43 --- /dev/null +++ b/IGDB/Models/GameMode.cs @@ -0,0 +1,14 @@ +using System; + +namespace IGDB +{ + public class GameMode : ITimestamps + { + public DateTimeOffset? CreatedAt { get; set; } + + public string Name { get; set; } + public string Slug { get; set; } + public DateTimeOffset? UpdatedAt { get; set; } + public string Url { get; set; } + } +} \ No newline at end of file diff --git a/IGDB/Models/GameVideo.cs b/IGDB/Models/GameVideo.cs new file mode 100644 index 0000000..9e55c29 --- /dev/null +++ b/IGDB/Models/GameVideo.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class GameVideo + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Genre.cs b/IGDB/Models/Genre.cs index 2115698..60ec977 100644 --- a/IGDB/Models/Genre.cs +++ b/IGDB/Models/Genre.cs @@ -3,7 +3,7 @@ namespace IGDB { - public class Genre + public class Genre : ITimestamps { public DateTimeOffset? CreatedAt { get; set; } diff --git a/IGDB/Models/ITimestamps.cs b/IGDB/Models/ITimestamps.cs new file mode 100644 index 0000000..c48d39a --- /dev/null +++ b/IGDB/Models/ITimestamps.cs @@ -0,0 +1,10 @@ +using System; + +namespace IGDB +{ + public interface ITimestamps + { + DateTimeOffset? CreatedAt { get; set; } + DateTimeOffset? UpdatedAt { get; set; } + } +} \ No newline at end of file diff --git a/IGDB/Models/InvolvedCompany.cs b/IGDB/Models/InvolvedCompany.cs new file mode 100644 index 0000000..3368eb9 --- /dev/null +++ b/IGDB/Models/InvolvedCompany.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class InvolvedCompany + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Keyword.cs b/IGDB/Models/Keyword.cs new file mode 100644 index 0000000..dccadbd --- /dev/null +++ b/IGDB/Models/Keyword.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class Keyword + { + } +} \ No newline at end of file diff --git a/IGDB/Models/MultiplayerMode.cs b/IGDB/Models/MultiplayerMode.cs new file mode 100644 index 0000000..a965a7a --- /dev/null +++ b/IGDB/Models/MultiplayerMode.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class MultiplayerMode + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Platform.cs b/IGDB/Models/Platform.cs new file mode 100644 index 0000000..76c819b --- /dev/null +++ b/IGDB/Models/Platform.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class Platform + { + } +} \ No newline at end of file diff --git a/IGDB/Models/PlayerPerspective.cs b/IGDB/Models/PlayerPerspective.cs new file mode 100644 index 0000000..a2a558a --- /dev/null +++ b/IGDB/Models/PlayerPerspective.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class PlayerPerspective + { + } +} \ No newline at end of file diff --git a/IGDB/Models/ReleaseDate.cs b/IGDB/Models/ReleaseDate.cs new file mode 100644 index 0000000..99580a9 --- /dev/null +++ b/IGDB/Models/ReleaseDate.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class ReleaseDate + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Screenshot.cs b/IGDB/Models/Screenshot.cs new file mode 100644 index 0000000..be7f1fd --- /dev/null +++ b/IGDB/Models/Screenshot.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class Screenshot + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Series.cs b/IGDB/Models/Series.cs deleted file mode 100644 index eb152aa..0000000 --- a/IGDB/Models/Series.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using Newtonsoft.Json; - -namespace IGDB -{ - public class Series - { - public DateTimeOffset CreatedAt { get; set; } - - public int[] Games { get; set; } - - public string Name { get; set; } - - public string Slug { get; set; } - } -} \ No newline at end of file diff --git a/IGDB/Models/Tag.cs b/IGDB/Models/Tag.cs new file mode 100644 index 0000000..f78cff4 --- /dev/null +++ b/IGDB/Models/Tag.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class Tag + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Theme.cs b/IGDB/Models/Theme.cs new file mode 100644 index 0000000..4094311 --- /dev/null +++ b/IGDB/Models/Theme.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class Theme + { + } +} \ No newline at end of file diff --git a/IGDB/Models/TimeToBeat.cs b/IGDB/Models/TimeToBeat.cs new file mode 100644 index 0000000..2e53a67 --- /dev/null +++ b/IGDB/Models/TimeToBeat.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class TimeToBeat + { + } +} \ No newline at end of file diff --git a/IGDB/Models/Website.cs b/IGDB/Models/Website.cs new file mode 100644 index 0000000..9084d5f --- /dev/null +++ b/IGDB/Models/Website.cs @@ -0,0 +1,6 @@ +namespace IGDB +{ + public class Website + { + } +} \ No newline at end of file