game-room-objects.go

module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2026 License: MIT

README

game-room-objects.go

CI Coverage License Issues PRs Dependabot

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 embedding model-core.go's Auditable
  • vo - the matching API-facing value objects, each embedding model-core.go's AuditableVO

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

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

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 contribution
    • roles: [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

  1. Create a virtual environment
    python -m venv ~/.virtualenvs/sweetrpg-game-room-objects
    source ~/.virtualenvs/sweetrpg-game-room-objects/bin/activate
    
  2. 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 development
  • pkg.{in,txt} -- for the package itself
  • docs.{in,txt} -- to generate documentation
  • tests.{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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL