1+ from  sqlalchemy  import  Column , Integer , String , DateTime , ForeignKey , func 
2+ from  sqlalchemy .orm  import  relationship 
3+ 4+ from  .base  import  BaseModel 
5+ 6+ class  ApiUsage (BaseModel ):
7+  """Database model for tracking API usage statistics.""" 
8+  __tablename__  =  "api_usage" 
9+ 10+  id  =  Column (Integer , primary_key = True , index = True )
11+  user_id  =  Column (Integer , ForeignKey ("users.id" ), nullable = False )
12+  endpoint  =  Column (String , nullable = False )
13+  request_time  =  Column (DateTime (timezone = True ), server_default = func .now (), nullable = False )
14+  response_time  =  Column (Integer , nullable = False )
15+  status_code  =  Column (Integer , nullable = False )
16+  request_data  =  Column (String , nullable = True )
17+  response_data  =  Column (String , nullable = True )
18+  created_at  =  Column (DateTime (timezone = True ), server_default = func .now ())
19+  updated_at  =  Column (DateTime (timezone = True ), onupdate = func .now ())
20+ 21+  user  =  relationship ("User" , back_populates = "api_usages" )
22+ 23+  def  __repr__ (self ):
24+  return  f"<ApiUsage id={ self .id } { self .user_id } { self .endpoint } { self .request_time } { self .response_time } { self .status_code }  
0 commit comments