You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
geodata-catalog/src/schemas.py

72 lines
1.7 KiB

from datetime import datetime, timedelta
from typing import Optional, Union
from pydantic import BaseModel
class HeaderBase(BaseModel):
database: str
spreadsheet: str
class HeaderCreate(HeaderBase):
pass
class Header(HeaderBase):
"""Заголовок описания набора геологических данных
по результатам экспедиционных исследований"""
class Config:
orm_mode = True
class ItemBase(BaseModel):
"""Описание набора геологических данных
по результатам экспедиционных исследований
"""
fadr: Optional[str] = None
internal_id: Optional[str] = None
x_coord: Optional[str] = None
y_coord: Optional[str] = None
gis_category: Optional[str] = None
category: Optional[str] = None
basin: Optional[str] = None
deposit: Optional[str] = None
well: Optional[str] = None
depth: Optional[str] = None
stratum: Optional[str] = None
owner: Optional[str] = None
org: Optional[str] = None
ownercontacts: Optional[str] = None
samplelist: Optional[str] = None
description: Optional[str] = None
form_dimentions: Optional[str] = None
datalist: Optional[str] = None
resolution: Optional[str] = None
date: Optional[Union[datetime, str]] = None
additional_info: Optional[str] = None
scanner: Optional[str] = None
comment: Optional[str] = None
class ItemCreate(ItemBase):
pass
class Item(ItemBase):
id: int
class Config:
orm_mode = True
class InsertStatus(BaseModel):
"""basic insertation status metrics"""
status: str
accepted: int
processed: int
process_time: timedelta