UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

44 lines (43 loc) 1.03 kB
import * as redis from 'redis'; export interface IOffer { seatSection: string; seatNumber: string; } export interface ILockKey { eventId: string; offers: IOffer[]; expires: Date; holder: string; } /** * 上映イベントに対する座席ごとの在庫状況を保管するリポジトリ */ export declare class RedisRepository { static KEY_PREFIX: string; readonly redisClient: redis.RedisClient; constructor(redisClient: redis.RedisClient); /** * 座席をロックする */ lock(lockKey: ILockKey): Promise<void>; /** * 座席ロックを解除する */ unlock(params: { eventId: string; offer: IOffer; }): Promise<void>; /** * 空席でない座席を検索する */ findUnavailableOffersByEventId(params: { eventId: string; }): Promise<IOffer[]>; /** * 保持者を取得する */ getHolder(params: { eventId: string; offer: IOffer; }): Promise<string | null>; }