UserSubscriptionRepositoryInterface.ts 1.1 KB

1234567891011121314151617
  1. import { UserSubscription } from './UserSubscription'
  2. import { UserSubscriptionType } from './UserSubscriptionType'
  3. export interface UserSubscriptionRepositoryInterface {
  4. findOneByUuid(uuid: string): Promise<UserSubscription | null>
  5. countByUserUuid(userUuid: string): Promise<number>
  6. findOneByUserUuid(userUuid: string): Promise<UserSubscription | null>
  7. findOneByUserUuidAndType(userUuid: string, type: UserSubscriptionType): Promise<UserSubscription | null>
  8. findByUserUuid(userUuid: string): Promise<UserSubscription[]>
  9. findOneByUserUuidAndSubscriptionId(userUuid: string, subscriptionId: number): Promise<UserSubscription | null>
  10. findBySubscriptionIdAndType(subscriptionId: number, type: UserSubscriptionType): Promise<UserSubscription[]>
  11. findBySubscriptionId(subscriptionId: number): Promise<UserSubscription[]>
  12. updateEndsAt(subscriptionId: number, endsAt: number, updatedAt: number): Promise<void>
  13. updateCancelled(subscriptionId: number, cancelled: boolean, updatedAt: number): Promise<void>
  14. countActiveSubscriptions(): Promise<number>
  15. save(subscription: UserSubscription): Promise<UserSubscription>
  16. }