32 lines
812 B
Python
32 lines
812 B
Python
from __future__ import annotations
|
|
|
|
from peewee import (
|
|
CharField,
|
|
IntegerField,
|
|
FloatField,
|
|
Check,
|
|
SQL,
|
|
)
|
|
|
|
from .base import BaseModel
|
|
|
|
|
|
class Recipe(BaseModel):
|
|
name = CharField(unique=True)
|
|
size_ml = IntegerField(constraints=[Check("size_ml > 0")])
|
|
base_pg_pct = FloatField(constraints=[Check("base_pg_pct >= 0")])
|
|
base_vg_pct = FloatField(constraints=[Check("base_vg_pct >= 0")])
|
|
nic_pct = FloatField(constraints=[Check("nic_pct >= 0 AND nic_pct <= 100")])
|
|
nic_base = CharField(constraints=[Check("nic_base IN ('PG','VG')")])
|
|
|
|
class Meta:
|
|
table_name = "recipe"
|
|
constraints = [
|
|
SQL(
|
|
"CHECK (base_pg_pct >= 0 AND base_vg_pct >= 0 AND (base_pg_pct + base_vg_pct) = 100)"
|
|
)
|
|
]
|
|
|
|
|
|
__all__ = ["Recipe"]
|