impress/app/views
Emi Matchu 6a0afb330b Add warning for "Baby Body Paint" bugs
I *think* what I'm observing is that:

1. The zone restrictions are different between these items.
2. The zone restrictions *change* when reloading the page sometimes. (I
   assume from remodeling?)
3. The items look very buggy on many pets, because many appearances
   seem to expect different zone restrictions than the item actually
   has.

I think what this means is:

1. TNT has finally unbound restricted zones from the item level, and
   allowed different appearances to have different restrictions. Neat!
2. The API still serves it the same way, as a field on the item.

So I think this means we need to update our schema to reflect the fact
that an item's `zones_restrict` field isn't *really* a property of the
item; it's a property of the combination of the item and the current
body ID.

My gut take here is that maybe this means it's time for the Large
Refactor that I've kinda been interested in for a while, but been
avoiding because of Impress 2020 compatibility issues: instead of a
`body_id` field on assets, and having them directly belong to items,
make an `ItemAppearance` record (closer to how 2020's GQL API modeled
it, I was looking ahead to this possibility!) that's keyed on item and
body ID, and assets belong to *that*.

Then, we could move the zones restriction field onto the
`ItemAppearance` record instead. And then it doesn't really matter to
us how TNT models it internally; whatever we saw is what we use.
(Again, I looked ahead to this in the 2020 app, and tried to use the
`restrictedZones` field on `ItemAppearance` when possible—even though
it secretly just reads directly from the `Item`!)

…but that's a pretty big departure from how things are modeled now, and
isn't something we can just throw together—especially coordinating it
across both apps. I was getting close to being able to shut off 2020
from a *front-facing* perspective (but still keeping a lot of the GQL
endpoints open for the wardrobe-2020 frontend), but I don't think we're
very close to being able to try to target turning off 2020's *backend*
as a prereq to this; or at least, if we do, we should expect that to
take a while. (Counting now, there's still 9 GQL queries—not as many as
I expected tbh, but still quite a few.)

So idk how to sequence this! But for now, let's put out a warning, and
start setting expectations.
2024-02-27 18:16:23 -08:00
..
alt_styles Update site copy to reflect that Alt Styles are released 2024-02-01 06:58:54 -08:00
closet_hangers High-level caching for closet lists 2024-02-20 18:43:39 -08:00
closet_lists High-level caching for closet lists 2024-02-20 18:43:39 -08:00
contributions i18n for contributions#index 2013-01-09 17:15:23 -06:00
devise Can edit username in user settings page 2023-10-23 19:05:08 -07:00
fundraising Move most fundraising files into a Fundraising module 2024-02-18 20:12:14 -08:00
item_trades Oops, load the data for the bulk item quantity form on the trades page! 2024-01-21 06:42:24 -08:00
items Add warning for "Baby Body Paint" bugs 2024-02-27 18:16:23 -08:00
layouts Add redirect from openneo.net to impress.openneo.net 2024-02-20 10:35:59 -08:00
neopets_page_import_tasks refactor importing 2015-07-27 13:25:24 -04:00
outfits Remove unused React dependency on homepage 2024-02-25 10:49:00 -08:00
pets Update most URLs to use HTTPS 2023-10-25 15:22:57 -07:00
sitemap Update most URLs to use HTTPS 2023-10-25 15:22:57 -07:00
static Remove Pardon Our Dust message and page 2024-01-14 23:00:23 -08:00
users i18n for contributions#index 2013-01-09 17:15:23 -06:00