gui-db/db/__init__.py
2023-12-08 14:34:09 +03:00

46 lines
1.3 KiB
Python

from typing import List
from pydantic import BaseModel, Field, TypeAdapter
from uuid import UUID, uuid4
import json
class Record(BaseModel):
id: UUID = Field(default_factory=uuid4)
name: str | None = ''
description:str | None = ''
img_path: str | None = ''
class DB:
records: List[Record] = []
path = ''
def __init__(self, path=''):
if path != '':
with open(path, 'r') as file:
js_data = json.load(file)
tmp = []
for item in js_data:
tmp.append(json.loads(item))
js_data = tmp
self.records = [Record(**model_data) for model_data in js_data]
self.path = path
def add_record(self, name='', description='', img_path=''):
new_rec = Record(name=name, description=description, img_path=img_path)
self.records.append(new_rec)
with open(self.path, 'w') as file:
model_list_json = [record.model_dump_json() for record in self.records]
json.dump(model_list_json, file)
def edit_record(self, id):
pass
def delete_record(self, id):
for i in range(len(self.records)):
if self.records[i].id == id:
self.records.pop(i)