| defmodule Plausible.Workers.LockSites do | |
| use Plausible.Repo | |
| use Oban.Worker, queue: :lock_sites | |
| alias Plausible.Teams | |
| @impl Oban.Worker | |
| def perform(_job) do | |
| teams = | |
| Repo.all( | |
| from t in Teams.Team, | |
| as: :team, | |
| left_lateral_join: s in subquery(Teams.last_subscription_join_query()), | |
| on: true, | |
| preload: [subscription: s] | |
| ) | |
| for team <- teams do | |
| Plausible.Billing.SiteLocker.update_for(team) | |
| end | |
| :ok | |
| end | |
| end | |