به محتوای اصلی

مدل داده

مدل داده قلب پروژه است: موجودیت‌ها، فیلدها، قیدها و روابط را اینجا تعریف می‌کنید و 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) بعد از هر اعمال، خودکار به‌روز می‌شوند.

ویرایش مدل داده روی موبایل فقط-خواندنی است؛ برای طراحی مدل از دسکتاپ استفاده کنید.