Add profiles.maxRating for per-profile content tiers (#14)
Each profile may carry a maxRating token ("kids" | "twelve" | "fifteen" |
"unrestricted") capping which movies/TV it can browse and play. Empty means
"no explicit tier" — the client falls back to the account default (a child
profile resolves to "kids"). Plain text, opaque to the server: all filtering
is client-side like the kids filter, and a string column lets the app add
tiers without another migration.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
9d442ee853
commit
cabb6233a3
1 changed files with 23 additions and 0 deletions
23
pb_migrations/1787000000_profile_max_rating.js
Normal file
23
pb_migrations/1787000000_profile_max_rating.js
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/// <reference path="../pb_data/types.d.ts" />
|
||||||
|
|
||||||
|
// Per-profile content ceiling (issue #14 follow-up). Each profile may carry a
|
||||||
|
// `maxRating` — one of the app's RatingTier tokens ("kids" | "twelve" |
|
||||||
|
// "fifteen" | "unrestricted") — restricting which movies/TV it may browse and
|
||||||
|
// play. Empty means "no explicit tier": the client falls back to the account's
|
||||||
|
// default (a child profile resolves to "kids"). Stored as a plain text token,
|
||||||
|
// opaque to the server (all filtering is client-side, like the kids filter);
|
||||||
|
// keeping it a string, not an enum column, lets the app add tiers without a
|
||||||
|
// further migration.
|
||||||
|
migrate((app) => {
|
||||||
|
const profiles = app.findCollectionByNameOrId("profiles")
|
||||||
|
profiles.fields.add(new Field({
|
||||||
|
type: "text",
|
||||||
|
name: "maxRating",
|
||||||
|
max: 20,
|
||||||
|
}))
|
||||||
|
app.save(profiles)
|
||||||
|
}, (app) => {
|
||||||
|
const profiles = app.findCollectionByNameOrId("profiles")
|
||||||
|
profiles.fields.removeByName("maxRating")
|
||||||
|
app.save(profiles)
|
||||||
|
})
|
||||||
Loading…
Reference in a new issue