mirror of
https://github.com/fccapria/scientify.git
synced 2026-01-11 18:26:12 +00:00
69 lines
No EOL
1.3 KiB
Python
69 lines
No EOL
1.3 KiB
Python
import uuid
|
|
|
|
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
from datetime import datetime
|
|
|
|
from fastapi_users import schemas
|
|
|
|
|
|
class UserRead(schemas.BaseUser[uuid.UUID]):
|
|
first_name: Optional[str] = None
|
|
last_name: Optional[str] = None
|
|
|
|
|
|
class UserCreate(schemas.BaseUserCreate):
|
|
first_name: Optional[str] = None
|
|
last_name: Optional[str] = None
|
|
|
|
|
|
class UserUpdate(schemas.BaseUserUpdate):
|
|
first_name: Optional[str] = None
|
|
last_name: Optional[str] = None
|
|
|
|
|
|
class AuthorOut(BaseModel):
|
|
id: int
|
|
name: str
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class KeywordOut(BaseModel):
|
|
id: int
|
|
name: str
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class PublicationOut(BaseModel):
|
|
id: int
|
|
title: str
|
|
filename: Optional[str]
|
|
upload_date: datetime
|
|
journal: Optional[str] = None
|
|
year: Optional[int] = None
|
|
doi: Optional[str] = None
|
|
authors: List[AuthorOut]
|
|
keywords: List[KeywordOut]
|
|
user_id: Optional[uuid.UUID] = None
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
|
|
class UserPublicationOut(BaseModel):
|
|
id: int
|
|
title: str
|
|
filename: Optional[str]
|
|
upload_date: datetime
|
|
journal: Optional[str] = None
|
|
year: Optional[int] = None
|
|
doi: Optional[str] = None
|
|
authors: List[AuthorOut]
|
|
keywords: List[KeywordOut]
|
|
|
|
class Config:
|
|
orm_mode = True |