41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from datetime import datetime, time, timedelta
|
|
from pydantic import BaseModel, EmailStr, Field
|
|
from typing import Dict, List, Optional, Set, Union
|
|
|
|
|
|
class JournalBase(BaseModel):
|
|
#id_random: str = None # This should not be None. It is required.
|
|
#id_random: str = Field(None, example='iyOrkTnHEuyYUNeePbEdIg', min_length=11, max_length=22)
|
|
account_id_random: str = None # This should not be None. It is required.
|
|
user_id_random: str = Field(None, example='iyOrkTnHEuyYUNeePbEdIg', min_length=11, max_length=22)
|
|
|
|
default_private: Optional[bool] = None
|
|
default_public: Optional[bool] = None
|
|
default_personal: Optional[bool] = None
|
|
default_professional: Optional[bool] = None
|
|
|
|
private_passcode: str = Field(None, example='my passcode', min_length=3, max_length=20)
|
|
|
|
title: str = Field(None, example='The Journal Title', min_length=3, max_length=200)
|
|
summary: Optional[str] = None
|
|
|
|
hide: Optional[bool] = None
|
|
status: Optional[int] = None
|
|
archive_on: Optional[datetime] = None
|
|
archive: Optional[bool] = None
|
|
priority: Optional[bool] = None
|
|
sort: Optional[int] = None
|
|
group: Optional[str] = None
|
|
notes: Optional[str] = None
|
|
|
|
|
|
class JournalIn(JournalBase):
|
|
id_random: str = Field(None, example='iyOrkTnHEuyYUNeePbEdIg', min_length=11, max_length=22)
|
|
|
|
|
|
class JournalOut(JournalBase):
|
|
id_random: str = Field(None, example='iyOrkTnHEuyYUNeePbEdIg', min_length=11, max_length=22)
|
|
created_on: datetime
|
|
update_on: Optional[datetime] = None
|
|
|