Base URL: https://planly.onrender.com/api
Users
User Model
_id
ObjectId
phoneNumber
String (unique, required)
firstName
String (required)
lastName
String (required)
role
String (e.g. 'admin', 'seller', 'manager')
owner
Boolean (default: false)
password
String (required)
POST
/users/register
Auth Required
Yangi userni ro'yxatdan o'tkazadi (faqat birinchi marta).
Request Body:
{ "phoneNumber": "String", "firstName": "String", "lastName": "String", "role": "String", "password": "String" }
Response:
{ "message": "User created successfully" }
POST
/users/login
Auth Not Required
User login qiladi va token qaytaradi.
Request Body:
{ "phoneNumber": "String", "password": "String" }
Response:
{ "token": "JWT_TOKEN", "user": { "_id": "String", "firstName": "String", "lastName": "String", "role": "String", "owner": "Boolean" } }
GET
/users/
Auth Required
Barcha foydalanuvchilarni olish.
GET
/users/me
Auth Required
Kirish qilgan userning shaxsiy ma'lumotlarini olish.
GET
/users/:id
Auth Required
Berilgan ID bo'yicha bitta foydalanuvchini olish.
PUT
/users/:id
Auth Required
Foydalanuvchini yangilash.
DELETE
/users/:id
Auth Required
Admin Only
Foydalanuvchini o'chirish (faqat admin uchun).
Products
Product Model
_id
ObjectId
title
String (required)
price
Number (required)
ID
Number (unique, required)
stock
Number (default: 1)
unit
String (enum: ['дона', 'кг', 'метр', 'литр', 'м²', 'м³', 'сет', 'упаковка'])
from
Object
createdAt
Date
updatedAt
Date
GET
/products/
Auth Required
Barcha mahsulotlarni olish.
GET
/products/one/:id
Auth Required
Berilgan ID bo'yicha bitta mahsulotni olish.
POST
/products/create
Auth Required
Yangi mahsulot qo'shish.
Request Body:
{ "title": "String", "price": "Number", "ID": "Number", "stock": "Number", "unit": "String", "from": { "phoneNumber": "String", "address": "String", "name": "String" } }
PUT
/products/:id
Auth Required
Mahsulotni yangilash.
DELETE
/products/:id
Auth Required
Mahsulotni o'chirish.
Orders
Order Model
_id
ObjectId
customer
ObjectId (ref: Users)
products
Array of Product Objects
client
Object
status
String (required)
payType
String (default: '--')
totalPrice
Number (default: 0)
orderDate
Date (default: Date.now)
GET
/orders/
Auth Required
Barcha buyurtmalarni olish (so'nggi buyurtmalar tartibida).
GET
/orders/stats
Auth Required
Buyurtmalar statistik ma'lumotlarini olish.
GET
/orders/:id
Auth Required
Berilgan ID bo'yicha bitta buyurtmani olish.
POST
/orders/new
Auth Required
Yangi buyurtma yaratish.
Request Body:
{ "customer": "User ID", "products": [ { "product": "Product ID", "amount": "Number", "unit": "String", "price": "Number" } ], "client": { "fullName": "String", "phoneNumber": "String", "address": "String" }, "status": "String", "payType": "String" }
PUT
/orders/:id
Auth Required
Buyurtmani yangilash.
DELETE
/orders/:id
Auth Required
Buyurtmani bekor qilish yoki o'chirish.
Statistics
Stats Model
filter
Object
daily
Array of daily stats
monthly
PeriodStatSchema
yearly
PeriodStatSchema
PeriodStatSchema
current
StatDetailSchema
previous
StatDetailSchema
growth
Object
StatDetailSchema
totalOrders
Number
totalOrderPrice
Number
totalProducts
Number
totalStockValue
Number
soldCount
Number
soldValue
Number
revenue
Number
cost
Number
profit
Number
loss
Number
margin
Number
averageOrderValue
Number
topSelling
Object