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