@@ -164,6 +164,7 @@ type DB interface {
164164 FindUserAuthToken (ctx context.Context , id string ) (* UserAuthToken , error )
165165 InsertUserAuthToken (ctx context.Context , opts * InsertUserAuthTokenOptions ) (* UserAuthToken , error )
166166 UpdateUserAuthTokenUsedOn (ctx context.Context , ids []string ) error
167+ UpdateUserAuthTokenExpiresOn (ctx context.Context , id string , expiresOn time.Time ) error
167168 DeleteUserAuthToken (ctx context.Context , id string ) error
168169 DeleteAllUserAuthTokens (ctx context.Context , userID string ) (int , error )
169170 DeleteUserAuthTokensByUserAndRepresentingUser (ctx context.Context , userID , representingUserID string ) error
@@ -236,7 +237,7 @@ type DB interface {
236237
237238 FindOrganizationMemberUsers (ctx context.Context , orgID , filterRoleID string , withCounts bool , afterEmail string , limit int , searchPattern string ) ([]* OrganizationMemberUser , error )
238239 FindOrganizationMemberUser (ctx context.Context , orgID , userID string ) (* OrganizationMemberUser , error )
239- CountOrganizationMemberUsers (ctx context.Context , orgID , filterRoleID string , searchPattern string ) (int , error )
240+ CountOrganizationMemberUsers (ctx context.Context , orgID , filterRoleID , searchPattern string , negateSearch bool ) (int , error )
240241 FindOrganizationMemberUsersByRole (ctx context.Context , orgID , roleID string ) ([]* User , error )
241242 FindOrganizationMemberUserAdminStatus (ctx context.Context , orgID , userID string ) (isAdmin , isLastAdmin bool , err error )
242243 InsertOrganizationMemberUser (ctx context.Context , orgID , userID , roleID string , attributes map [string ]any , ifNotExists bool ) (bool , error )
@@ -309,6 +310,8 @@ type DB interface {
309310
310311 FindVirtualFiles (ctx context.Context , projectID , environment string , afterUpdatedOn time.Time , afterPath string , limit int ) ([]* VirtualFile , error )
311312 FindVirtualFile (ctx context.Context , projectID , environment , path string ) (* VirtualFile , error )
313+ // FindVirtualFilesByOwner TODO: pagination
314+ FindVirtualFilesByOwner (ctx context.Context , projectID , environment , ownerID string ) ([]* VirtualFile , error )
312315 UpsertVirtualFile (ctx context.Context , opts * InsertVirtualFileOptions ) error
313316 UpdateVirtualFileDeleted (ctx context.Context , projectID , environment , path string ) error
314317 DeleteExpiredVirtualFiles (ctx context.Context , retention time.Duration ) error
@@ -392,6 +395,7 @@ type Organization struct {
392395 QuotaSlotsPerDeployment int `db:"quota_slots_per_deployment"`
393396 QuotaOutstandingInvites int `db:"quota_outstanding_invites"`
394397 QuotaStorageLimitBytesPerDeployment int64 `db:"quota_storage_limit_bytes_per_deployment"`
398+ QuotaSeats int `db:"quota_seats"`
395399 BillingCustomerID string `db:"billing_customer_id"`
396400 PaymentCustomerID string `db:"payment_customer_id"`
397401 BillingEmail string `db:"billing_email"`
@@ -417,6 +421,7 @@ type InsertOrganizationOptions struct {
417421 QuotaSlotsPerDeployment int
418422 QuotaOutstandingInvites int
419423 QuotaStorageLimitBytesPerDeployment int64
424+ QuotaSeats int
420425 BillingCustomerID string
421426 PaymentCustomerID string
422427 BillingEmail string
@@ -440,6 +445,7 @@ type UpdateOrganizationOptions struct {
440445 QuotaSlotsPerDeployment int
441446 QuotaOutstandingInvites int
442447 QuotaStorageLimitBytesPerDeployment int64
448+ QuotaSeats int
443449 BillingCustomerID string
444450 PaymentCustomerID string
445451 BillingEmail string
@@ -1225,6 +1231,7 @@ type UpdateBookmarkOptions struct {
12251231type VirtualFile struct {
12261232 Path string `db:"path"`
12271233 Data []byte `db:"data"`
1234+ OwnerID * string `db:"owner_id"`
12281235 Deleted bool `db:"deleted"`
12291236 UpdatedOn time.Time `db:"updated_on"`
12301237}
@@ -1233,8 +1240,9 @@ type VirtualFile struct {
12331240type InsertVirtualFileOptions struct {
12341241 ProjectID string
12351242 Environment string
1236- Path string `validate:"required"`
1237- Data []byte `validate:"max=131072"` // 128kb
1243+ Path string `validate:"required"`
1244+ OwnerID * string `db:"owner_id"`
1245+ Data []byte `validate:"max=131072"` // 128kb
12381246}
12391247
12401248// Asset represents a user-uploaded file asset.
@@ -1315,6 +1323,7 @@ const (
13151323 BillingIssueTypeNeverSubscribed = 7
13161324 BillingIssueTypeOnCreditTrial = 8
13171325 BillingIssueTypeTrialCreditsDepleted = 9
1326+ BillingIssueTypeMessage = 10
13181327)
13191328
13201329type BillingIssueLevel int
@@ -1389,9 +1398,16 @@ type BillingIssueMetadataTrialCreditsDepleted struct {
13891398 DepletedOn time.Time `json:"depleted_on"`
13901399}
13911400
1401+ type BillingIssueMetadataMessage struct {
1402+ Message string `json:"message"`
1403+ }
1404+
13921405type UpsertBillingIssueOptions struct {
1393- OrgID string `validate:"required"`
1394- Type BillingIssueType `validate:"required"`
1406+ OrgID string `validate:"required"`
1407+ Type BillingIssueType `validate:"required"`
1408+ // Level is optional; if unspecified, it is derived from Type. It is used for types whose
1409+ // severity is not implied by the type itself (e.g. BillingIssueTypeMessage).
1410+ Level BillingIssueLevel `exhaustruct:"optional"`
13951411 Metadata BillingIssueMetadata
13961412 EventTime time.Time `validate:"required"`
13971413}
0 commit comments