@emerson-evolution-gym/types
v0.1.0
Published
Shared TypeScript types for Evolution Gym
Maintainers
Readme
@evolution-gym/types
Shared TypeScript types and interfaces for Evolution Gym microservices.
Installation
npm install @evolution-gym/typesUsage
Common Types
import { PaginationParams, PaginatedResponse, ApiResponse } from '@evolution-gym/types';
const params: PaginationParams = {
page: 1,
limit: 20,
sortBy: 'createdAt',
sortOrder: 'desc'
};
const response: ApiResponse<User[]> = {
success: true,
data: users
};Auth Types
import { UserRole, JwtPayload, AuthTokens } from '@evolution-gym/types';
const payload: JwtPayload = {
userId: '123',
email: '[email protected]',
role: UserRole.MEMBER,
tenantId: 'gym-1'
};Payment Types
import { PaymentStatus, PaymentMethod, Subscription } from '@evolution-gym/types';
const subscription: Subscription = {
id: '1',
userId: '123',
planId: 'premium',
status: SubscriptionStatus.ACTIVE,
amount: 99.90,
currency: 'BRL',
frequency: SubscriptionFrequency.MONTHLY,
startDate: new Date()
};Member Types
import { Member, MemberStatus, AccessLevel } from '@evolution-gym/types';
const member: Member = {
id: '1',
firstName: 'John',
lastName: 'Doe',
email: '[email protected]',
membershipNumber: 'GYM-001',
membershipType: 'Premium',
status: MemberStatus.ACTIVE,
accessLevel: AccessLevel.MEMBER,
joinedAt: new Date(),
totalCheckIns: 0,
tenantId: 'gym-1'
};Event Types
import { BaseEvent, EventType } from '@evolution-gym/types';
const event: BaseEvent = {
id: 'evt-123',
type: EventType.MEMBER_CREATED,
timestamp: new Date(),
source: 'member-service',
tenantId: 'gym-1',
data: { memberId: '123' }
};Available Type Categories
- Common - Shared types (pagination, API responses, addresses)
- Auth - Authentication and authorization types
- Payment - Payment and subscription types
- Member - Member management types
- Event - Event-driven architecture types
License
MIT
