مدل داده
مدل داده قلب پروژه است: موجودیتها، فیلدها، قیدها و روابط را اینجا تعریف میکنید و API از روی همین تعریف ساخته میشود.
موجودیتها
هر موجودیت یک نام نمایشی فارسی دارد («سفارش») و یک شناسهٔ انگلیسی (order) که
در آدرس اندپوینت مینشیند. شناسه باید انگلیسی، حروف کوچک و بدون فاصله باشد —
مثل order_item. موجودیت بدون فیلد مجاز نیست.
انواع فیلد
متن، عدد، بولین، تاریخ، ایمیل، موبایل، نشانی وب، فهرست (enum) و JSON. برای
موبایل، شمارهها در قالب استاندارد E.164 (مثل +98912...) ذخیره میشوند و
ارقام فارسی ورودی بهصورت خودکار نرمال میشوند.
قیدها
روی هر فیلد میتوانید قید بگذارید: الزامی، یکتا، حداقل/حداکثر (طول یا مقدار) و الگوی regex. قیدها همان ابتدا تعریف شوند تا دادهٔ نامعتبر هرگز ذخیره نشود؛ درخواستی که قید را نقض کند با خطای ۴۲۲ و پیام روشن رد میشود.
فیلد محاسباتی
فیلدی که ذخیره نمیشود و هنگام خواندن، از روی بقیهٔ فیلدها محاسبه میشود. فرمول با زبان CEL نوشته میشود:
total_with_tax = total * 1.09
برای مقادیر مشتقشده (مثل قیمت با مالیات) همیشه بهجای ذخیره، فیلد محاسباتی بهکار ببرید تا هیچوقت ناهماهنگ نشود.
روابط
سه نوع رابطه پشتیبانی میشود: belongsTo (تعلق به والد)، hasMany (یکبهچند) و manyToMany (چندبهچند). بعد از تعریف رابطه:
# رکوردهای مرتبط را همراه پاسخ بگیرید
GET /v1/order?include=order_item
# یا از مسیر تو در تو استفاده کنید
GET /v1/order/{id}/order_item
تغییر مدل بعد از انتشار
تغییرات با «ذخیره و اعمال» اجرا میشوند و فیکارو قبل از اعمال میگوید هر تغییر ایمن است یا مخرب — جزئیات در مفاهیم پایه. مستندات و خروجیهای پروژه (Postman ،Bruno ،SDK) بعد از هر اعمال، خودکار بهروز میشوند.
ویرایش مدل داده روی موبایل فقط-خواندنی است؛ برای طراحی مدل از دسکتاپ استفاده کنید.