Files
Verificacion_EFOS_Backend/app/modules/moves/schema.py

57 lines
1.2 KiB
Python

from pydantic import BaseModel, EmailStr, Field, validator, ConfigDict
from datetime import datetime
from typing import Optional, Dict, Any
#
import re
from enum import Enum
#
class Action(Enum):
UPLOAD = "upload"
MATCH = "match"
QUERY = "query"
CONSUMPTION = "consumption"
CREATE = "create"
DELETE = "delete"
SOLD = "sold"
INTERACTION = "interaction"
COMMENT = "comment"
CONFIG = "config"
EMAIL = "email"
class Target(Enum):
CLIENT = "client"
INVOICES = "invoices"
FEED = "feed"
EFOS = "efos"
CREDITS = "credits"
USERS = "users"
EMAIL = "email"
class MovesBase(BaseModel):
action_type: Action
target_type : Target
description: Optional[str]
move_metadata: Optional[Dict[str, Any]] = None
ip_address: Optional[str]
user_agent: Optional[str]
is_active: bool = True
class MoveCreate(MovesBase):
client_id: int
user_id: int
class MoveUpdate(MoveCreate):
pass
class MovesResponse(MoveCreate):
id: int
created_at: datetime
created_by: Optional[int]
updated_at: Optional[datetime]
deleted_by: Optional[int]
model_config = ConfigDict(from_attributes=True)