app.fitsky.profile
Schema Diff
+19 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 8 non-breaking changes.
Non-Breaking Changes (8)
- AddedVertex AddedVertex { vertex_id: "app.fitsky.profile:body.dateOfBirth" }
- AddedVertex AddedVertex { vertex_id: "app.fitsky.profile:body.heightCm" }
- AddedVertex AddedVertex { vertex_id: "app.fitsky.profile:body.publicProfile" }
- AddedVertex AddedVertex { vertex_id: "app.fitsky.profile:body.weightGrams" }
- AddedEdge AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.dateOfBirth", kind: "prop", name: Some("dateOfBirth") }
- AddedEdge AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.heightCm", kind: "prop", name: Some("heightCm") }
- AddedEdge AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.publicProfile", kind: "prop", name: Some("publicProfile") }
- AddedEdge AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.weightGrams", kind: "prop", name: Some("weightGrams") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.fitsky.profile:body.dateOfBirth" }AddedVertex { vertex_id: "app.fitsky.profile:body.heightCm" }AddedVertex { vertex_id: "app.fitsky.profile:body.publicProfile" }AddedVertex { vertex_id: "app.fitsky.profile:body.weightGrams" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.dateOfBirth", kind: "prop", name: Some("dateOfBirth") }
- Non-breaking: AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.heightCm", kind: "prop", name: Some("heightCm") }
- Non-breaking: AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.publicProfile", kind: "prop", name: Some("publicProfile") }
- Non-breaking: AddedEdge { src: "app.fitsky.profile:body", tgt: "app.fitsky.profile:body.weightGrams", kind: "prop", name: Some("weightGrams") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A FitSky-specific user profile with custom banner and bio",
6
6
"key": "literal:self",
7
7
"record": {
8
8
"properties": {
9
9
"banner": {
10
10
"accept": [
11
11
"image/png",
12
12
"image/jpeg",
13
13
"image/webp"
14
14
],
15
15
"description": "Custom FitSky banner image. Falls back to Bluesky banner if not set.",
16
16
"maxSize": 1000000,
17
17
"type": "blob"
18
18
},
19
19
"bio": {
20
20
"description": "FitSky-specific bio text",
21
21
"maxGraphemes": 256,
22
22
"maxLength": 2560,
23
23
"type": "string"
24
24
},
25
25
"createdAt": {
26
26
"format": "datetime",
27
27
"type": "string"
28
28
},
29
+
"dateOfBirth": {
30
+
"description": "User's date of birth (ISO 8601). Used for max HR calculation.",
31
+
"format": "datetime",
32
+
"type": "string"
33
+
},
34
+
"heightCm": {
35
+
"description": "Height in centimeters",
36
+
"minimum": 0,
37
+
"type": "integer"
38
+
},
39
+
"publicProfile": {
40
+
"description": "Whether workout detail pages are publicly viewable without authentication",
41
+
"type": "boolean"
42
+
},
29
43
"unitSystem": {
30
44
"description": "User's preferred unit system",
31
45
"knownValues": [
32
46
"metric",
33
47
"imperial"
34
48
],
35
49
"maxLength": 64,
36
50
"type": "string"
51
+
},
52
+
"weightGrams": {
53
+
"description": "Weight in grams",
54
+
"minimum": 0,
55
+
"type": "integer"
37
56
}
38
57
},
39
58
"type": "object"
40
59
},
41
60
"type": "record"
42
61
}
43
62
},
44
63
"id": "app.fitsky.profile",
45
64
"lexicon": 1
46
65
}