Metadata-Version: 2.1
Name: easys-ordermanager
Version: 2.0.9
Summary: API definition of RH order manager for EasyS
Home-page: https://gitlab.herocentral.de/development/easys-ordermanager
Download-URL: 
Author: RegioHelden developers
Author-email: opensource@regiohelden.de
License: GPL 3
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: django (<4.2,>=3.2)
Requires-Dist: django-countries (<8.0,>=6.0)
Requires-Dist: django-internationalflavor (<0.5.0,>=0.4.0)
Requires-Dist: django-model-utils (<5.0.0,>=3.1.2)
Requires-Dist: django-phonenumber-field (<8.0,>=3.0.1)
Requires-Dist: djangorestframework (<3.15,>=3.11)
Requires-Dist: phonenumbers (<8.14.0,>=7.0.6)

[![PyPI version](https://badge.fury.io/py/easys-ordermanager.svg)](https://badge.fury.io/py/easys-ordermanager)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/Lektor.svg)](https://pypi.org/project/easys-ordermanager/)

# EasyS order manager API

## Compatibility matrix

Python 3.8, 3.9 and 3.10 

### Django 3.2

DRF 3.11 or newer

### Django 4.0

DRF 3.13 or newer

### Django 4.1

DRF 3.14 or newer


# Changelog

## 2.0.9 (2023-01-03)
* Updates to Serializer v2, see serializer changelog

## 2.0.8 (2023-01-02)
* Updates to Serializer v2, see serializer changelog

## 2.0.7 (2022-12-01)
* Updates to Serializer v2, see serializer changelog

## 2.0.6 (2022-11-29)
* Updates to Serializer v1 & v2, see serializer changelog

## 2.0.5 (2022-11-22)
* Add serializer changelog to manifest and include it in the released package

## 2.0.4 (2022-11-22)
* Add serializer changelog to PyPI readme

## 2.0.3 (2022-11-21)
Updates to Serializer v1 & v2, see serializer changelog

## 2.0.2 (2022-11-15)
* Add support for phonenumbers 8.13.x',

## 2.0.1 (2022-09-27)
* Add support for DRF 3.14
* Add more test combinations
* Remove references to GitHub as the code mirror will be removed

## 2.0.0 (2022-09-16)
* Remove support for Python 3.7 and below
* Remove support for Django 2.x and below
* Drop support for DRF 3.10 and below
* Add support for Python 3.10
* Add support for Django 4.0 and 4.1
* Add tests for DRF 3.11, 3.12 and 3.13
* Change CI build to parallel matrix
* Get rid of tox for CI
* Run the publish stage only for tags on the main branch

## 1.4.53 (2022-07-13)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.52 (2022-07-08)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.51 (2022-06-14)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.50 (2022-06-14)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.49 (2022-04-29)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.48 (2022-03-30)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.47 (2022-03-24)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.46 (2022-01-25)
* Add support for [djangorestframework 3.13 release series](https://www.django-rest-framework.org/community/release-notes/#313x-series)

## 1.4.45 (2022-01-14)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.44 (2022-01-03)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.43 (2021-11-29)
Updates to Serializer v2, see serializer changelog

## 1.4.42 (2021-11-26)
Updates to Serializer v1, see serializer changelog

## 1.4.41 (2021-11-12)
* Add support for [django-phonenumber-field release series 6](https://github.com/stefanfoulis/django-phonenumber-field/blob/main/CHANGELOG.rst#600-2021-10-20)

## 1.4.40 (2021-10-08)
Fixes flake8 errors.

## 1.4.39 (2021-10-08)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.38 (2021-08-11)
* Fix example for email Orderline.

## 1.4.37 (2021-08-11)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.36 (2021-06-25)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.35 (2021-06-01)
* Update maximum supported version of django-phonenumber-field>=3.0.1,<6.0

## 1.4.34 (2021-05-28)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.33 (2021-05-25)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.32 (2021-05-07)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.31 (2021-04-15)
* Update maximum supported version of django-phonenumber-field>=3.0.1,<5.2
* Update test matrix, add Django 3.2

## 1.4.30 (2021-03-18)
Replace ugettext* usages with gettext* usages as Python 3 is unicode compatible anyway

## 1.4.29 (2021-02-19)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.28 (2021-02-01)
* Remove dependency to django-iban and use validation from internationalflavor
* Allow django-countries release series 7.x
* Update dev requirements

## 1.4.27 (2021-1-27)
Updated translations of PRODUCT_PAYMENT_CYCLE_CHOICES

## 1.4.26 (2021-1-27)
updates changelog

## 1.4.25 (2021-1-27)
Adds product payment cycle support to Serializer v1 & v2, see serializer changelog

## 1.4.24 (2020-11-25)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.23 (2020-11-19)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.22 (2020-11-16)
* Modernize Docker env, Update max supported versions and min requirements of some packages
* Split package and test dependencies
* Move package dependencies to setup.py
* Restructure travis env

## 1.4.21 (2020-11-13)
Update maximum supported version of django-phonenumber-field>=3.0.1,<5.1

## 1.4.20 (2020-11-06)
Update maximum supported version of phonenumbers>=7.0.6,<8.13

## 1.4.19 (2020-10-23)
Update maximum supported version of djangorestframework>=3.7.7,<3.13

## 1.4.18 (2020-10-16)
Update maximum required version of django-countries>=4.4,<6.1.4 and django-internationalflavor>=0.3.1,<0.5

## 1.4.17 (2020-10-16)
Update package to version phonenumbers>=7.0.6,<8.12.12

## 1.4.15 (2020-10-16)
Update package to version django-model-utils>=3.1.2,<5.0 - for backwards compatibility

## 1.4.14 (2020-10-16)
Update package to version django-model-utils>=4.0.0,<5.0

## 1.4.13 (2020-10-06)
Fix serializer v2 choice fields

## 1.4.12 (2020-10-05)
Updates to Serializer v2, see serializer changelog

## 1.4.11 (2020-09-23)
Update german translations

## 1.4.10 (2020-09-23)
Updates to Serializer v1 & v2, see serializer changelog

## 1.4.9 (2020-09-01)
Updates to Serializer v2, see serializer changelog

## 1.4.8 (2020-08-06)
Changed a translation

## 1.4.7 (2020-06-30)
Fix test cases

## 1.4.6 (2020-06-30)
Updates to Serializer v1/v2, see serializer changelog

## 1.4.5 (2020-06-23)
Updates to Serializer v1/v2, see serializer changelog

## 1.4.4 (2020-06-04)
Fixed code style to pass checks

## 1.4.3 (2020-06-03)
Updates to Serializer v2, see serializer changelog

## 1.4.2 (2020-05-07)
Updates to Serializer v2, see serializer changelog

## 1.4.1 (2020-04-15)
Introduction of serializer v2
* `easys-ordermanager/easys_ordermanager/v1/serializer.Serializer` is now frozen on the state of release 1.2.3
* `easys-ordermanager/easys_ordermanager/v2/serializer.Serializer` is considered WIP until integration in EasyS starts and new changes will go into v3, see serializer changelog for changes between v1 and v2

## 1.3.2 (2020-04-02)
Reverted

## 1.2.3 (2020-03-03)
Make sure Django 3 is not installed until further support

## 1.2.2 (2020-03-03)
Add proper dependencies to avoid unwanted failure with possible upgrades when installed freshly.
See setup.py for dependencies

## 1.2.1 (2020-02-27)
Add unique validation on `opening_hours` list of values of `OrderLineListingSerializer`. 
The  opening hours lis should be unique for every `day_of_week` (see `OrderLineListingOpeningHoursSerializer`)


## 1.2.0 (2019-09-17)
This release contains backwards incompatible changes.

Changes on `OrderLineDisplayBasicSerializer`   
  * Removed: `geo_targeting` field.
  * New: `geo_targeting_zip` field which accepts one string zip code. Not mandatory
  * New: `geo_targeting_radius` field accepting integer values between 1-80 (km). Mandatory only if `geo_targeting_zip` is given.  
  * Removed: `stock_images_allowed` field:
  * New: `banner_image_selection` choice field accepting following values: 
    * 0 for 'From website' / 'Von der Webseite' option
    * 1 for 'From customer' / 'Vom kunden' option
    * 2 for 'Customer photos' / 'Regiohelden Bilder' option 
  * Change: `target_page_type` existing field which is not required anymore.

Changes on `OrderLineGoogleAdsPremiumSerializer`:
  * New: `call_tracking` boolean required field.
  

## 1.1.3 (2019-09-11)
Clean README file.


## 1.1.2 (2019-09-11)
Fix expected_impression_share field of OrderLineGoogleAdsBasicSerializer to accept 5 digits in order to validate value 100.00


## 1.1.1 (2019-09-06)
Small fix on pep8 error

## 1.1.0 (2019-09-04)

This release contains backwards incompatible changes


* Split Display detail OrderLineDisplaySerializer in two different serializers and fields for basic and premium product levels:
  * remove `detail_display` field from `OrderLine` 
  * add `detail_display_basic` field (`OrderLineDisplayBasicSerializer`) on `OrderLine`  
   
     The serializer contains following fields:  
     
     New fields:
       * `banner_color_selection`  
         choice field with values: 1 for _Color from Logo/Website_ and 2 for _Set color_ . To be used in combination with fields `color_code_x`  
     
     Fields with changed definition
       * `impressions_per_month`  
         choice field with accepted values: 20.000 , 40.000 and 80.000
       * `creative_options`  
         choice field contains only values: 1 for _Customer provided_ and 3 for _Create animated_
     
     Fields with the same definition as in the previous OrderLineDisplaySerializer
       * `geo_targeting`
       * `geo_targeting`
       * `campaign_goal`
       * `headline`
       * `sub_headline`
       * `bullet_points`
       * `call_to_action`
       * `color_code_1`
       * `color_code_2`
       * `color_code_3`
       * `stock_images_allowed`
       * `target_page_type`
       * `target_url`
       * `package_template`
       * `location_frame_text`
       * `creative_options`
      
  * add `detail_display_premium` field (`OrderLineDisplayPremiumSerializer`) on `OrderLine`   
   
     Serializer contains following fields with the same definition as in the previous OrderLineDisplaySerializer
       * `booking_type`
       * `target_devices`
       * `creatives_format`
       * `impressions_per_day`
       * `impressions_per_month`
       * `age_targeting`
       * `gender_targeting`
       * `geo_targeting`
       * `channel_targeting`
       * `interest_targeting`
       * `campaign_goal`
       * `target_page_type`
       * `target_url`
       * `creative_options`
      

* Split Google Ads detail OrderLineGoogleAdsSerializer in two different serializers for basic and premium product levels:
  * remove `detail_google_ads` field from `OrderLine`     
  * add `detail_google_ads_basic` field (`OrderLineGoogleAdsBasicSerializer`) on `OrderLine`  

       Serializer contains following fields with the same definition as in the previous OrderLineGoogleAdsSerializer
    * `campaign_goal`
    * `regions`
    * `expected_impression_share`
    * `keywords`
    * `keywords_with_zero_search_volume`
    * `target_audience`

  * add `detail_google_ads_premium` field (`OrderLineGoogleAdsPremiumSerializer`) on `OrderLine`  

       Serializer contains following fields with the same definition as in the previous OrderLineGoogleAdsSerializer
     * `call_to_action`
     * `campaign_goal`
     * `regions`
     * `expected_clicks`
     * `expected_conversions`
     * `existing_account_id`
     * `include_remarketing`
     * `keywords`
     * `keywords_with_zero_search_volume`
     * `target_audience`
     * `usp`


* All product fee fields on `OrderLineSerializer` became optional:
  * `setup_fee`
  * `start_fee`
  * `budget`
  * `fee`
  * `one_time_budget`
  * `commission`
  * `deferred_payment_sum`

* Add validation for commission provided for product type Google Ads level Basic: fixed value of 40  
* Add validation for combination of product type and level: check if a matching HC products subtype exists
* Add validation for the payment fees provided: check if a matching HC payment type exists.


## 1.0.4 (2019-08-21)

* Add new fee type postponed_setup_fee
* Add reference customer boolean to Location serializer

## 1.0.3 (2019-07-03)

* Don't use allow_null with BooleanField (`djangorestframework<3.9` doesn't support it)


## 1.0.2 (2019-07-01)

* Allow to use empty/null values for non-required fields


## 1.0.1 (2019-06-27)

* Add missing files to the package


## 1.0.0 (2019-06-24)

* Initial release


# Serializer changes

## 2.0.9

### v2

#### `OrderSerializer`

* Add `salesforce_opportunity_id` field, required.

## 2.0.8

### v1/v2

#### `OrderLineDisplayNativeSerializer`

* Remove required `target_url`.

## 2.0.7

### v2

#### `OrderLineSerializer`

* Add `salesforce_opportunity_line_item_id` field, not required.

## 2.0.6

### v1/v2

#### `OrderLineDisplayNativeSerializer`

* Fix validation when `age_group_from` and `age_group_from` are `null`.

## 2.0.3

### v1/v2

#### `DisplayNativeCreativeSerializer`

* Changed `teaser` and `advertorial` to accept null instead of blank, and removed `allow_blank` from `ad_type`.

## 1.4.53

### v1/v2

#### `OrderLineGoogleAdsPremiumSerializer`

* Add `ticket_id` field, not required.

## 1.4.52

### v1/v2

#### `OrderLineDisplayNativeSerializer`

* Introduced new serializer - `OrderLineDisplayNativeSerializer`

## 1.4.51

### v1/v2

#### `OrderLineInAppSerializer`

* Set `poi_targeting_file` as not required.

## 1.4.50

### v1/v2

#### `OrderLineInAppSerializer`

* Add `poi_targeting_file` field.

## 1.4.49

### v1/v2

#### `OrderLineSerializer`

* Add `is_pre_briefing_necessary` field, default value is False.

## 1.4.48

### v1/v2

#### `OrderLineDisplayPremiumSerializer`

* Add validation for `impressions_per_month` and `impressions_one_time`, depending on `booking_type` (continuous or fixed).

## 1.4.47

### v1/v2

#### `OrderLineDisplayPremiumSerializer`

* Changed field `impressions_per_day` to `impressions_one_time`.

## 1.4.45

### v1/v2

#### `OrderLineDisplayPremiumSerializer`

* Changed field `age_targeting` choices: `DISPLAY_AGE_CHOICES`, removed legacy `[DISPLAY_AGE_14_19, DISPLAY_AGE_20_29]` and added `DISPLAY_AGE_14_29`

## 1.4.44
### v1/v2

* removed `detail_google_ads_basic` from `OrderLineSerializer`
* removed `OrderLineGoogleAdsBasicSerializer`

## 1.4.43
### v2

* removed `detail_display_basic` from `OrderLineSerializer`
* removed `OrderLineDisplayBasicSerializer`


## 1.4.42

### v1

#### `OrderLineGoogleAdsPremiumSerializer`

* Add field `branch_codes`, optional.


## 1.4.39

### v1/v2

#### `OrderLineDisplayPremiumSerializer`

* Add new field `short_name`, optional.

## 1.4.37

### v1/v2

#### `OrderLineEmailSerializer`

* Add necessary and additional fields for domain creation on email orderline: `desired_domain`, `domain_type` and `domain_info`.


## 1.4.36

### v1/v2

#### `OrderLineGoogleAdsPremiumSerializer`

* Add new fields for generic campaign information: `is_generic_campaign` and `generic_topics`, optionals.

## 1.4.34

### v1/v2

#### `OrderLineSeoSerializer`

* Make `ticket_id` optional.

## 1.4.33

### v1/v2

#### `ContactSerializer`

* Add new field `opt_in_marketing`, optional.

## 1.4.32

### v1/v2

#### `OrderLineSeoSerializer`

* Make `regions` optional.

## 1.4.29

### v1/v2

#### `OrderLineInAppSerializer`

* Remove INAPP_AUDIENCE_OTHER choice
* Make `target_audiences` optional. One of the `target_audiences` and `other_target_audiences` is required

## 1.4.25

### v1/v2

#### `OrderLineSerializer`

* Add new field: `payment_cycle`: choice of `PRODUCT_PAYMENT_CYCLE_CHOICES`, optional

## 1.4.24

### v1/v2

#### `OrderLineListingSerializer`

* Add two new fields: `tonline_costs` and `tonline_city`

### `PRODUCT_TYPE_CHOICES`

* Add choice `PRODUCT_TYPE_TONLINE`

## 1.4.23

### v1/v2

#### `AccountLocationSerializer`

* Add validation: required `payment_debit_account_iban` in case of `payment_type` Charge 

## 1.4.12

### v2

#### `OrderLineWebsiteSerializer`

* Added proper choices for
    * `design_preference_minimalistic_embellished`
    * `design_preference_modern_classic`
    * `design_preference_simple_striking`
    * `design_preference_text_picture`

## 1.4.10

### v1/v2

#### `OrderLineFacebookSerializer`
* `ages` choices adjustment: `14_18` is now `13_17` and `19_24` is `18_24`

## 1.4.9

### v2

#### `OrderLineWebsiteSerializer`
* Restrict validator for field `desired_domain` to accept only domain names without http protocol and no IP addresses 

## 1.4.6

### v1 / v2

#### `OrderLineGoogleAdsPremiumSerializer`
* Add optional `expected_impressions` and `expected_impression_share`

### v1

* Add optional `target_page_type`

## 1.4.5

### v1 / v2

#### `AccountLocationSerializer`
* Allow `google_places_id` to be 1000 characters max (was 30 before)

## 1.4.3

### v2

#### `OrderLineWebsiteSerializer`
* `additional_subpages` must be >= 0 and <= 60 now

#### `OrderLineGoogleAdsBasicSerializer`
* added optional `target_url`

#### `OrderLineGoogleAdsPremiumSerializer`
* added optional `target_url`

## 1.4.2

### v2

#### `AccountSerializer`
* `branch_codes` cannot be empty any more

#### `OrderLineSeoSerializer`
* `topics` cannot be empty any more
* `regions` cannot be empty any more

#### `OrderLineGoogleAdsBasicSerializer`
* `regions` cannot be empty any more

## 1.4.1

### v2

#### `OrderLineLandingpageSerializer`
added, similar to `OrderLineWebsiteSerializer` except for
* `additional_subpages`: positive integer, required
* `logo_creation`: choice of `LOGO_CREATION_CHOICES`, required

#### `OrderLineSerializer`
* added `detail_landingpage`: type `OrderLineLandingpageSerializer`, only required when OrderLine represents a landingpage product

#### `OrderLineGoogleAdsBasicSerializer`
* added `target_page_type`: choice of `GOOGLE_ADS_LANDING_PAGE_CHOICES`, optional
    * see `Serializer` changes for validation

#### `OrderLineGoogleAdsPremiumSerializer`
* added `branch_codes`: list of HeroCentral provided industry topic codes, optional
    * HeroCentral will validate the codes against the industry tree
* added `target_page_type`: choice of `GOOGLE_ADS_LANDING_PAGE_CHOICES`, optional
    * see `Serializer` changes for validation
* added `remarketing_setup_fee`: decimal, must be >=0 if `include_remarketing=true`
* added `remarketing_budget`: decimal, must be >=0 if `include_remarketing=true` 

#### Validations
* added validation: if any OrderLine detail contains `target_page_type`
    * if set to `NEW_WEBSITE`, the serializer will require an OrderLine of type `PRODUCT_TYPE_WEBSITE` to exist
    * if set to `NEW_LANDINGPAGE`, the serializer will require an OrderLine of type `PRODUCT_TYPE_LANDINGPAGE` to exist
    * OrderLine details which can provide values for `target_page_type` are: 
        * OrderLineDisplayBasicSerializer
        * OrderLineDisplayPremiumSerializer
        * OrderLineSeoSerializer
        * OrderLineInAppSerializer 
        * OrderLineFacebookSerializer
