The models must be updated according to the refined API spec.
Solution
We've split this analysis into two sections: Lists and properties. Each section lists what's extra and what's missing for each of the three types.
Lists:
Current setup
Publisher
Projects
Users
ParentPublishers
ChildPublishers
Project
Collaborators
Dependencies
Connections
Features
Links
Images
User
Connections
Projects
Publishers
Links
Changes to make:
[What's extra]:
Publisher doesn't need:
Users
Projects
Project doesn't need:
[n/a]
User doesn't need:
Projects
[What's missing]:
Publisher is missing:
Users + Roles
Connections
Links
Project is missing:
[n/a]
User is missing:
Projects + Roles
Publisher + Roles
Properties:
Current setup
Publisher
Owner
Name
Description
Icon
AccentColor
ContactEmail
IsUnlisted
Project
Publisher
Name
Description
Icon
HeroImage
AccentColor
Category
CreatedAt
ForgetMe
IsUnlisted
User
Name
MarkdownAboutMe
Icon
ForgetMe
Changes to make:
[What's extra]:
Publisher doesn't need:
Owner
ContactEmail
Icon
Project doesn't need:
HeroImage
CreatedAt
Icon
User doesn't need:
MarkdownAboutMe
Icon
[What's missing]:
Publisher is missing:
ExtendedDescription
ForgetMe
Project is missing:
ExtendedDescription
User is missing:
ExtendedDescription
In addition to property and collection updates, several other changes should be made to the models while we're in here refactoring things:
Remove constructors entirely, declare properties as required or supply default values instead.
Remove any json-related attributes.
Any mention of IsPrivate should be updated to IsUnlisted, including comments.
Identify common properties and collections, then create common interfaces to ensure consistency. Ensure code comments match the generic nature of the common interfaces.
Cid should be replaced with DagCid wherever possible. This signals to IPLD that the value is a "link" type pointing to another DAG and is used by various automated tooling.
Background
See https://github.com/WindowsAppCommunity/WinAppCommunity.Sdk/issues/2 for background.
Problem
The models must be updated according to the refined API spec.
Solution
We've split this analysis into two sections: Lists and properties. Each section lists what's extra and what's missing for each of the three types.
Lists:
Current setup
Publisher
Project
User
Changes to make:
[What's extra]:
Publisher doesn't need:
Project doesn't need:
User doesn't need:
[What's missing]:
Publisher is missing:
Project is missing:
User is missing:
Properties:
Current setup
Publisher
Project
User
Changes to make:
[What's extra]:
Publisher doesn't need:
Project doesn't need:
User doesn't need:
[What's missing]:
Publisher is missing:
Project is missing:
User is missing:
In addition to property and collection updates, several other changes should be made to the models while we're in here refactoring things:
IsPrivate
should be updated toIsUnlisted
, including comments.