@@ -140,62 +140,6 @@ pub struct WorkspaceStats {
140
140
pub storage_limit : i64 ,
141
141
}
142
142
143
- pub async fn get_workspace_stats ( pool : & PgPool , workspace_id : & Uuid ) -> Result < WorkspaceStats > {
144
- let workspace_stats = sqlx:: query_as :: < _ , WorkspaceStats > (
145
- "WITH members_per_workspace AS (
146
- SELECT
147
- workspace_id,
148
- count(user_id)::int8 as members
149
- FROM
150
- members_of_workspaces
151
- WHERE
152
- workspace_id = $1
153
- GROUP BY workspace_id
154
- )
155
- SELECT
156
- subscription_tiers.name as tier_name,
157
- subscription_tiers.members_per_workspace as seats_included_in_tier,
158
- workspace_usage.span_count as total_spans,
159
- workspace_usage.span_count_since_reset as spans_this_month,
160
- workspace_usage.step_count as total_steps,
161
- workspace_usage.step_count_since_reset as steps_this_month,
162
- subscription_tiers.spans as spans_limit,
163
- subscription_tiers.steps as steps_limit,
164
- GREATEST(
165
- workspace_usage.span_count_since_reset - subscription_tiers.spans,
166
- 0
167
- ) as spans_over_limit,
168
- GREATEST(
169
- workspace_usage.span_count_since_reset - subscription_tiers.spans,
170
- 0
171
- )::float8 * subscription_tiers.extra_span_price as spans_over_limit_cost,
172
- GREATEST(
173
- workspace_usage.step_count_since_reset - subscription_tiers.steps,
174
- 0
175
- ) as steps_over_limit,
176
- GREATEST(
177
- workspace_usage.step_count_since_reset - subscription_tiers.steps,
178
- 0
179
- )::float8 * subscription_tiers.extra_step_price as steps_over_limit_cost,
180
- members_per_workspace.members,
181
- subscription_tiers.members_per_workspace +
182
- workspaces.additional_seats as members_limit,
183
- subscription_tiers.storage_mib as storage_limit,
184
- workspace_usage.reset_time
185
- FROM
186
- workspace_usage
187
- JOIN members_per_workspace
188
- ON members_per_workspace.workspace_id = workspace_usage.workspace_id
189
- JOIN workspaces ON workspaces.id = workspace_usage.workspace_id
190
- JOIN subscription_tiers ON subscription_tiers.id = workspaces.tier_id" ,
191
- )
192
- . bind ( workspace_id)
193
- . fetch_one ( pool)
194
- . await ?;
195
-
196
- Ok ( workspace_stats)
197
- }
198
-
199
143
pub async fn is_workspace_over_limit (
200
144
pool : & PgPool ,
201
145
workspace_id : & Uuid ,
0 commit comments