···37check: ## Compile everything, checking syntax (does not output binaries)
38 go build ./...
39000040.env:
41 if [ ! -f ".env" ]; then cp example.dev.env .env; fi
···37check: ## Compile everything, checking syntax (does not output binaries)
38 go build ./...
3940+.PHONY: lexgen
41+lexgen: ## Generate lexicon type packages from lexicon schemas
42+ glot codegen --output-dir api lexicons/social/scrumble
43+44.env:
45 if [ ! -f ".env" ]; then cp example.dev.env .env; fi
+12
api/socialscrumble/betaaccountjoin.go
···000000000000
···1+// Code generated by indigo lexgen tool. DO NOT EDIT MANUALLY.
2+3+// Lexicon schema: social.scrumble.beta.account.join
4+5+package socialscrumble
6+7+// Indicates that an account (user) wants to to be part of a scene. The key must be the DID of the scene.
8+type BetaAccountJoin struct {
9+ LexiconTypeID string `json:"$type" cborgen:"$type,const=social.scrumble.beta.account.join"`
10+ CreatedAt *string `json:"createdAt,omitempty" cborgen:"createdAt,omitempty"`
11+ Scene *string `json:"scene,omitempty" cborgen:"scene,omitempty"`
12+}
+16
api/socialscrumble/betaaccountprofile.go
···0000000000000000
···1+// Code generated by indigo lexgen tool. DO NOT EDIT MANUALLY.
2+3+// Lexicon schema: social.scrumble.beta.account.profile
4+5+package socialscrumble
6+7+import (
8+ lexutil "github.com/bluesky-social/indigo/lex/util"
9+)
10+11+// Scrumble user profile. Presence of this record indicates that the account is a scrumble user. Scene community accounts should also include this record.
12+type BetaAccountProfile struct {
13+ LexiconTypeID string `json:"$type" cborgen:"$type,const=social.scrumble.beta.account.profile"`
14+ Avatar *lexutil.LexBlob `json:"avatar,omitempty" cborgen:"avatar,omitempty"`
15+ CreatedAt *string `json:"createdAt,omitempty" cborgen:"createdAt,omitempty"`
16+}
+20
api/socialscrumble/betacollectioncomment.go
···00000000000000000000
···1+// Code generated by indigo lexgen tool. DO NOT EDIT MANUALLY.
2+3+// Lexicon schema: social.scrumble.beta.collection.comment
4+5+package socialscrumble
6+7+import (
8+ comatproto "github.com/bluesky-social/indigo/api/atproto"
9+)
10+11+// Threaded discussion comment on an item.
12+type BetaCollectionComment struct {
13+ LexiconTypeID string `json:"$type" cborgen:"$type,const=social.scrumble.beta.collection.comment"`
14+ CreatedAt string `json:"createdAt" cborgen:"createdAt"`
15+ Item comatproto.RepoStrongRef `json:"item" cborgen:"item"`
16+ Parent *comatproto.RepoStrongRef `json:"parent,omitempty" cborgen:"parent,omitempty"`
17+ Scene string `json:"scene" cborgen:"scene"`
18+ // text: TODO: length limit, and whether this is markdown (probably yes, but what subset)
19+ Text string `json:"text" cborgen:"text"`
20+}
+18
api/socialscrumble/betacollectionfeedback.go
···000000000000000000
···1+// Code generated by indigo lexgen tool. DO NOT EDIT MANUALLY.
2+3+// Lexicon schema: social.scrumble.beta.collection.feedback
4+5+package socialscrumble
6+7+import (
8+ comatproto "github.com/bluesky-social/indigo/api/atproto"
9+)
10+11+// Up/Down feedback on an item of content in a scene, from an account. Aggregating services must check for duplicate feedback.
12+type BetaCollectionFeedback struct {
13+ LexiconTypeID string `json:"$type" cborgen:"$type,const=social.scrumble.beta.collection.feedback"`
14+ CreatedAt string `json:"createdAt" cborgen:"createdAt"`
15+ Feedback string `json:"feedback" cborgen:"feedback"`
16+ Scene string `json:"scene" cborgen:"scene"`
17+ Subject comatproto.RepoStrongRef `json:"subject" cborgen:"subject"`
18+}
···1+// Code generated by indigo lexgen tool. DO NOT EDIT MANUALLY.
2+3+// Lexicon schema: social.scrumble.beta.scene.declaration
4+5+package socialscrumble
6+7+import (
8+ appbsky "github.com/bluesky-social/indigo/api/bsky"
9+ lexutil "github.com/bluesky-social/indigo/lex/util"
10+)
11+12+// Scene metadata and configuration. This record should live under the scene community account.
13+type BetaSceneDeclaration struct {
14+ LexiconTypeID string `json:"$type" cborgen:"$type,const=social.scrumble.beta.scene.declaration"`
15+ Avatar *lexutil.LexBlob `json:"avatar,omitempty" cborgen:"avatar,omitempty"`
16+ Config BetaSceneDeclaration_SceneConfig `json:"config" cborgen:"config"`
17+ CreatedAt string `json:"createdAt" cborgen:"createdAt"`
18+ Description *string `json:"description,omitempty" cborgen:"description,omitempty"`
19+ DescriptionFacets []appbsky.RichtextFacet `json:"descriptionFacets,omitempty" cborgen:"descriptionFacets,omitempty"`
20+ DisplayName *string `json:"displayName,omitempty" cborgen:"displayName,omitempty"`
21+ Guidelines []BetaSceneDeclaration_SceneGuideline `json:"guidelines" cborgen:"guidelines"`
22+}
23+24+// BetaSceneDeclaration_ConfigItems is a "configItems" in the social.scrumble.beta.scene.declaration schema.
25+//
26+// Configuration parameters for the scene (TODO)
27+type BetaSceneDeclaration_ConfigItems struct {
28+ LexiconTypeID string `json:"$type,omitempty" cborgen:"$type,const=social.scrumble.beta.scene.declaration#configItems,omitempty"`
29+ Types []string `json:"types,omitempty" cborgen:"types,omitempty"`
30+}
31+32+// BetaSceneDeclaration_ConfigLabeler is a "configLabeler" in the social.scrumble.beta.scene.declaration schema.
33+//
34+// Configuration parameters for the scene (TODO)
35+type BetaSceneDeclaration_ConfigLabeler struct {
36+ LexiconTypeID string `json:"$type,omitempty" cborgen:"$type,const=social.scrumble.beta.scene.declaration#configLabeler,omitempty"`
37+ Did string `json:"did" cborgen:"did"`
38+}
39+40+// BetaSceneDeclaration_SceneConfig is a "sceneConfig" in the social.scrumble.beta.scene.declaration schema.
41+//
42+// Configuration parameters for the scene
43+type BetaSceneDeclaration_SceneConfig struct {
44+ LexiconTypeID string `json:"$type,omitempty" cborgen:"$type,const=social.scrumble.beta.scene.declaration#sceneConfig,omitempty"`
45+ Items *BetaSceneDeclaration_ConfigItems `json:"items,omitempty" cborgen:"items,omitempty"`
46+ Labelers []BetaSceneDeclaration_ConfigLabeler `json:"labelers,omitempty" cborgen:"labelers,omitempty"`
47+}
48+49+// BetaSceneDeclaration_SceneGuideline is a "sceneGuideline" in the social.scrumble.beta.scene.declaration schema.
50+//
51+// An individual criteria or rule describing sumbissions and behaviors in the scene
52+type BetaSceneDeclaration_SceneGuideline struct {
53+ LexiconTypeID string `json:"$type,omitempty" cborgen:"$type,const=social.scrumble.beta.scene.declaration#sceneGuideline,omitempty"`
54+ Text string `json:"text" cborgen:"text"`
55+}
+14
api/socialscrumble/betascenemember.go
···00000000000000
···1+// Code generated by indigo lexgen tool. DO NOT EDIT MANUALLY.
2+3+// Lexicon schema: social.scrumble.beta.scene.member
4+5+package socialscrumble
6+7+// Indicates that an account is a member of the scene. This records gets written to the scene community account. The key should be the account's DID.
8+type BetaSceneMember struct {
9+ LexiconTypeID string `json:"$type" cborgen:"$type,const=social.scrumble.beta.scene.member"`
10+ CreatedAt string `json:"createdAt" cborgen:"createdAt"`
11+ Did string `json:"did" cborgen:"did"`
12+ // role: TODO: make these refs to a defs file?
13+ Role string `json:"role" cborgen:"role"`
14+}