- Introduction of LicensePeriod - Introduction of Payments - Introduction of Invoices - Services definitions for Entitlements Domain
79 lines
6.0 KiB
Python
79 lines
6.0 KiB
Python
from flask import current_app
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import (StringField, PasswordField, BooleanField, SubmitField, EmailField, IntegerField, DateField,
|
|
SelectField, SelectMultipleField, FieldList, FormField, FloatField, TextAreaField)
|
|
from wtforms.validators import DataRequired, Length, Email, NumberRange, Optional, ValidationError, InputRequired
|
|
import pytz
|
|
|
|
|
|
class LicenseTierForm(FlaskForm):
|
|
name = StringField('Name', validators=[DataRequired(), Length(max=50)])
|
|
version = StringField('Version', validators=[DataRequired(), Length(max=50)])
|
|
start_date = DateField('Start Date', id='form-control datepicker', validators=[DataRequired()])
|
|
end_date = DateField('End Date', id='form-control datepicker', validators=[Optional()])
|
|
basic_fee_d = FloatField('Basic Fee ($)', validators=[InputRequired(), NumberRange(min=0)])
|
|
basic_fee_e = FloatField('Basic Fee (€)', validators=[InputRequired(), NumberRange(min=0)])
|
|
max_storage_mb = IntegerField('Max Storage (MiB)', validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_storage_price_d = FloatField('Additional Storage Fee ($)',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_storage_price_e = FloatField('Additional Storage Fee (€)',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_storage_bucket = IntegerField('Additional Storage Bucket Size (MiB)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
included_embedding_mb = IntegerField('Included Embeddings (MiB)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_embedding_price_d = FloatField('Additional Embedding Fee ($)',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_embedding_price_e = FloatField('Additional Embedding Fee (€)',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_embedding_bucket = IntegerField('Additional Embedding Bucket Size (MiB)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
included_interaction_tokens = IntegerField('Included Embedding Tokens (M Tokens)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_interaction_token_price_d = FloatField('Additional Interaction Token Fee ($)',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_interaction_token_price_e = FloatField('Additional Interaction Token Fee (€)',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_interaction_bucket = IntegerField('Additional Interaction Bucket Size (M Tokens)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
standard_overage_embedding = FloatField('Standard Overage Embedding (%)',
|
|
validators=[DataRequired(), NumberRange(min=0)], default=0)
|
|
standard_overage_interaction = FloatField('Standard Overage Interaction (%)',
|
|
validators=[DataRequired(), NumberRange(min=0)], default=0)
|
|
|
|
|
|
class LicenseForm(FlaskForm):
|
|
start_date = DateField('Start Date', id='form-control datepicker', validators=[DataRequired()])
|
|
nr_of_periods = IntegerField('Number of Periods',
|
|
validators=[DataRequired(), NumberRange(min=1, max=12)], default=12)
|
|
currency = StringField('Currency', validators=[Optional(), Length(max=20)])
|
|
yearly_payment = BooleanField('Yearly Payment', default=False)
|
|
basic_fee = FloatField('Basic Fee', validators=[InputRequired(), NumberRange(min=0)])
|
|
max_storage_mb = IntegerField('Max Storage (MiB)', validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_storage_allowed = BooleanField('Additional Storage Allowed', default=True)
|
|
additional_storage_price = FloatField('Additional Storage Token Fee',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_storage_bucket = IntegerField('Additional Storage Bucket Size (MiB)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_embedding_allowed = BooleanField('Additional Embedding Allowed', default=True)
|
|
included_embedding_mb = IntegerField('Included Embedding Tokens (MiB)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_embedding_price = FloatField('Additional Embedding Token Fee',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_embedding_bucket = IntegerField('Additional Embedding Bucket Size (MiB)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
included_interaction_tokens = IntegerField('Included Interaction Tokens (M Tokens)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
additional_interaction_allowed = BooleanField('Additional Interaction Allowed', default=True)
|
|
additional_interaction_token_price = FloatField('Additional Interaction Token Fee',
|
|
validators=[InputRequired(), NumberRange(min=0)])
|
|
additional_interaction_bucket = IntegerField('Additional Interaction Bucket Size (M Tokens)',
|
|
validators=[DataRequired(), NumberRange(min=1)])
|
|
overage_embedding = FloatField('Overage Embedding (%)',
|
|
validators=[DataRequired(), NumberRange(min=0)],
|
|
default=0)
|
|
overage_interaction = FloatField('Overage Interaction (%)',
|
|
validators=[DataRequired(), NumberRange(min=0)],
|
|
default=0)
|
|
|