add acounts
This commit is contained in:
78
app/schemas.py
Normal file
78
app/schemas.py
Normal file
@@ -0,0 +1,78 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import List, Optional, Any
|
||||
import datetime
|
||||
|
||||
class AccountBase(BaseModel):
|
||||
google_email: str
|
||||
|
||||
class AccountCreate(AccountBase):
|
||||
credentials: Any # Can be a dict or a JSON string
|
||||
drive_space_total: int
|
||||
drive_space_used: int
|
||||
|
||||
class Account(AccountBase):
|
||||
id: int
|
||||
user_id: int
|
||||
credentials: Any
|
||||
drive_space_total: int
|
||||
drive_space_used: int
|
||||
drive_space_reserved: int
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class FilePartBase(BaseModel):
|
||||
part_index: int
|
||||
size: int
|
||||
drive_file_id: str
|
||||
sha256: str
|
||||
|
||||
class FilePartCreate(FilePartBase):
|
||||
pass
|
||||
|
||||
class FilePart(FilePartBase):
|
||||
id: int
|
||||
file_id: int
|
||||
account_id: int
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class FileBase(BaseModel):
|
||||
filename: str
|
||||
original_size: int
|
||||
sha256: str
|
||||
|
||||
class FileCreate(FileBase):
|
||||
download_token: str
|
||||
|
||||
class File(FileBase):
|
||||
id: int
|
||||
user_id: int
|
||||
upload_time: datetime.datetime
|
||||
download_token: str
|
||||
parts: List[FilePart] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class UserBase(BaseModel):
|
||||
email: str
|
||||
|
||||
class UserCreate(UserBase):
|
||||
pass
|
||||
|
||||
class User(UserBase):
|
||||
id: int
|
||||
created_at: datetime.datetime
|
||||
accounts: List[Account] = []
|
||||
files: List[File] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class StorageStatus(BaseModel):
|
||||
total_space: int
|
||||
used_space: int
|
||||
free_space: int
|
||||
accounts: List[Account]
|
||||
Reference in New Issue
Block a user