README
¶
game-room-objects.go
Persistence models and API value objects for the Game Room microservice's domain: library, wishlist, table, and visibility. Pure data types - no business logic, no I/O.
Install
go get github.com/sweetrpg/game-room-objects.go
Packages
models- persistence-layer structs, each embeddingmodel-core.go'sAuditablevo- the matching API-facing value objects, each embeddingmodel-core.go'sAuditableVO
Documentation
Package documentation: pkg.go.dev/github.com/sweetrpg/game-room-objects.go.
Contributing
See CONTRIBUTING.md for the development workflow.
Models
Person
- Fields
name: String. The name of the person.tag_ids: [Tag]. An array of tags associated with the author.- Audit fields.
PersonProperty
- Fields
name: String. The name of the property.type: String. The type of the property's value.value: String. The value of the property.person_id: Volume. The identifier of the person associated with the property.- Audit fields.
Publisher
- Fields
name: String. The name of the publisher.- Audit fields.
Review
- Fields
title: String. The title of the review.text: String. The body text of the review.volume_id: Volume. The volume associated with the review.- Audit fields.
Studio
- Fields
name: String. The name of the studio.- Audit fields.
System
- Fields
game_system: String. The identifier of the game system.edition: String. The identifier of the game system's edition.- Audit fields.
Tag
- Fields
name: String. The name of the tag.value: String. The optional value of the tag.- Audit fields.
Contribution
- Fields
person_id: Person. Identifier of the Person making the contributionroles: [Enum{ContributionType}]. An array of contribution types for this person. Valid values are:designer,developer,writer,artist,cartographer,editor,producer,consultant,director,illustrator,misc.- Audit fields.
Volume
- Fields
name: String. The name of the volume.contributors: [Contribution]. An array of contributions for the volume, indicating a person and their contribution(s) to the volume.studio_ids: [Studio]. An array of studios associated with the volume.publisher_ids: [Publisher]. An array of publishers associated with the volume.system_id: System. The game system associated with the volume.review_ids: [Review]. An array of reviews associated with the volume.tag_ids: [Tag]. An array of tags associated with the volume.- Audit fields.
VolumeProperty
- Fields
name: String. The name of the property.type: String. The type of the property's value.value: String. The value of the property.volume_id: Volume. The identifier of the volume associated with the property.- Audit fields.
Development
- Create a virtual environment
python -m venv ~/.virtualenvs/sweetrpg-game-room-objects source ~/.virtualenvs/sweetrpg-game-room-objects/bin/activate - Install requirements
pip3 install -r requirements/dev.txt
Requirements
Requirements are organized in a number of role-based files in the requirements/ directory:
dev.{in,txt}-- for project developmentpkg.{in,txt}-- for the package itselfdocs.{in,txt}-- to generate documentationtests.{in,txt}-- to run unit tests
Updating requirements
To update requirements, edit the appropriate *.in file, then run the update.sh script in the
same directory. The script will run pip-compile to generate the *.txt file with the actual
resolved versions and dependencies.
Documentation
Documentation for this package can be found here.
Click to show internal directories.
Click to hide internal directories.