from django.db import models import uuid from django.contrib.auth import get_user_model # from centralisedFileSystem.models import BeatSheet # from subtitling3.models import Subtitles # from centralisedFileSystem.models import BeatSheet # from projectcenter.models import Generatedmodel from mnfapp.models import MNFScriptDatabase User = get_user_model() class PromoCode(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) name = models.CharField(max_length=245) amount = models.DecimalField(max_digits=10, decimal_places=2) validity = models.DateTimeField() def __str__(self) -> str: return self.name PAYMENT_RESULT = [("init", "init"),("success", "success"), ("failed", "failed"),("refund-claimed", "refund-claimed"),("refunded", "refunded"),("refunded-rejected", "refunded-rejected"),("auto-refunded", "auto-refunded"),("auto-refund-failed", "auto-refund-failed"),("monthly_user", "monthly_user")] GATEWAY = [("razorPay", "razorPay"), ("Stripe", "Stripe")] class CentralPayment(models.Model): id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) date = models.DateTimeField(auto_now_add=True) promo_code = models.CharField(null=True, blank=True, max_length=50) services_used = models.CharField(null=True, blank=True, max_length=30) services_id = models.CharField(null=True, blank=True, max_length=50) user_id = models.ForeignKey(User, on_delete=models.CASCADE) qtn = models.IntegerField(null=True, blank=True) total_amount = models.FloatField(null=True, blank=True) amount_charged = models.FloatField(null=True, blank=True) discount = models.FloatField(null=True, blank=True) im_discount = models.FloatField(null=True, blank=True) gateway_fee = models.FloatField(null=True, blank=True) currency = models.CharField(default="INR", max_length=30) payment_status = models.CharField(null=True, blank=True, choices=PAYMENT_RESULT, max_length=50) payment_gateway = models.CharField(null=True, blank=True, choices=GATEWAY, max_length=10) payment_id = models.CharField(max_length=100) order_id = models.CharField(max_length=100) signature_id = models.CharField(max_length=100) def __str__(self): return str(self.payment_id) # class ScriptwriterPackage(models.Model): # EVENT_CHOICES = [ # ('Long Jump', 'Long Jump'), # ('Triple Jump', 'Triple Jump'), # ('High Jump', 'High Jump'), # ('Pole Vault', 'Pole Vault'), # ] # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # date = models.DateTimeField(auto_now_add=True) # event = models.CharField(max_length=20, choices=EVENT_CHOICES) # validity_in_days = models.IntegerField() # price = models.FloatField() # screenplay_per_beat_price = models.FloatField() # screenplay_audit = models.BooleanField() # conversion_languages = models.IntegerField() # narration_one_pager = models.BooleanField() # elevator_pitch = models.BooleanField() # screenplay_analysis = models.BooleanField() # character_introduction = models.BooleanField() # line_by_line_narration = models.BooleanField() # characterwise_narration = models.BooleanField() # project_schedule_and_budget = models.BooleanField() # def __str__(self): # return f"{self.event} Package" # class ProductionHousePackage(models.Model): # PACKAGE_CHOICES = [ # ('Radiate', 'Radiate'), # ('Regionalise', 'Regionalise'), # ('Globalise', 'Globalise'), # ] # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # date = models.DateTimeField(auto_now_add=True) # package_name = models.CharField(max_length=20, choices=PACKAGE_CHOICES) # validity_in_days = models.IntegerField() # price = models.FloatField() # subtitling_minutes_input = models.IntegerField() # output_languages = models.IntegerField() # iterations_per_language = models.IntegerField() # project_schedules_and_budgets = models.IntegerField() # script_pages_for_conversion = models.IntegerField() # conversion_languages = models.IntegerField() # ai_assisted_scene_generation = models.IntegerField() # screenplay_audit_unlimited = models.BooleanField() # def __str__(self): # return f"{self.package_name} Package" # class JuggernautPackage(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # user_id = models.ForeignKey(User, on_delete=models.CASCADE) # package_name = models.CharField(max_length=20,null=True, blank=True) # date = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # validity_days = models.IntegerField(default=0, null=True, blank=True) # price = models.IntegerField(default=0, null=True, blank=True) # beat_scene_generation = models.IntegerField(default=0, null=True, blank=True) # beat_scene_generation_initial = models.IntegerField(default=0, null=True, blank=True) # audit_pages = models.IntegerField(default=0, null=True, blank=True) # conversion_pages_initial = models.IntegerField(default=0, null=True, blank=True) # conversion_pages = models.IntegerField(default=0, null=True, blank=True) # subtitling_minutes_initial = models.IntegerField(default=0, null=True, blank=True) # subtitling_minutes = models.IntegerField(default=0, null=True, blank=True) # scheduling_and_budget_projects = models.IntegerField(default=0, null=True, blank=True) # scheduling_and_budget_projects_initial = models.IntegerField(default=0, null=True, blank=True) # pitchdeck_one_pager = models.IntegerField(default=0, null=True, blank=True) # pitchdeck_elevator = models.IntegerField(default=0, null=True, blank=True) # pitchdeck_screenplay = models.IntegerField(default=0, null=True, blank=True) # narrarion_character_intro = models.IntegerField(default=0, null=True, blank=True) # narrarion_line_by_line = models.IntegerField(default=0, null=True, blank=True) # narrarion_characterwise = models.IntegerField(default=0, null=True, blank=True) # conversion_iteration = models.IntegerField(default=0, null=True, blank=True) # conversion_languages = models.IntegerField(default=0, null=True, blank=True) # subtitling_iteration = models.IntegerField(default=0, null=True, blank=True) # subtitling_languages = models.IntegerField(default=0, null=True, blank=True) # language_alert = models.BooleanField(default=False, null=True, blank=True) # class JuggernautConversionSet(models.Model): # uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # associated_project = models.ForeignKey(MNFScriptDatabase, on_delete=models.CASCADE) # actionline_lang = models.CharField(max_length=150, null=False, blank=False) # actionline_script = models.CharField(max_length=150, null=False, blank=False) # dial_lang = models.CharField(max_length=150, null=False, blank=False) # dial_script = models.CharField(max_length=150, null=False, blank=False) # class JuggernautConversion(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # package = models.ForeignKey(JuggernautPackage, on_delete=models.CASCADE) # created_at = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # associated_project = models.ForeignKey(MNFScriptDatabase, on_delete=models.CASCADE) # project_name = models.CharField(max_length=200,null=True, blank=True) # project_details = models.IntegerField(default=0, null=True, blank=True) #pages in this case # languages = models.IntegerField(default=0, null=True, blank=True) # iterations = models.IntegerField(default=0, null=True, blank=True) # class JuggernautPitchdeck(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # package = models.ForeignKey(JuggernautPackage, on_delete=models.CASCADE) # created_at = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # associated_project = models.ForeignKey(MNFScriptDatabase, on_delete=models.CASCADE) # project_name = models.CharField(max_length=200,null=True, blank=True) # class JuggernautNarration(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # package = models.ForeignKey(JuggernautPackage, on_delete=models.CASCADE) # created_at = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # associated_project = models.ForeignKey(MNFScriptDatabase, on_delete=models.CASCADE) # project_name = models.CharField(max_length=200,null=True, blank=True) # class JuggernautSubtitling(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # package = models.ForeignKey(JuggernautPackage, on_delete=models.CASCADE) # created_at = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # associated_project = models.ForeignKey(Subtitles, on_delete=models.CASCADE) # project_name = models.CharField(max_length=200,null=True, blank=True) # project_details = models.IntegerField(default=0, null=True, blank=True) #minutes in this case # languages = models.IntegerField(default=0, null=True, blank=True) # iterations= models.IntegerField(default=0, null=True, blank=True) # class JuggernautProjectCenter(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # package = models.ForeignKey(JuggernautPackage, on_delete=models.CASCADE) # created_at = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # associated_project = models.ForeignKey(Generatedmodel, on_delete=models.CASCADE) # project_name = models.CharField(max_length=200,null=True, blank=True) # class JuggernautBeatSheet(models.Model): # id = models.UUIDField(max_length=36, primary_key=True, default=uuid.uuid4, editable=False) # package = models.ForeignKey(JuggernautPackage, on_delete=models.CASCADE) # created_at = models.DateTimeField(auto_now_add=True) # updated_at = models.DateTimeField(auto_now=True) # associated_project = models.ForeignKey(BeatSheet, on_delete=models.CASCADE) # project_name = models.CharField(max_length=200,null=True, blank=True)