from pydantic import BaseModel from typing import Optional from datetime import datetime from app.models.subscription import SubscriptionStatus class SubscriptionBase(BaseModel): membership_plan_id: int start_date: datetime end_date: datetime amount_paid: float class SubscriptionCreate(SubscriptionBase): user_id: int class SubscriptionUpdate(BaseModel): status: Optional[SubscriptionStatus] = None end_date: Optional[datetime] = None class SubscriptionInDB(SubscriptionBase): id: int user_id: int status: SubscriptionStatus payment_reference: Optional[str] = None created_at: datetime updated_at: datetime class Config: from_attributes = True class Subscription(SubscriptionInDB): pass