<?php

/**
 * Rental Dates Configuration
 *
 * Cấu hình các mốc thời gian trong quy trình thuê kimono.
 * Tất cả giá trị được tính theo SỐ NGÀY TRƯỚC ngày sử dụng (wearing date).
 *
 * Tham khảo: KIREI_Specs_v4 - Slide 5 / 23 "Organizing the Period"
 *
 * Timeline:
 * | Thời hạn                    | Quy trình                                        |
 * |-----------------------------|--------------------------------------------------|
 * | 18 ngày trước ngày sử dụng  | Đặt chỗ (reservation)                            |
 * | 15 ngày trước ngày sử dụng  | Thời hạn nộp ID (trong 3 ngày kể từ đặt chỗ)     |
 * | 14-13 ngày trước            | Thời gian review và nộp lại tài liệu (2 ngày)    |
 * | 12 ngày trước ngày sử dụng  | Ngày phê duyệt cuối cùng/xác nhận đơn hàng       |
 * | 11 ngày trước ngày sử dụng  | Ngày thanh toán dự kiến                          |
 * | 10 ngày trước ngày sử dụng  | Ngày cửa hàng gửi sản phẩm                       |
 * | 3 ngày trước ngày sử dụng   | Giao sản phẩm cho khách                          |
 */

return [
    /*
    |--------------------------------------------------------------------------
    | Reservation & Identity Verification
    |--------------------------------------------------------------------------
    */

    // Số ngày tối thiểu trước ngày sử dụng để có thể đặt chỗ
    'min_days_before_reservation' => (int) env('RENTAL_MIN_DAYS_RESERVATION', 18),

    // Số ngày để nộp ID sau khi đặt chỗ
    'id_submission_days' => (int) env('RENTAL_ID_SUBMISSION_DAYS', 3),

    // Deadline nộp ID (số ngày trước ngày sử dụng)
    'id_submission_deadline_days' => (int) env('RENTAL_ID_DEADLINE_DAYS', 15),

    // Thời gian review và yêu cầu nộp lại tài liệu (ngày)
    'review_resubmission_days' => (int) env('RENTAL_REVIEW_DAYS', 2),

    // Ngày phê duyệt cuối cùng / xác nhận đơn hàng (số ngày trước ngày sử dụng)
    'final_approval_deadline_days' => (int) env('RENTAL_FINAL_APPROVAL_DAYS', 12),

    /*
    |--------------------------------------------------------------------------
    | Payment
    |--------------------------------------------------------------------------
    */

    // Ngày thanh toán dự kiến (số ngày trước ngày sử dụng)
    'payment_deadline_days' => (int) env('RENTAL_PAYMENT_DEADLINE_DAYS', 11),

    /*
    |--------------------------------------------------------------------------
    | Shipping & Delivery
    |--------------------------------------------------------------------------
    */

    // Ngày cửa hàng gửi sản phẩm (số ngày trước ngày sử dụng)
    'store_shipping_days' => (int) env('RENTAL_STORE_SHIPPING_DAYS', 10),

    // Ngày giao sản phẩm cho khách (số ngày trước ngày sử dụng)
    'product_delivery_days' => (int) env('RENTAL_PRODUCT_DELIVERY_DAYS', 3),

    /*
    |--------------------------------------------------------------------------
    | Return
    |--------------------------------------------------------------------------
    */

    // Số ngày sau ngày sử dụng để trả hàng
    // 着用日+2日 = 5泊6日（お届け-3〜返却+2）。環境で変わらない仕様値のため固定（env非依存）。
    'return_after_days' => 2,

    // Số ngày sau ngày trả để hàng về đến cửa hàng
    'store_arrival_after_return_days' => (int) env('RENTAL_STORE_ARRIVAL_DAYS', 1),

    /*
    |--------------------------------------------------------------------------
    | Rental Period
    |--------------------------------------------------------------------------
    */

    // Số đêm thuê mặc định (5泊6日 = 5 đêm 6 ngày)
    'default_rental_nights' => (int) env('RENTAL_DEFAULT_NIGHTS', 5),

    // Số ngày nhận hàng trước ngày mặc (để chuẩn bị)
    'receive_before_wearing_days' => (int) env('RENTAL_RECEIVE_BEFORE_DAYS', 1),

    /*
    |--------------------------------------------------------------------------
    | Provisional Order
    |--------------------------------------------------------------------------
    */

    // Số ngày hết hạn đơn hàng tạm (provisional order)
    'provisional_expiration_days' => (int) env('RENTAL_PROVISIONAL_EXPIRATION_DAYS', 3),

    // Số lần tối đa bị từ chối xác minh danh tính
    'max_identity_rejection_count' => (int) env('RENTAL_MAX_REJECTION_COUNT', 2),

    /*
    |--------------------------------------------------------------------------
    | Block Dates (レンタル不可期間)
    |--------------------------------------------------------------------------
    */

    // 着用日の前（発送準備・配送）
    // ※ 当店発送日(store_shipping_days=10)以上にしないと、出荷済み期間が別注文で
    //   空き扱いになり物理的に不可能な二重予約が起き得るため既定を 10 とする。
    'block_days_before' => (int) env('RENTAL_BLOCK_DAYS_BEFORE', 10),

    // 着用日の後（返却・検品・クリーニング）
    'block_days_after' => (int) env('RENTAL_BLOCK_DAYS_AFTER', 50),
];
