#######################################
# Thymeleaf settings
#######################################
spring.thymeleaf.mode=HTML
spring.thymeleaf.cache=true
spring.thymeleaf.template-resolver-order=1
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.enabled=true


#######################################
# Datasource settings (Externalized via ENV or .env)
#######################################
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/u705432468_bf_v2
spring.datasource.username=u705432468_jams
spring.datasource.password=cvwkxam#
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
#spring.jpa.hibernate.ddl-auto=update # Comment this if DB is shared

#######################################
# HikariCP settings
#######################################
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.max-lifetime=600000
spring.datasource.hikari.connection-timeout=30000

#######################################
# Logging settings
#######################################
logging.level.org.springframework.web=ERROR
logging.level.com.sellproduct.controllers=ERROR
logging.level.org.hibernate=ERROR
logging.file=logs/web-admin.log
logging.level.org.thymeleaf=OFF
logging.level.org.thymeleaf.templateresolver=OFF
logging.level.org.thymeleaf.engine=OFF
log4j.appender.File.MaxFileSize=10MB
log4j.appender.File.MaxBackupIndex=10

#######################################
# Cache settings
#######################################
spring.cache.type=ehcache
spring.cache.ehcache.config=classpath:ehcache.xml
spring.resources.cache.cachecontrol.max-age=3600
spring.resources.cache.cachecontrol.cache-public=true

#######################################
# Server settings (Externalized)
#######################################
server.port=6545
server.ssl.enabled=false
server.error.include-exception=true
server.error.include-stacktrace=always

#######################################
# Thread pool settings
#######################################
server.tomcat.max-threads=300
server.tomcat.min-spare-threads=50
server.tomcat.accept-count=200

#######################################
# Gzip compression
#######################################
server.compression.enabled=true
server.compression.min-response-size=1024
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json

#######################################
# Multipart settings
#######################################
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

#######################################
# Miscellaneous settings
#######################################
spring.main.allow-bean-definition-overriding=true
spring.jpa.show-sql=false
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.data.rest.base-path=/api/ecommerce
spring.data.rest.detection-strategy=ANNOTATED
allowed.origins=//10.1.254.61:4200/
spring.web.resources.static-locations=classpath:/static/,classpath:/static/invoices/, ,classpath:/public/,classpath:/resources/,classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/,file:src/main/resources/static/
spring.mvc.static-path-pattern=/**
upload.directory=src/main/resources/static/invoices

#######################################
# Mail settings
#######################################
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=woldiauniversity.wumrts@gmail.com
spring.mail.password=wwva tmxk azuh utfa
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true


# application.properties
server.servlet.session.timeout=30m
server.servlet.session.cookie.http-only=true

#######################################
# JWT settings
#######################################
bikefixup.app.jwtSecret=zemenEcommerceSystem
bikefixup.app.jwtExpirationMs=86400000

#######################################
# JPA Initialization
#######################################
spring.jpa.defer-datasource-initialization=true

#######################################
# Razorpay settings
#######################################
razorpay.key_id=rzp_live_uPakUtCoctgHBh
razorpay.key_secret=4H3O2AWJl1wKZISUJdcC33v5

#######################################
# Otp Configuration
#######################################

# you can change otp limit from here
max.otp=3

# you can change otp cycle from here					  
max.bursts.per.day=3

# you can change hours for blocking user in millisecond 			  
three.hours=10800000

# you can change days for blocking user in millisecond 		 
twenty.four.hour=86400000	  



#baseurl =https://wati.bikefixup.co.in
baseurl=http://localhost:6545

spring.jpa.hibernate.ddl-auto=update

#######################################
# WhatsApi setting
#######################################
WHATSAPP_API_URL=https://graph.facebook.com/v19.0/319326401263971/messages
WHATSAPP_API_TOKEN=EAAGCszZAli2oBOzqvCH99Li259isWwf4Ubo2y8H1LQYGWKvJgXiWqtY42m8dZAhw7OfMXnifxWDXPQPCLAmmJXPKAKlB737lZB8lct3lEsfeGOw7ZCFHyLeRE8phUc1GVVZAHXr8pUwDK5sAGwt1vMdMjycPQq1kxxrdxhKryMIk4KHjuXZBPILahViFPJQL3NZAnifwzsILU5SzVmL
VERIFY_TOKEN=lUw5p30J0UayoAYeEfpAObOEcAj8r1jUbSyAfuez9xgFpLI2eeO4WWsRJVuZMuz8

# Configuration for development environment
whatsapp.api.url=https://graph.facebook.com/v19.0/319326401263971/messages
whatsapp.api.token=EAAGCszZAli2oBOzqvCH99Li259isWwf4Ubo2y8H1LQYGWKvJgXiWqtY42m8dZAhw7OfMXnifxWDXPQPCLAmmJXPKAKlB737lZB8lct3lEsfeGOw7ZCFHyLeRE8phUc1GVVZAHXr8pUwDK5sAGwt1vMdMjycPQq1kxxrdxhKryMIk4KHjuXZBPILahViFPJQL3NZAnifwzsILU5SzVmL
verify.token=lUw5p30J0UayoAYeEfpAObOEcAj8r1jUbSyAfuez9xgFpLI2eeO4WWsRJVuZMuz8
frontend.origin=https://wati.bikefixup.co.in


# Razorpay credentials
razorpay.keyId=rzp_live_uPakUtCoctgHBh
razorpay.keySecret=4H3O2AWJl1wKZISUJdcC33v5
RAZORPAY_API_URL=https://api.razorpay.com/v1/payment_links
razorpay.api.url=https://api.razorpay.com/v1/payment_links

# Laravel API configuration 
laravel.api.url=http://localhost:8080/api/v2/get-access-token

# phones number configuration
phone.notification.numbers=+919818979825,+918607880788,+919211868602,+918076266651,+918397978484,
+918076335587
laravel.api.url=https://apitest.bikefixup.com/api/v2/hashed-route

laravel.rsa.private.key="-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEINbcKYC5wpQ4mAkWQMRbptObmdrYGCWS8H05Wlo+Yt18oAoGCCqGSM49\nAwEHoUQDQgAEeLCd3m0YXLtHibyAS4wXaeq2Y2Ur2bWKBAfA9w3IzOK3arCNEV5f\nH+XrV0aqBssLxOcuxBDEDV2PyRpiniOhIg==\n-----END EC PRIVATE KEY-----"

laravel.hmac.secret=secret
excluded.phones=7848039787,9818979825,8607880788,2250779186972,8198979798


#maximum number of requests
user.exists.rate.limit=100

#maximum number of requests per number minutes
user.exists.rate.limit.with.time=1


jwt.private-key-path=/srv/admin/vault/wati_private.pem
jwt.public-key-path=/srv/admin/vault/wati_public.pem


# ==========================================
# SECURITY GUARDING (IP-Based)
# ==========================================

# How many requests allowed per minute (Default: 20)
rate.limit.requests=20
rate.limit.duration.minutes=1

# How many "Rate Limit" events allowed before PERMANENT block (Default: 2)
rate.limit.violation.threshold=2

# Safety Whitelist: These IPs will NEVER be blocked or throttled (e.g. Office, VPN)
# Format: Comma-separated list (e.g. 1.2.3.4,5.6.7.8)
security.whitelisted.ips=127.0.0.1

# Manual Blocklist: Instantly block these malicious IPs
security.manual.blocked.ips=
