Files
hla_framework_bd/cli/src/models/service.py
T

47 lines
1.0 KiB
Python

import re
from pydantic import BaseModel, field_validator
from core.enums import ServiceStatus
class Service(BaseModel):
name: str
ioc_port: int
status: ServiceStatus
@property
def name_camel(self):
return self.name
@property
def name_upper(self):
return self.name.upper()
@property
def name_lower(self):
return self.name.lower()
@property
def name_lower_underscores(self):
return self.name.replace("-", "_").lower()
@property
def dir_name(self):
return self.name.lower()
def to_dict(self):
return {"name": self.name_camel, "ioc_port": self.ioc_port, "status": str(self.status)}
class Config:
use_enum_values = True
@field_validator("name")
@classmethod
def validate_name_chars(cls, value: str) -> str:
if not re.match(r"^[a-zA-Z0-9-]+$", value):
raise ValueError(
"name can only contain uppercase and lowercase letters, numbers, and dashes"
)
return value