Files
OSIT-AE-API-FastAPI/app/models/membership_cfg_models.py
2021-06-24 17:50:11 -04:00

48 lines
2.0 KiB
Python

from __future__ import annotations
import datetime, hashlib, logging, os, pytz, redis, secrets
from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
from app.db_sql import redis_lookup_id_random
from app.lib_general import log, logging
from app.models.common_field_schema import base_fields, default_num_bytes
class Membership_Cfg_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
account_name: Optional[str]
cycle_type: Optional[str]
membership_length: Optional[int] = Field(0, ge=0, lt=150)
prorate: Optional[bool] = False
calendar_year_start_buffer_days: Optional[int] = Field(0, ge=0, lt=150)
calendar_year_start_buffer_on: Optional[datetime.datetime] = None
calendar_year_start_on: Optional[datetime.datetime] = None
calendar_year_end_on: Optional[datetime.datetime] = None
calendar_year_end_buffer_days: Optional[int] = Field(0, ge=0, lt=150)
calendar_year_end_buffer_on: Optional[datetime.datetime] = None
enable_privacy_view: Optional[bool] = False
renew_warning_hours: Optional[int]
accept_message: Optional[str]
reject_message: Optional[str]
renew_message: Optional[str]
default_no_reply_email: Optional[str]
default_no_reply_name: Optional[str]
confirm_email: Optional[str]
confirm_name: Optional[str]
# Including JSON data
# extended_membership_member_profile: Optional[str] # list of dicts outlining extended (custom) membership profile fields for client
# extended_membership_member_profile: Optional[Json] = '[]' # list of dicts outlining extended (custom) membership profile fields for client
# extended_membership_member_profile: Optional[Json] # list of dicts outlining extended (custom) membership profile fields for client
extended_membership_member_profile: Optional[str] # list of dicts outlining extended (custom) membership profile fields for client
Membership_Cfg_Base.update_forward_refs()