Places & Sites Schema
The places schema owns physical real estate: properties, buildings, zones, and site access permissions.
It provides physical anchors for device placement, maintenance walkthroughs, and contractor access.
Ownership Split
places.sites— Physical properties. Sites have anowner_user_id(primary owner) and an optionalcompany_id(operating company).places.zones— Physical rooms, sub-areas, or equipment spaces within a site.places.site_members— Direct user-to-site access with explicit roles (owner,manager,member,viewer,resident).places.site_company_access— Grants an entire company (e.g. maintenance contractor, service partner) access to a site without creating redundant user records.
Row-Level Security & Helpers
Permissions are evaluated through access.* functions:
access.can_read_site(site_id, user_id)— Authorizes site owners, direct site members, owning company members, and linked service companies.access.can_manage_site(site_id, user_id)— Restricts site configuration to site owners, site managers, and company administrators.access.can_manage_zone(zone_id, user_id)— Delegates zone write permissions to the owning site's management policy.
Exposed API Contract
- Views:
api.sites,api.zones,api.site_members,api.site_company_access. - RPCs:
api.create_site(...),api.create_zone(...),api.update_zone(...),api.archive_zone(...).