from django.db import models


class ledger_master_table(models.Model):
    current_fy = models.IntegerField(null=True)
    branch_id = models.IntegerField(null=True, blank=True)
    master_id = models.IntegerField(null=True)  # Links to company_id, party_id, etc.
    master_name = models.CharField(max_length=150, null=True)  # Links to company_id, party_id, etc.
    ledger_type = models.CharField(max_length=50, null=True) # Cash, Bank, Party, etc.
    ledger_mode = models.CharField(max_length=50, null=True)
    is_active = models.IntegerField(default=1, null=True)
    status = models.IntegerField(default=1, null=True)
    created_on = models.DateTimeField(null=True)
    updated_on = models.DateTimeField(null=True)
    created_by = models.IntegerField(null=True)
    updated_by = models.IntegerField(null=True)

    class Meta:
        db_table = "ledger"

class ledger_ob_table(models.Model):
    ledger_master_id = models.IntegerField(default=0, null=True)
    opening_balance = models.DecimalField(max_digits=20, decimal_places=2, null=True) # Values in + or -
    is_active = models.IntegerField(default=1, null=True)
    status = models.IntegerField(default=1, null=True)
    created_on = models.DateTimeField(null=True)
    updated_on = models.DateTimeField(null=True)
    created_by = models.IntegerField(null=True)
    updated_by = models.IntegerField(null=True)

    class Meta:
        db_table = "ledger_ob"

class ledger_entry_table(models.Model):
    ledger_master_id = models.IntegerField(default=0, null=True)
    ledger_date = models.DateField(null=True)
    ledger_no = models.CharField(max_length=50, null=True)
    current_fy = models.IntegerField(null=True) # Current Financial Year
    transaction_type = models.CharField(max_length=50, null=True) # Journal, Receipt, Payment, etc.
    ledger_type = models.CharField(max_length=50, null=True)
    transaction_id = models.IntegerField(null=True) # ID from source transaction table
    debit = models.DecimalField(max_digits=20, decimal_places=2, default=0, null=True)
    credit = models.DecimalField(max_digits=20, decimal_places=2, default=0, null=True)
    particulars = models.CharField(max_length=255, null=True, blank=True)
    remarks = models.CharField(max_length=255, null=True, blank=True)
    notes = models.TextField(null=True, blank=True)
    is_reversal = models.IntegerField(default=0, null=True)
    is_active = models.IntegerField(default=1, null=True)
    status = models.IntegerField(default=1, null=True)
    created_on = models.DateTimeField(null=True)
    updated_on = models.DateTimeField(null=True)
    created_by = models.IntegerField(null=True)
    updated_by = models.IntegerField(null=True)

    class Meta:
        db_table = "ledger_entry"
