package com.vpnpanel.models;

import com.google.gson.annotations.SerializedName;

public class Subscription {
    
    @SerializedName("id")
    private int id;
    
    @SerializedName("plan_name")
    private String planName;
    
    @SerializedName("status")
    private String status;
    
    @SerializedName("traffic_used")
    private long trafficUsed;
    
    @SerializedName("traffic_limit")
    private long trafficLimit;
    
    @SerializedName("expiry_date")
    private String expiryDate;
    
    @SerializedName("created_at")
    private String createdAt;
    
    @SerializedName("v2ray_link")
    private String v2rayLink;

    // Getters
    public int getId() {
        return id;
    }

    public String getPlanName() {
        return planName;
    }

    public String getStatus() {
        return status;
    }

    public long getTrafficUsed() {
        return trafficUsed;
    }

    public long getTrafficLimit() {
        return trafficLimit;
    }

    public String getExpiryDate() {
        return expiryDate;
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public String getV2rayLink() {
        return v2rayLink;
    }

    // Setters
    public void setId(int id) {
        this.id = id;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public void setTrafficUsed(long trafficUsed) {
        this.trafficUsed = trafficUsed;
    }

    public void setTrafficLimit(long trafficLimit) {
        this.trafficLimit = trafficLimit;
    }

    public void setExpiryDate(String expiryDate) {
        this.expiryDate = expiryDate;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public void setV2rayLink(String v2rayLink) {
        this.v2rayLink = v2rayLink;
    }
    
    // Helper methods
    public float getTrafficUsedPercent() {
        if (trafficLimit == 0) return 0;
        return ((float) trafficUsed / (float) trafficLimit) * 100;
    }
    
    public boolean isExpired() {
        return "expired".equals(status);
    }
    
    public boolean isActive() {
        return "active".equals(status);
    }
}
