openapi: 3.0.3 info: title: 'MRP App | API Documentation' description: '' version: 1.0.0 servers: - url: 'https://mrp.seyyaryazilimci.com' tags: - name: Endpoints description: '' - name: 'Giriş - Çıkış İşlemleri' description: '' - name: 'Stok İşlemleri' description: '' - name: 'İş Emirleri' description: '' paths: /api/mobile/job-orders/search: post: summary: '' operationId: postApiMobileJobOrdersSearch description: '' parameters: [] responses: { } tags: - Endpoints security: [] /api/mobile/client/login: post: summary: 'Kullanıcı Girişi' operationId: kullancGirii description: 'Bu endpoint kullanıcı girişini yapar ve access token ile birlikte kullanıcı bilgilerini döner.' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"success\": true,\n \"title\": \"Başarılı\",\n \"message\": \"Kullanıcı Giriş İşlemi Başarılı\",\n \"data\": {\n \"id\": 2,\n \"c_sicil\": 26000,\n \"c_name\": \"Muammer\", // örnektir\n \"c_surname\": \"AKSOY\", // örnektir\n \"c_role\": \"Üretim - Montaj Planlama Görevlisi\", // örnektir\n \"c_role_code\": \"planlama\", // örnektir\n \"c_permissions\": [\n \"stok_ekleme\",\n \"stok_guncelleme\",\n \"stok_silme\",\n \"stok_arama\",\n \"hurda_ekleme\",\n \"is_emri_ekleme\",\n \"is_emri_listeleme\",\n \"is_emri_arama\",\n ...\n ],\n \"email\": \"muammer.aksoy\", // örnektir\n \"token_type\": \"Bearer\",\n \"access_token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...\"\n }\n}" 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Kullanıcı Bilgileri Hatalı ve/veya Üyelik pasif' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Kullanıcı Bilgileri Hatalı ve/veya Üyelik pasif' data: type: array example: [] tags: - 'Giriş - Çıkış İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: c_sicil: type: integer description: 'Kullanıcının sicil numarası.' example: 26000 nullable: false password: type: string description: 'Kullanıcının şifresi.' example: '12345678' nullable: false required: - c_sicil - password security: [] /api/mobile/client/check: get: summary: 'Oturum Kontrolü (Check)' operationId: oturumKontrolCheck description: 'Bu endpoint, kullanıcının oturumunun geçerli olup olmadığını kontrol eder.' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: "{\n \"success\": true,\n \"isLoggedIn\": true,\n \"data\": {\n \"id\": 2,\n \"c_sicil\": 26000,\n \"c_name\": \"Muammer\", // örnektir\n \"c_surname\": \"AKSOY\", // örnektir\n \"c_role\": \"Üretim - Montaj Planlama Görevlisi\", // örnektir\n \"c_role_code\": \"planlama\", // örnektir\n \"c_permissions\": [\n \"stok_ekleme\",\n \"stok_guncelleme\",\n \"stok_silme\",\n \"stok_arama\",\n \"hurda_ekleme\",\n \"is_emri_ekleme\",\n \"is_emri_listeleme\",\n \"is_emri_arama\",\n ...\n ],\n \"email\": \"muammer.aksoy\", // örnektir\n \"token_type\": \"Bearer\",\n \"access_token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...\"\n }\n}" 401: description: '' content: application/json: schema: type: object example: success: false isLoggedIn: false properties: success: type: boolean example: false isLoggedIn: type: boolean example: false tags: - 'Giriş - Çıkış İşlemleri' /api/mobile/client/logout: get: summary: 'Kullanıcı Çıkışı' operationId: kullanck description: 'Bu endpoint kullanıcının oturumunu sonlandırır.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Çıkış Gerçekleştirildi' data: [] properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Çıkış Gerçekleştirildi' data: type: array example: [] tags: - 'Giriş - Çıkış İşlemleri' /api/mobile/stock/store: post: summary: 'Stok Ekleme' operationId: stokEkleme description: 'Yeni bir stok kaydı oluşturur.' parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Stok ekleme işlemi başarılı' data: stk_product_name: 'Takozlu Germe Sacı' stk_product_code: 1-06-007 stk_product_shelfcode: 1630-C-4-01 stk_product_total: '106' stk_product_reserved: '37' stk_product_min: '10' stk_product_unit: adet stk_cmp_code: firma_kodu stk_updated_at: '2025-08-03T10:12:09.000000Z' stk_created_at: '2025-08-03T10:12:09.000000Z' stk_id: 6 properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Stok ekleme işlemi başarılı' data: type: object properties: stk_product_name: type: string example: 'Takozlu Germe Sacı' stk_product_code: type: string example: 1-06-007 stk_product_shelfcode: type: string example: 1630-C-4-01 stk_product_total: type: string example: '106' stk_product_reserved: type: string example: '37' stk_product_min: type: string example: '10' stk_product_unit: type: string example: adet stk_cmp_code: type: string example: firma_kodu stk_updated_at: type: string example: '2025-08-03T10:12:09.000000Z' stk_created_at: type: string example: '2025-08-03T10:12:09.000000Z' stk_id: type: integer example: 6 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok ekleme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok ekleme yetkiniz yok !!!' data: type: array example: [] 500: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok ekleme işleminde hata oluştu. Lütfen yöneticinize bildiriniz !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok ekleme işleminde hata oluştu. Lütfen yöneticinize bildiriniz !!!' data: type: array example: [] tags: - 'Stok İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: stk_product_name: type: string description: 'Ürün adı.' example: 'Takozlu Germe Sacı' nullable: false stk_product_code: type: string description: 'Ürün kodu.' example: 1-06-007 nullable: false stk_product_shelfcode: type: string description: 'Raf kodu.' example: 1630-C-4-01 nullable: false stk_product_total: type: integer description: 'Toplam miktar.' example: 106 nullable: false stk_product_reserved: type: integer description: 'Rezerve miktar.' example: 37 nullable: false stk_product_min: type: integer description: 'Minimum stok miktarı.' example: 10 nullable: false stk_product_unit: type: string description: Birim. example: 'adet (veya kilo ise kg gibi)' nullable: false required: - stk_product_name - stk_product_code - stk_product_shelfcode - stk_product_total - stk_product_reserved - stk_product_min - stk_product_unit /api/mobile/stock/search: post: summary: 'Stok Arama' operationId: stokArama description: 'Belirtilen ürün koduna göre stokları arar ve listeler.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Stoklar Arama Sonuçları Getirildi' data: - stk_id: 6 stk_product_name: 'Takozlu Germe Sacı' stk_product_code: 1-06-007 stk_product_shelfcode: 1630-C-4-01 stk_product_total: 106 stk_product_reserved: 37 stk_product_min: 10 stk_product_unit: adet stk_cmp_code: firma_kodu deleted_at: null stk_created_at: '2025-08-03T10:12:09.000000Z' stk_updated_at: '2025-08-03T10:12:09.000000Z' properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Stoklar Arama Sonuçları Getirildi' data: type: array example: - stk_id: 6 stk_product_name: 'Takozlu Germe Sacı' stk_product_code: 1-06-007 stk_product_shelfcode: 1630-C-4-01 stk_product_total: 106 stk_product_reserved: 37 stk_product_min: 10 stk_product_unit: adet stk_cmp_code: firma_kodu deleted_at: null stk_created_at: '2025-08-03T10:12:09.000000Z' stk_updated_at: '2025-08-03T10:12:09.000000Z' items: type: object properties: stk_id: type: integer example: 6 stk_product_name: type: string example: 'Takozlu Germe Sacı' stk_product_code: type: string example: 1-06-007 stk_product_shelfcode: type: string example: 1630-C-4-01 stk_product_total: type: integer example: 106 stk_product_reserved: type: integer example: 37 stk_product_min: type: integer example: 10 stk_product_unit: type: string example: adet stk_cmp_code: type: string example: firma_kodu deleted_at: type: string example: null stk_created_at: type: string example: '2025-08-03T10:12:09.000000Z' stk_updated_at: type: string example: '2025-08-03T10:12:09.000000Z' 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok arama yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok arama yetkiniz yok !!!' data: type: array example: [] 500: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stoklar getirilirken bir hata oluştu' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stoklar getirilirken bir hata oluştu' data: type: array example: [] tags: - 'Stok İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: stk_product_code: type: string description: 'Aranacak ürün kodu.' example: 1-06-007 nullable: false required: - stk_product_code /api/mobile/stock/delete: post: summary: 'Stok Silme' operationId: stokSilme description: 'Bu endpoint, belirli bir stok kaydını silmek için kullanılır.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Stok silme işlemi başarılı' data: [] properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Stok silme işlemi başarılı' data: type: array example: [] 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok silme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok silme yetkiniz yok !!!' data: type: array example: [] 404: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok Bulunamadı !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok Bulunamadı !!!' data: type: array example: [] 500: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok silme işleminde bir hata oluştu. Lütfen yöneticinize bildiriniz !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok silme işleminde bir hata oluştu. Lütfen yöneticinize bildiriniz !!!' data: type: array example: [] tags: - 'Stok İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: stk_id: type: integer description: "Silinecek stok kaydının ID'si." example: 1 nullable: false stk_cmp_code: type: string description: 'Kullanıcının ait olduğu firma kodu. Bu değer otomatik olarak kullanıcıdan alınır.' example: firma_kodu nullable: false required: - stk_id - stk_cmp_code /api/mobile/stock/edit: post: summary: 'Stok Bilgisi Getir (Düzenleme İçin)' operationId: stokBilgisiGetirDzenlemein description: "Belirtilen stok ID'sine göre stok bilgilerini getirir.\nBu endpoint, stok güncelleme işlemi öncesinde mevcut stok bilgilerini almak için kullanılır." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Stok bilgisi getirildi' data: stk_id: 2 stk_product_name: 'Metal Piston' stk_product_code: 1-02-014 stk_product_shelfcode: 1602-H-4-05 stk_product_total: 87 stk_product_reserved: 10 stk_product_min: 10 stk_product_unit: adet stk_cmp_code: firma_kodu deleted_at: null stk_created_at: '2025-07-09T07:18:36.000000Z' stk_updated_at: '2025-07-30T06:07:27.000000Z' properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Stok bilgisi getirildi' data: type: object properties: stk_id: type: integer example: 2 stk_product_name: type: string example: 'Metal Piston' stk_product_code: type: string example: 1-02-014 stk_product_shelfcode: type: string example: 1602-H-4-05 stk_product_total: type: integer example: 87 stk_product_reserved: type: integer example: 10 stk_product_min: type: integer example: 10 stk_product_unit: type: string example: adet stk_cmp_code: type: string example: firma_kodu deleted_at: type: string example: null stk_created_at: type: string example: '2025-07-09T07:18:36.000000Z' stk_updated_at: type: string example: '2025-07-30T06:07:27.000000Z' 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok güncelleme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok güncelleme yetkiniz yok !!!' data: type: array example: [] 404: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok Bulunamadı !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok Bulunamadı !!!' data: type: array example: [] tags: - 'Stok İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: stk_id: type: integer description: "Güncellenecek stok kaydının ID'si." example: 2 nullable: false stk_cmp_code: type: string description: 'Firma kodu.' example: firma_kodu nullable: false required: - stk_id - stk_cmp_code /api/mobile/stock/update: post: summary: 'Stok Güncelleme' operationId: stokGncelleme description: 'Bu endpoint, mevcut bir stok kaydını güncellemek için kullanılır.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Stok güncelleme işlemi başarılı' data: stk_cmp_code: firma_kodu stk_product_name: '259 Pleyt' stk_product_code: 1-01-061 stk_product_shelfcode: 1602-C-2-04 stk_product_total: '290' stk_product_reserved: '70' stk_product_min: '10' stk_product_unit: adet properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Stok güncelleme işlemi başarılı' data: type: object properties: stk_cmp_code: type: string example: firma_kodu stk_product_name: type: string example: '259 Pleyt' stk_product_code: type: string example: 1-01-061 stk_product_shelfcode: type: string example: 1602-C-2-04 stk_product_total: type: string example: '290' stk_product_reserved: type: string example: '70' stk_product_min: type: string example: '10' stk_product_unit: type: string example: adet 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok güncelleme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok güncelleme yetkiniz yok !!!' data: type: array example: [] 404: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok Bulunamadı !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok Bulunamadı !!!' data: type: array example: [] tags: - 'Stok İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: stk_product_name: type: string description: 'Ürün adı.' example: '259 Pleyt' nullable: false stk_product_code: type: string description: 'Ürün kodu.' example: 1-01-061 nullable: false stk_product_shelfcode: type: string description: 'Raf kodu.' example: 1602-C-2-04 nullable: false stk_product_total: type: integer description: 'Toplam stok miktarı.' example: 290 nullable: false stk_product_reserved: type: integer description: 'Rezerve stok miktarı.' example: 70 nullable: false stk_product_min: type: integer description: 'Minimum stok seviyesi.' example: 10 nullable: false stk_product_unit: type: string description: 'Stok birimi.' example: adet nullable: false stk_id: type: integer description: "Güncellenecek stok kaydının ID'si." example: 1 nullable: false stk_cmp_code: type: string description: 'Firma kodu.' example: firma_kodu nullable: false required: - stk_product_name - stk_product_code - stk_product_shelfcode - stk_product_total - stk_product_reserved - stk_product_min - stk_product_unit - stk_id - stk_cmp_code /api/mobile/scrap/store: post: summary: 'Hurda Ekleme' operationId: hurdaEkleme description: "Belirli bir ürünün hurdaya ayrılmasını sağlar. Kullanıcının \"hurda_ekleme\" yetkisine sahip olması gerekir.\n\nHurda işlemi sonrası ürünün stok miktarı güncellenir. İşlem sırasında ilgili iş emrinin varlığı ve hurdaya ayrılacak miktarın stoktan fazla olmaması kontrol edilir." parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'Hurda ekleme işlemi başarılı' data: [] properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'Hurda ekleme işlemi başarılı' data: type: array example: [] 400: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok adedinden fazla hurdaya alamazsınız !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok adedinden fazla hurdaya alamazsınız !!!' data: type: array example: [] 401: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Hurda ekleme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Hurda ekleme yetkiniz yok !!!' data: type: array example: [] 404: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'Stok Bulunamadı !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'Stok Bulunamadı !!!' data: type: array example: [] tags: - 'Stok İşlemleri' requestBody: required: true content: application/json: schema: type: object properties: stk_product_code: type: string description: 'Malzeme kodu.' example: 1-01-061 nullable: false stk_product_shelfcode: type: string description: 'Raf kodu.' example: 1602-C-2-04 nullable: false scr_quantity: type: number description: 'Hurdaya ayrılacak miktar. Negatif ya da stoktan büyük olamaz.' example: 10.0 nullable: false scr_detail: type: string description: 'Hurda açıklaması.' example: 'Çatlak çıktı' nullable: false scr_work_order: type: string description: 'Hurda işleminin ait olduğu iş emri.' example: JO-20250803 nullable: false required: - stk_product_code - stk_product_shelfcode - scr_quantity - scr_detail - scr_work_order /api/mobile/job-orders: get: summary: 'İş Emirlerini Listele' operationId: EmirleriniListele description: 'Bu endpoint, kullanıcıya ait şirkete ait tüm iş emirlerini döner.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'İş Emirleri Getirildi' data: - jo_id: 1 jo_code: ORD-001 jo_desc: 'Arka süspansiyon montajı' jo_product_code: PRD-23 jo_traceability: TRACE-123 jo_customer_code: CUST-10 jo_delivery_date: '2025-08-01' jo_create_user: 26000 jo_cmp_code: firma_kodu jo_status: 0 deleted_at: null jo_created_at: '2025-07-30T06:03:21.000000Z' jo_updated_at: '2025-07-30T06:03:21.000000Z' properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'İş Emirleri Getirildi' data: type: array example: - jo_id: 1 jo_code: ORD-001 jo_desc: 'Arka süspansiyon montajı' jo_product_code: PRD-23 jo_traceability: TRACE-123 jo_customer_code: CUST-10 jo_delivery_date: '2025-08-01' jo_create_user: 26000 jo_cmp_code: firma_kodu jo_status: 0 deleted_at: null jo_created_at: '2025-07-30T06:03:21.000000Z' jo_updated_at: '2025-07-30T06:03:21.000000Z' items: type: object properties: jo_id: type: integer example: 1 jo_code: type: string example: ORD-001 jo_desc: type: string example: 'Arka süspansiyon montajı' jo_product_code: type: string example: PRD-23 jo_traceability: type: string example: TRACE-123 jo_customer_code: type: string example: CUST-10 jo_delivery_date: type: string example: '2025-08-01' jo_create_user: type: integer example: 26000 jo_cmp_code: type: string example: firma_kodu jo_status: type: integer example: 0 deleted_at: type: string example: null jo_created_at: type: string example: '2025-07-30T06:03:21.000000Z' jo_updated_at: type: string example: '2025-07-30T06:03:21.000000Z' 401: description: '' content: application/json: schema: type: object example: success: false title: Yetkisiz message: 'İş emri listeleme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Yetkisiz message: type: string example: 'İş emri listeleme yetkiniz yok !!!' data: type: array example: [] 500: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'İş Emirleri getirilirken bir hata oluştu' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'İş Emirleri getirilirken bir hata oluştu' data: type: array example: [] tags: - 'İş Emirleri' /api/mobile/job-orders/store: post: summary: 'İş Emri Ekle' operationId: EmriEkle description: "Bu endpoint, yeni bir iş emri oluşturmak için kullanılır.\nKullanıcının \"iş emri ekleme\" yetkisine sahip olması gerekir." parameters: [] responses: 201: description: '' content: application/json: schema: type: object example: success: true title: Başarılı message: 'İş Emri ekleme işlemi başarılı' data: [] properties: success: type: boolean example: true title: type: string example: Başarılı message: type: string example: 'İş Emri ekleme işlemi başarılı' data: type: array example: [] 401: description: '' content: application/json: schema: oneOf: - description: '' type: object example: success: false title: Hata message: 'İş emri ekleme yetkiniz yok !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'İş emri ekleme yetkiniz yok !!!' data: type: array example: [] - description: '' type: object example: success: false title: Hata message: 'İş emri kodu mevcut !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'İş emri kodu mevcut !!!' data: type: array example: [] 500: description: '' content: application/json: schema: type: object example: success: false title: Hata message: 'İş Emri ekleme işleminde hata oluştu. Lütfen yöneticinize bildiriniz !!!' data: [] properties: success: type: boolean example: false title: type: string example: Hata message: type: string example: 'İş Emri ekleme işleminde hata oluştu. Lütfen yöneticinize bildiriniz !!!' data: type: array example: [] tags: - 'İş Emirleri' requestBody: required: true content: application/json: schema: type: object properties: jo_code: type: string description: 'İş emri kodu.' example: '123' nullable: false jo_desc: type: string description: 'İş emri açıklaması.' example: asdasas nullable: false jo_product_code: type: string description: 'Ürün kodu.' example: asdsadsasadsa nullable: false jo_traceability: type: string description: 'İzlenebilirlik kodu.' example: Z-21 nullable: false jo_customer_code: type: string description: 'Müşteri kodu.' example: cus-asdsa nullable: false jo_delivery_date: type: date description: 'Teslimat tarihi. Format: Y-m-d.' example: '2025-08-30' nullable: false required: - jo_code - jo_desc - jo_product_code - jo_traceability - jo_customer_code - jo_delivery_date