Refactor AppModels to align with the refined API specification.
Add IReadOnlyEntity interface with common properties and events.
Add IModifiableEntity interface with common methods for updating properties.
Modify IReadOnlyUser to inherit from IReadOnlyEntity, remove MarkdownAboutMe and Icon properties, add ExtendedDescription property, and add methods for retrieving publishers and projects along with their roles.
Modify IModifiableUser to inherit from IModifiableEntity, remove UpdateMarkdownAboutMeAsync and UpdateIconAsync methods, and add methods for adding/removing publishers and projects along with their roles.
Modify IReadOnlyPublisher to inherit from IReadOnlyEntity, remove Owner, ContactEmail, and Icon properties, add ExtendedDescription and ForgetMe properties, add methods for retrieving users along with their roles, and add properties for Connections and Links.
Modify IModifiablePublisher to inherit from IModifiableEntity, remove UpdateOwnerAsync and UpdateIconAsync methods, add methods for adding/removing users along with their roles, and add methods for adding/removing connections and links.
Modify IReadOnlyProject to inherit from IReadOnlyEntity, remove HeroImage, CreatedAt, and Icon properties, add ExtendedDescription property, and replace Cid and DagCid with IReadOnlyConnection.
Modify IModifiableProject to inherit from IModifiableEntity, remove UpdateHeroImageAsync and UpdateIconAsync methods, add methods for adding/removing connections, and replace Cid and DagCid with IReadOnlyConnection.
Add IReadOnlyConnection interface with properties Key and Value, and event handlers for ValueChanged.
Add IModifiableConnection interface with methods for updating Key and Value.
Related to #4
Refactor AppModels to align with the refined API specification.
IReadOnlyEntity
interface with common properties and events.IModifiableEntity
interface with common methods for updating properties.IReadOnlyUser
to inherit fromIReadOnlyEntity
, removeMarkdownAboutMe
andIcon
properties, addExtendedDescription
property, and add methods for retrieving publishers and projects along with their roles.IModifiableUser
to inherit fromIModifiableEntity
, removeUpdateMarkdownAboutMeAsync
andUpdateIconAsync
methods, and add methods for adding/removing publishers and projects along with their roles.IReadOnlyPublisher
to inherit fromIReadOnlyEntity
, removeOwner
,ContactEmail
, andIcon
properties, addExtendedDescription
andForgetMe
properties, add methods for retrieving users along with their roles, and add properties for Connections and Links.IModifiablePublisher
to inherit fromIModifiableEntity
, removeUpdateOwnerAsync
andUpdateIconAsync
methods, add methods for adding/removing users along with their roles, and add methods for adding/removing connections and links.IReadOnlyProject
to inherit fromIReadOnlyEntity
, removeHeroImage
,CreatedAt
, andIcon
properties, addExtendedDescription
property, and replaceCid
andDagCid
withIReadOnlyConnection
.IModifiableProject
to inherit fromIModifiableEntity
, removeUpdateHeroImageAsync
andUpdateIconAsync
methods, add methods for adding/removing connections, and replaceCid
andDagCid
withIReadOnlyConnection
.IReadOnlyConnection
interface with propertiesKey
andValue
, and event handlers for ValueChanged.IModifiableConnection
interface with methods for updatingKey
andValue
.For more details, open the Copilot Workspace session.